From f95922c27330b12ba22434203bf6955c06b74ba4 Mon Sep 17 00:00:00 2001
From: Leslie Linden <leslie@lindenlab.com>
Date: Wed, 12 Oct 2011 10:08:14 -0700
Subject: Updated tooltip for "picks" to match the wiki.

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

(limited to 'indra/newview')

diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index f19cfa19f2..04fc5c868c 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -3695,7 +3695,7 @@ Try enclosing path to the editor with double quotes.
   <string name="Command_MiniMap_Tooltip">Show nearby people</string>
   <string name="Command_Move_Tooltip">Moving your avatar</string>
   <string name="Command_People_Tooltip">Friends, groups, and nearby people</string>
-  <string name="Command_Picks_Tooltip">Favorite places</string>
+  <string name="Command_Picks_Tooltip">Places to show as favorites in your profile</string>
   <string name="Command_Places_Tooltip">Places you've saved</string>
   <string name="Command_Preferences_Tooltip">Preferences</string>
   <string name="Command_Profile_Tooltip">Edit or view your profile</string>
-- 
cgit v1.2.3


From ed53295cb3137f757d4d120f84f5d22c170ae823 Mon Sep 17 00:00:00 2001
From: callum <none@none>
Date: Wed, 12 Oct 2011 12:55:37 -0700
Subject: EXP-1322 FIX Stand / Stop Flying button should be centered above the
 bottom toolbar at all times

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

(limited to 'indra/newview')

diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index 2af01d06c1..c3d8b91d67 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -696,25 +696,28 @@ void LLPanelStandStopFlying::updatePosition()
 {
 	if (mAttached) return;
 
-	S32 x = 0;
-	S32 y = 0;
-
-	if(LLView* root = getRootView())
+	S32 y_pos = 0;
+	S32 bottom_tb_center = 0;
+	if (LLToolBar* toolbar_bottom = gToolBarView->getChild<LLToolBar>("toolbar_bottom"))
 	{
-		x = root->calcScreenRect().getCenterX() - getRect().getWidth()/2;
+		y_pos = toolbar_bottom->getRect().getHeight();
+		bottom_tb_center = toolbar_bottom->getRect().getCenterX();
 	}
 
-	if (LLToolBar* toolbar_bottom = gToolBarView->getChild<LLToolBar>("toolbar_bottom"))
+	S32 left_tb_width = 0;
+	if (LLToolBar* toolbar_left = gToolBarView->getChild<LLToolBar>("toolbar_left"))
 	{
-		y = toolbar_bottom->getRect().getHeight();
+		left_tb_width = toolbar_left->getRect().getWidth();
 	}
 
 	if(LLPanel* panel_ssf_container = getRootView()->getChild<LLPanel>("stand_stop_flying_container"))
 	{
-		panel_ssf_container->setOrigin(0, y);
+		panel_ssf_container->setOrigin(0, y_pos);
 	}
 
-	setOrigin(x, 0);
+	S32 x_pos = bottom_tb_center-getRect().getWidth()/2 - left_tb_width;
+
+	setOrigin( x_pos, 0);
 }
 
 // EOF
-- 
cgit v1.2.3


From a1f0101ca293768a37889856b1dde69110b30b7c Mon Sep 17 00:00:00 2001
From: Richard Nelson <richard@lindenlab.com>
Date: Wed, 12 Oct 2011 13:50:20 -0700
Subject: EXP-1275 WIP A UI element or Keyboard shortcut to clear the viewport
 restores hidden floaters now

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

(limited to 'indra/newview')

diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 2473d41a35..665b31a427 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -4992,7 +4992,11 @@ void LLViewerWindow::setUIVisibility(bool visible)
 
 	if (!visible)
 	{
-		gFloaterView->closeAllChildren(false);
+		gFloaterView->hideAllFloaters();
+	}
+	else
+	{
+		gFloaterView->showHiddenFloaters();
 	}
 }
 
-- 
cgit v1.2.3


From 23a2a77369b9f4b4fb5e606dc962e5838fb44503 Mon Sep 17 00:00:00 2001
From: Richard Nelson <richard@lindenlab.com>
Date: Wed, 12 Oct 2011 15:39:40 -0700
Subject: added separator above navigation bar

---
 .../newview/skins/default/textures/navbar/separator.png  | Bin 0 -> 2826 bytes
 indra/newview/skins/default/textures/textures.xml        |   2 +-
 .../skins/default/xui/en/panel_navigation_bar.xml        |  10 ++++++++++
 3 files changed, 11 insertions(+), 1 deletion(-)
 create mode 100644 indra/newview/skins/default/textures/navbar/separator.png

(limited to 'indra/newview')

diff --git a/indra/newview/skins/default/textures/navbar/separator.png b/indra/newview/skins/default/textures/navbar/separator.png
new file mode 100644
index 0000000000..b93e5791a7
Binary files /dev/null and b/indra/newview/skins/default/textures/navbar/separator.png differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 27577d42ea..4f34352516 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -769,5 +769,5 @@ with the same filename but different name
   <texture name="Yellow_Gradient" file_name="windows/yellow_gradient.png"/>
   <texture name="Popup_Caution" file_name="icons/pop_up_caution.png"/>
   <texture name="Camera_Drag_Dot" file_name="world/CameraDragDot.png"/>
-
+  <texture name="NavBar Separator" file_name="navbar/separator.png"/>
 </textures>
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index bf9eeb6d26..ab6fa36e6c 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -43,6 +43,16 @@
 	 top="0"
 	 height="34"
 	 width="600"/>
+  <icon
+    follows="all"
+    image_name="NavBar Separator"
+    mouse_opaque="false"
+    name="separator_image"
+    scale_image="true"
+    left="0"
+    top="0"
+    width="800"
+    height="2"/>
 	 <layout_stack
        use_border="true"
        bevel_style="none"
-- 
cgit v1.2.3


From 9ca4b8219f1a18b11d457d6f18d3c695aba9aed2 Mon Sep 17 00:00:00 2001
From: Richard Nelson <richard@lindenlab.com>
Date: Wed, 12 Oct 2011 15:46:45 -0700
Subject: EXP-1275 WIP A UI element or Keyboard shortcut to clear the viewport
 added confirmation dialog before hiding UI

---
 indra/newview/llviewermenu.cpp                     | 30 +++++++++++++++++++++-
 indra/newview/skins/default/xui/en/menu_viewer.xml | 14 +++++-----
 .../newview/skins/default/xui/en/notifications.xml | 14 ++++++++++
 3 files changed, 50 insertions(+), 8 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 0cbbfae002..478af6ab7d 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -3766,9 +3766,37 @@ class LLViewToggleUI : public view_listener_t
 {
 	bool handleEvent(const LLSD& userdata)
 	{
-		gViewerWindow->setUIVisibility(!gViewerWindow->getUIVisibility());
+		LLNotification::Params params("ConfirmHideUI");
+		params.functor.function(boost::bind(&LLViewToggleUI::confirm, this, _1, _2));
+		LLSD substitutions;
+#if LL_DARWIN
+		substitutions["SHORTCUT"] = "Cmd+Shift+U";
+#else
+		substitutions["SHORTCUT"] = "Ctrl+Shift+U";
+#endif
+		params.substitutions = substitutions;
+		if (gViewerWindow->getUIVisibility())
+		{
+			// hiding, so show notification
+			LLNotifications::instance().add(params);
+		}
+		else
+		{
+			LLNotifications::instance().forceResponse(params, 0);
+		}
+
 		return true;
 	}
+
+	void confirm(const LLSD& notification, const LLSD& response)
+	{
+		S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+
+		if (option == 0) // OK
+		{
+			gViewerWindow->setUIVisibility(!gViewerWindow->getUIVisibility());
+		}
+	}
 };
 
 class LLEditDuplicate : public view_listener_t
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index fdbc3d1882..c586e3a098 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -24,6 +24,13 @@
              function="Floater.Toggle"
              parameter="toybox" />
         </menu_item_call>
+         <menu_item_call
+         label="Hide all controls"
+         name="Hide UI"
+         shortcut="control|shift|U">
+           <menu_item_call.on_click
+            function="View.ToggleUI" />
+         </menu_item_call>
         <menu_item_call
              label="My Dashboard"
              name="Manage My Account">
@@ -1719,13 +1726,6 @@
                 <menu_item_call.on_click
                  function="View.DefaultUISize" />
             </menu_item_call>
-            <menu_item_call
-               label="Toggle UI"
-               name="Toggle UI"
-               shortcut="control|shift|U">
-                <menu_item_call.on_click
-                 function="View.ToggleUI" />
-              </menu_item_call>
             <!-- This second, alternative shortcut for Show Advanced Menu is for backward compatibility.  The main shortcut has been changed so it's Linux-friendly, where the old shortcut is typically eaten by the window manager. -->
             <menu_item_check
                label="Show Advanced Menu - legacy shortcut"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 087744fea7..6b0ffd9d33 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -7536,6 +7536,20 @@ The site at &apos;&lt;nolink&gt;[HOST_NAME]&lt;/nolink&gt;&apos; in realm &apos;
    notext="Don't Quit"/>
   </notification>
 
+  <notification
+    name="ConfirmHideUI"
+    label=""
+    type="alertmodal">
+    <unique/>
+    <tag>confirm</tag>
+    This action will hide all menu items and buttons. To get them back, click [SHORTCUT] again.
+    <usetemplate
+      name="okcancelignore"
+      yestext="OK"
+      notext="Cancel"
+      ignoretext="Confirm before hiding UI"/>
+  </notification>
+  
   <global name="UnsupportedGLRequirements">
 You do not appear to have the proper hardware requirements for [APP_NAME]. [APP_NAME] requires an OpenGL graphics card that has multitexture support. If this is the case, you may want to make sure that you have the latest drivers for your graphics card, and service packs and patches for your operating system.
 
-- 
cgit v1.2.3


From 45a316831636043663972bdf83adbefb345549de Mon Sep 17 00:00:00 2001
From: callum <none@none>
Date: Wed, 12 Oct 2011 16:08:53 -0700
Subject: EXP-1337 FIX Add Confirmation dialog to "Restore Defaults" in the
 Toybox Reviewed by Leslie

---
 indra/newview/llfloatertoybox.cpp                    | 17 +++++++++++++++--
 indra/newview/skins/default/xui/en/notifications.xml | 14 ++++++++++++++
 2 files changed, 29 insertions(+), 2 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp
index 84881655f8..b4c9894271 100644
--- a/indra/newview/llfloatertoybox.cpp
+++ b/indra/newview/llfloatertoybox.cpp
@@ -30,12 +30,13 @@
 
 #include "llbutton.h"
 #include "llcommandmanager.h"
+#include "llnotifications.h"
+#include "llnotificationsutil.h"
 #include "llpanel.h"
 #include "lltoolbar.h"
 #include "lltoolbarview.h"
 #include "lltrans.h"
 
-
 LLFloaterToybox::LLFloaterToybox(const LLSD& key)
 	: LLFloater(key)
 	, mBtnRestoreDefaults(NULL)
@@ -113,9 +114,21 @@ void LLFloaterToybox::draw()
 	LLFloater::draw();
 }
 
+static bool finish_restore_toybox(const LLSD& notification, const LLSD& response)
+{
+	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+
+	if (option == 0)
+	{
+		LLToolBarView::loadDefaultToolbars();
+	}
+	return false;
+}
+static LLNotificationFunctorRegistration finish_restore_toybox_reg("ConfirmRestoreToybox", finish_restore_toybox);
+
 void LLFloaterToybox::onBtnRestoreDefaults()
 {
-	LLToolBarView::loadDefaultToolbars();
+	LLNotificationsUtil::add("ConfirmRestoreToybox");
 }
 
 BOOL LLFloaterToybox::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 6b0ffd9d33..f510b3c5ba 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4622,6 +4622,20 @@ Are you sure you want to quit?
      yestext="Quit"/>
   </notification>
 
+  <notification
+   icon="alertmodal.tga"
+   name="ConfirmRestoreToybox"
+   type="alertmodal">
+    <unique/>
+Are you sure you want to restore your default buttons and toolbars? 
+    
+You cannot undo this action.
+    <usetemplate
+     name="okcancelbuttons"
+     notext="Cancel"
+     yestext="OK"/>
+  </notification>
+  
   <notification
    icon="alertmodal.tga"
    name="DeleteItems"
-- 
cgit v1.2.3


From fbd883ab36e49fea76b16a04aad0be5fc5196d49 Mon Sep 17 00:00:00 2001
From: leyla_linden <none@none>
Date: Wed, 12 Oct 2011 17:18:17 -0700
Subject: updating destination guide and avatar picker urls

---
 indra/newview/app_settings/settings.xml                     | 4 ++--
 indra/newview/skins/default/xui/en/floater_avatar.xml       | 2 +-
 indra/newview/skins/default/xui/en/floater_destinations.xml | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index aa2ff646a8..dd540654fb 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -619,7 +619,7 @@
       <key>Type</key>
       <string>String</string>
       <key>Value</key>
-      <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/avatars.html</string>
+      <string>http://drofnas.components.pdp48.lindenlab.com/avatars.html</string>
     </map>
     <key>AvatarBakedTextureUploadTimeout</key>
     <map>
@@ -2717,7 +2717,7 @@
       <key>Type</key>
       <string>String</string>
       <key>Value</key>
-      <string>http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/guide.html</string>
+      <string>http://drofnas.components.pdp48.lindenlab.com/guide.html</string>
     </map>
   <key>DisableCameraConstraints</key>
     <map>
diff --git a/indra/newview/skins/default/xui/en/floater_avatar.xml b/indra/newview/skins/default/xui/en/floater_avatar.xml
index 6e5c4ada48..3c7de6f334 100644
--- a/indra/newview/skins/default/xui/en/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/en/floater_avatar.xml
@@ -5,7 +5,7 @@
  can_close="true"
  can_resize="true"
  min_height="230"
- min_width="445"
+ min_width="450"
  height="230"
  layout="topleft"
  name="Avatar"
diff --git a/indra/newview/skins/default/xui/en/floater_destinations.xml b/indra/newview/skins/default/xui/en/floater_destinations.xml
index 2b48a9f6d6..e63dc02a57 100644
--- a/indra/newview/skins/default/xui/en/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/en/floater_destinations.xml
@@ -7,7 +7,7 @@
  user_resize="true"
  can_resize="true"
  min_height="230"
- min_width="525"
+ min_width="350"
  height="230"
  layout="topleft"
  name="Destinations"
@@ -22,6 +22,5 @@
       width="840"
       follows="all"
       name="destination_guide_contents"
-      start_url="http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/guide.html"
       trusted_content="true"/>
 </floater>
-- 
cgit v1.2.3


From 309ebb84a8cf93e03e2594525aa128b3002040bf Mon Sep 17 00:00:00 2001
From: Leslie Linden <leslie@lindenlab.com>
Date: Wed, 12 Oct 2011 17:43:47 -0700
Subject: * Floater positioning now based on position of other cascading
 windows currently   open.

---
 indra/newview/llnearbychatbar.cpp                       | 9 ++++++---
 indra/newview/llnearbychatbar.h                         | 2 +-
 indra/newview/skins/default/xui/en/floater_camera.xml   | 4 ++--
 indra/newview/skins/default/xui/en/floater_chat_bar.xml | 4 ++--
 indra/newview/skins/default/xui/en/floater_moveview.xml | 4 ++--
 5 files changed, 13 insertions(+), 10 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index cd84275ef0..3e4228cfb6 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -109,15 +109,18 @@ BOOL LLNearbyChatBar::postBuild()
 	return TRUE;
 }
 
-void LLNearbyChatBar::applyRectControl()
+bool LLNearbyChatBar::applyRectControl()
 {
-	LLFloater::applyRectControl();
-	if (getRect().getHeight() >  getMinHeight())
+	bool rect_controlled = LLFloater::applyRectControl();
+	
+	if (getRect().getHeight() > getMinHeight())
 	{
 		getChildView("nearby_chat")->setVisible(true);
 		mExpandedHeight = getRect().getHeight();
 		enableResizeCtrls(true);
 	}
+
+	return rect_controlled;
 }
 
 void LLNearbyChatBar::onChatFontChange(LLFontGL* fontp)
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index 5a7edac1bb..bc00c1b9fc 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -71,7 +71,7 @@ protected:
 	void onChatBoxCommit();
 	void onChatFontChange(LLFontGL* fontp);
 
-	/* virtual */ void applyRectControl();
+	/* virtual */ bool applyRectControl();
 
 	void onToggleNearbyChatPanel();
 
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index 7f3abbb481..20d0fa1c91 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater
  open_positioning="specified"
+ specified_left="683"
+ specified_bottom="0"
  legacy_header_height="18"
  can_minimize="true"
  can_close="true"
  follows="bottom"
  height="164"
  layout="topleft"
- left="683"
- bottom="0"
  name="camera_floater"
  help_topic="camera_floater"
  save_visibility="true"
diff --git a/indra/newview/skins/default/xui/en/floater_chat_bar.xml b/indra/newview/skins/default/xui/en/floater_chat_bar.xml
index 924e4bc11e..9229741801 100644
--- a/indra/newview/skins/default/xui/en/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/en/floater_chat_bar.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater
  open_positioning="specified"
+ specified_left="150"
+ specified_bottom="0"
  height="60"
- left="150"
- bottom="0"
  layout="topleft"
  legacy_header_height="25"
  single_instance="true"
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index 3d23a94ec2..cbbd68beb3 100644
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater
  open_positioning="specified"
+ specified_left="535"
+ specified_bottom="0"
  legacy_header_height="18"
  can_dock="false"
  can_minimize="true"
  can_close="true"
  follows="bottom"
  height="110"
- left="535"
- bottom="0"
  layout="topleft"
  name="move_floater"
  help_topic="move_floater"
-- 
cgit v1.2.3


From 20358ea89dc9823ac0b539030fdf03268dbdf4e9 Mon Sep 17 00:00:00 2001
From: Leslie Linden <leslie@lindenlab.com>
Date: Wed, 12 Oct 2011 17:45:21 -0700
Subject: * Added mModified flag and isModified() query to check it.  
 (currently it is not connect to actual data)

---
 indra/newview/lltoolbarview.cpp | 11 +++++++++++
 indra/newview/lltoolbarview.h   |  2 ++
 2 files changed, 13 insertions(+)

(limited to 'indra/newview')

diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp
index 133835aafc..bac154f435 100644
--- a/indra/newview/lltoolbarview.cpp
+++ b/indra/newview/lltoolbarview.cpp
@@ -471,3 +471,14 @@ void LLToolBarView::setToolBarsVisible(bool visible)
 	mToolbarLeft->getParent()->setVisible(visible);
 	mToolbarRight->getParent()->setVisible(visible);
 }
+
+bool LLToolBarView::isModified() const
+{
+	bool modified = false;
+
+	modified |= mToolbarBottom->isModified();
+	modified |= mToolbarLeft->isModified();
+	modified |= mToolbarRight->isModified();
+
+	return modified;
+}
diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h
index 01ff137c15..8b3af43875 100644
--- a/indra/newview/lltoolbarview.h
+++ b/indra/newview/lltoolbarview.h
@@ -81,6 +81,8 @@ public:
 	static BOOL handleDropTool(	void* cargo_data, S32 x, S32 y, LLToolBar* toolbar);
 	static void stopDragTool();
 	void onEndDrag();
+
+	bool isModified() const;
 	
 protected:
 	friend class LLUICtrlFactory;
-- 
cgit v1.2.3