From 1727c4d26429dd256fb2cd90fa83085e976794cc Mon Sep 17 00:00:00 2001 From: Rye Date: Fri, 24 Oct 2025 01:38:56 -0400 Subject: Reintroduce llappearanceutility to viewer tree from archive/develop Signed-off-by: Rye --- indra/llappearanceutility/llprocessparams.cpp | 281 ++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100755 indra/llappearanceutility/llprocessparams.cpp (limited to 'indra/llappearanceutility/llprocessparams.cpp') diff --git a/indra/llappearanceutility/llprocessparams.cpp b/indra/llappearanceutility/llprocessparams.cpp new file mode 100755 index 0000000000..ad1b44e794 --- /dev/null +++ b/indra/llappearanceutility/llprocessparams.cpp @@ -0,0 +1,281 @@ +/** + * @file llprocessparams.cpp + * @brief Implementation of LLProcessParams class. + * + * $LicenseInfo:firstyear=2012&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$ + */ + +// linden includes +#include "linden_common.h" + +#include "llsd.h" +#include "llsdserialize.h" +#include "llsdutil.h" +#include "llsdutil_math.h" +#include "llstl.h" +#include "llmath.h" +#include "llquantize.h" + +// appearance includes +#include "lltexturemanagerbridge.h" +#include "llwearabletype.h" +#include "llavatarappearancedefines.h" + +// project includes +#include "llappappearanceutility.h" +#include "llbakingavatar.h" +#include "llbakingtexlayer.h" +#include "llbakingwearable.h" +#include "llbakingwearablesdata.h" +#include "llprocessparams.h" + +#define APPEARANCE_PARAM_VERSION 11000 + +const U32 FULL_RIG_JOINT_COUNT = 20; + +using namespace LLAvatarAppearanceDefines; + +// Create a bridge to the viewer texture manager. +class LLNullTextureManagerBridge : public LLTextureManagerBridge +{ +public: + LLPointer getLocalTexture(bool usemipmaps = true, bool generate_gl_tex = true) override + { + return nullptr; + } + + LLPointer getLocalTexture(const U32 width, const U32 height, const U8 components, bool usemipmaps, bool generate_gl_tex = true) override + { + return nullptr; + } + + LLGLTexture* getFetchedTexture(const LLUUID &image_id) override + { + return nullptr; + } +}; + +LLSD dump_joint_offsets_for_avatar(LLBakingAvatar& avatar) +{ + LLSD joints = LLSD::emptyArray(); + + for (U32 joint_index = 0;; joint_index++) + { + LLJoint* pJoint = avatar.getCharacterJoint(joint_index); + if (!pJoint) + { + break; + } + LLVector3 pos; + LLUUID mesh_id; + if (pJoint->hasAttachmentPosOverride(pos, mesh_id)) + { + LLSD info; + info["name"] = pJoint->getName(); + info["pos"] = ll_sd_from_vector3(pos); + info["mesh_id"] = mesh_id; + joints.append(info); + } + } + + return joints; +} + +void LLProcessParams::process(std::ostream& output) +{ + if (!mInputData.has("wearables")) throw LLAppException(RV_UNABLE_TO_PARSE, " Missing wearables"); + + // Create a null-texture manager bridge. + gTextureManagerBridgep = new LLNullTextureManagerBridge(); + + // Construct the avatar. + LLBakingWearablesData wearable_data; + LLBakingAvatar avatar(&wearable_data, mApp->bakeTextureSize()); + avatar.initInstance(); + wearable_data.setAvatarAppearance(&avatar); + + //Process the params data for joint information + //bool bodySizeSet = processInputDataForJointInfo( avatar ); + + // Extract and parse wearables. + wearable_data.setWearableOutfit(mInputData["wearables"]); + + // Set appearance parameter to flag server-side baking. + avatar.setVisualParamWeight(APPEARANCE_PARAM_VERSION, 1.0f); + + avatar.setSex( (avatar.getVisualParamWeight( "male" ) > 0.5f) ? SEX_MALE : SEX_FEMALE ); + + avatar.updateVisualParams(); + + // Extract texture ids, texture hashes, and avatar scale. + LLSD texture_ids = LLSD::emptyMap(); + + //Process the params data for joint information + bool bodySizeSet = processInputDataForJointInfo( avatar ); + + //if we didn't compute a body size from a mesh attachment that included + //joint offsets we need to do it now + if (!bodySizeSet ) + { + avatar.computeBodySize(); + } + + for (U32 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++) + { + EBakedTextureIndex bake_type = (EBakedTextureIndex) baked_index; + LLBakingTexLayerSet* layer_set = dynamic_cast(avatar.getAvatarLayerSet(bake_type)); + const std::string& slot_name = LLAvatarAppearance::getDictionary()->getTexture( + LLAvatarAppearance::getDictionary()->bakedToLocalTextureIndex(bake_type) )->mDefaultImageName; + texture_ids[slot_name] = layer_set->computeTextureIDs(); + } + + // Extract visual params + U32 count = 0; + LLSD params = LLSD::emptyMap(); + LLSD debug_params = LLSD::emptyMap(); + for (LLViewerVisualParam* param = (LLViewerVisualParam*)avatar.getFirstVisualParam(); + param; + param = (LLViewerVisualParam*)avatar.getNextVisualParam()) + { + if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE || + param->getGroup() == VISUAL_PARAM_GROUP_TRANSMIT_NOT_TWEAKABLE) // do not transmit params of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT + { + const F32 param_value = param->getWeight(); + const U8 new_weight = F32_to_U8(param_value, param->getMinWeight(), param->getMaxWeight()); + LLSD body; + body["name"] = param->getName(); + body["value"] = param_value; + body["weight"] = new_weight; + debug_params[LLSD(param->getID()).asString()] = body; + params.append(new_weight); + count++; + } + } + + // Output + LLSD result; + result["success"] = true; + result["params"] = params; + result["debug_params"] = debug_params; + result["slot_textures"] = texture_ids; + result["avatar_scale"] = ll_sd_from_vector3(avatar.mBodySize + avatar.mAvatarOffset); + result["dump_joint_offsets"] = dump_joint_offsets_for_avatar(avatar); + output << LLSDOStreamer(result); +} + +bool LLProcessParams::processInputDataForJointInfo( LLBakingAvatar& avatar ) +{ + bool returnResult = false; + + if ( !mInputData.has("skindata") || mInputData["skindata"].isUndefined() ) + { + LL_DEBUGS() << "Skipping missing skindata" << LL_ENDL; + return returnResult; + } + + const LLSD& skindata = mInputData["skindata"]; + + //float pelvisOffset = 0.0f; + std::vector jointNames; + std::vector jointOffsets; + + LLSD::map_const_iterator skinIter = skindata.beginMap(); + LLSD::map_const_iterator skinIterEnd = skindata.endMap(); + + for ( ; skinIter!=skinIterEnd; ++skinIter ) + { + const LLSD& skin = skinIter->second; + const char *uuid_str = skinIter->first.c_str(); + const LLUUID mesh_id(uuid_str); + + if ( !skin.has("joint_names") || !skin.has("joint_offset") ) + { + throw LLAppException(RV_INVALID_SKIN_BLOCK); + } + + // Build list of joints + { + LLSD::array_const_iterator iter(skin["joint_names"].beginArray()); + LLSD::array_const_iterator iter_end(skin["joint_names"].endArray()); + for ( ; iter != iter_end; ++iter ) + { + jointNames.push_back( iter->asString() ); + } + } + // Extract joint offsets + { + LLSD::array_const_iterator iter(skin["joint_offset"].beginArray()); + LLSD::array_const_iterator iter_end(skin["joint_offset"].endArray()); + for ( ; iter != iter_end; ++iter ) + { + jointOffsets.push_back( ll_vector3_from_sd(*iter) ); + } + } + + // get at the *optional* pelvis offset + //if ( skin.has("pelvis_offset") ) + //{ + // pelvisOffset = skin["pelvis_offset"].asReal(); + //} + // Now apply the extracted joint data to the avatar + U32 jointCount = narrow(jointNames.size()); + + if ( jointOffsets.size() < jointCount ) + { + throw LLAppException(RV_INVALID_SKIN_BLOCK); + } + + bool fullRig = ( jointCount>= FULL_RIG_JOINT_COUNT ) ? true : false; + //bool pelvisGotSet = false; + + returnResult = fullRig; + + if ( fullRig ) + { + for ( U32 i=0; istoreCurrentXform( jointOffsets[i] ); + + bool active_override_changed = false; + pJoint->addAttachmentPosOverride(jointOffsets[i], mesh_id, "", active_override_changed); + } + } + + avatar.computeBodySize(); + avatar.mRoot->touch(); + avatar.mRoot->updateWorldMatrixChildren(); + + } + + jointNames.clear(); + jointOffsets.clear(); + } + return returnResult; +} -- cgit v1.3 From b56986e9b40a1a16e3cabb02efdc77a06795b520 Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Wed, 7 Jan 2026 19:59:13 +1000 Subject: Corrected file permissions, only permitting execution on .sh scripts and .py scripts with a shebang Signed-off-by: Hecklezz --- .gitignore | 0 LICENSE | 0 doc/LGPL-license.txt | 0 doc/LICENSE-logos.txt | 0 doc/LICENSE-source.txt | 0 doc/contributions.txt | 0 doc/releasenotes-where.txt | 0 doc/translations.txt | 0 indra/lib/python/indra/__init__.py | 0 indra/lib/python/indra/ipc/__init__.py | 0 indra/lib/python/indra/ipc/compatibility.py | 0 indra/lib/python/indra/ipc/llmessage.py | 0 indra/lib/python/indra/ipc/tokenstream.py | 0 indra/lib/python/indra/util/__init__.py | 0 indra/lib/python/indra/util/llmanifest.py | 0 indra/llappearanceutility/llprocessparams.cpp | 0 indra/llaudio/llaudiodecodemgr.cpp | 0 indra/llaudio/llaudioengine.h | 0 indra/llcommon/hexdump.h | 0 indra/llcorehttp/llhttpconstants.cpp | 0 indra/llcorehttp/llhttpconstants.h | 0 indra/llcorehttp/tests/llcorehttp_test.cpp | 0 indra/llui/tests/llurlentry_stub.cpp | 0 indra/media_plugins/base/media_plugin_base.exp | 0 indra/media_plugins/cef/linux/volume_catcher_pipewire.cpp | 0 indra/media_plugins/cef/linux/volume_catcher_pulseaudio.cpp | 0 .../cef/linux/volume_catcher_pulseaudio_glib_syms.inc | 0 .../cef/linux/volume_catcher_pulseaudio_syms.inc | 0 indra/newview/app_settings/llsd.xsd | 0 indra/newview/app_settings/message.xml | 0 indra/newview/installers/darwin/dmg-cleanup.applescript | 0 .../installers/darwin/release-dmg/Applications-alias.r | 0 indra/newview/installers/darwin/release-dmg/_DS_Store | Bin indra/newview/installers/windows/lang_de.nsi | 0 indra/newview/installers/windows/lang_es.nsi | Bin indra/newview/installers/windows/lang_fr.nsi | Bin indra/newview/installers/windows/lang_it.nsi | Bin indra/newview/installers/windows/lang_ja.nsi | Bin indra/newview/installers/windows/lang_pt-br.nsi | Bin indra/newview/installers/windows/lang_ru.nsi | Bin indra/newview/installers/windows/lang_tr.nsi | Bin indra/newview/installers/windows/lang_zh.nsi | Bin indra/newview/llfloatermap.cpp | 0 indra/newview/llfloaterworldmap.cpp | 0 indra/newview/llnavigationbar.h | 0 indra/newview/llviewerparceloverlay.cpp | 0 indra/newview/llviewerregion.cpp | 0 indra/newview/llworldmapview.cpp | 0 indra/newview/res/have_artwork_bundle.marker | 0 indra/newview/res/viewerRes.rc | 0 indra/newview/secondlife-i686.supp | 0 .../skins/default/xui/en/menu_gallery_outfit_tab.xml | 0 scripts/code_tools/fix_whitespace.py | 0 scripts/code_tools/fix_xml_indentations.py | 0 scripts/code_tools/modified-strings.sh | 0 scripts/code_tools/modified_strings.py | 0 scripts/content_tools/anim_tool.py | 0 scripts/content_tools/arche_tool.py | 0 scripts/content_tools/dae_tool.py | 0 scripts/content_tools/skel_tool.py | 0 scripts/messages/message_template.msg | 0 scripts/messages/message_template.msg.sha1 | 0 scripts/metrics/slp_conv.py | 0 scripts/metrics/viewer_asset_logs.py | 0 scripts/perf/logsdir.py | 0 scripts/perf/perfbot_run.py | 0 scripts/perf/profile_cmp.py | 0 scripts/perf/profile_csv.py | 0 scripts/perf/profile_pretty.py | 0 scripts/templates/template-cpp.cpp | 0 scripts/templates/template-h.h | 0 71 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 .gitignore mode change 100755 => 100644 LICENSE mode change 100755 => 100644 doc/LGPL-license.txt mode change 100755 => 100644 doc/LICENSE-logos.txt mode change 100755 => 100644 doc/LICENSE-source.txt mode change 100755 => 100644 doc/contributions.txt mode change 100755 => 100644 doc/releasenotes-where.txt mode change 100755 => 100644 doc/translations.txt mode change 100755 => 100644 indra/lib/python/indra/__init__.py mode change 100755 => 100644 indra/lib/python/indra/ipc/__init__.py mode change 100755 => 100644 indra/lib/python/indra/ipc/compatibility.py mode change 100755 => 100644 indra/lib/python/indra/ipc/llmessage.py mode change 100755 => 100644 indra/lib/python/indra/ipc/tokenstream.py mode change 100755 => 100644 indra/lib/python/indra/util/__init__.py mode change 100755 => 100644 indra/lib/python/indra/util/llmanifest.py mode change 100755 => 100644 indra/llappearanceutility/llprocessparams.cpp mode change 100755 => 100644 indra/llaudio/llaudiodecodemgr.cpp mode change 100755 => 100644 indra/llaudio/llaudioengine.h mode change 100755 => 100644 indra/llcommon/hexdump.h mode change 100755 => 100644 indra/llcorehttp/llhttpconstants.cpp mode change 100755 => 100644 indra/llcorehttp/llhttpconstants.h mode change 100755 => 100644 indra/llcorehttp/tests/llcorehttp_test.cpp mode change 100755 => 100644 indra/llui/tests/llurlentry_stub.cpp mode change 100755 => 100644 indra/media_plugins/base/media_plugin_base.exp mode change 100755 => 100644 indra/media_plugins/cef/linux/volume_catcher_pipewire.cpp mode change 100755 => 100644 indra/media_plugins/cef/linux/volume_catcher_pulseaudio.cpp mode change 100755 => 100644 indra/media_plugins/cef/linux/volume_catcher_pulseaudio_glib_syms.inc mode change 100755 => 100644 indra/media_plugins/cef/linux/volume_catcher_pulseaudio_syms.inc mode change 100755 => 100644 indra/newview/app_settings/llsd.xsd mode change 100755 => 100644 indra/newview/app_settings/message.xml mode change 100755 => 100644 indra/newview/installers/darwin/dmg-cleanup.applescript mode change 100755 => 100644 indra/newview/installers/darwin/release-dmg/Applications-alias.r mode change 100755 => 100644 indra/newview/installers/darwin/release-dmg/_DS_Store mode change 100755 => 100644 indra/newview/installers/windows/lang_de.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_es.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_fr.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_it.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_ja.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_pt-br.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_ru.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_tr.nsi mode change 100755 => 100644 indra/newview/installers/windows/lang_zh.nsi mode change 100755 => 100644 indra/newview/llfloatermap.cpp mode change 100755 => 100644 indra/newview/llfloaterworldmap.cpp mode change 100755 => 100644 indra/newview/llnavigationbar.h mode change 100755 => 100644 indra/newview/llviewerparceloverlay.cpp mode change 100755 => 100644 indra/newview/llviewerregion.cpp mode change 100755 => 100644 indra/newview/llworldmapview.cpp mode change 100755 => 100644 indra/newview/res/have_artwork_bundle.marker mode change 100755 => 100644 indra/newview/res/viewerRes.rc mode change 100755 => 100644 indra/newview/secondlife-i686.supp mode change 100755 => 100644 indra/newview/skins/default/xui/en/menu_gallery_outfit_tab.xml mode change 100644 => 100755 scripts/code_tools/fix_whitespace.py mode change 100644 => 100755 scripts/code_tools/fix_xml_indentations.py mode change 100644 => 100755 scripts/code_tools/modified-strings.sh mode change 100644 => 100755 scripts/code_tools/modified_strings.py mode change 100644 => 100755 scripts/content_tools/anim_tool.py mode change 100644 => 100755 scripts/content_tools/arche_tool.py mode change 100644 => 100755 scripts/content_tools/dae_tool.py mode change 100644 => 100755 scripts/content_tools/skel_tool.py mode change 100755 => 100644 scripts/messages/message_template.msg mode change 100755 => 100644 scripts/messages/message_template.msg.sha1 mode change 100644 => 100755 scripts/metrics/slp_conv.py mode change 100644 => 100755 scripts/metrics/viewer_asset_logs.py mode change 100644 => 100755 scripts/perf/logsdir.py mode change 100644 => 100755 scripts/perf/perfbot_run.py mode change 100644 => 100755 scripts/perf/profile_cmp.py mode change 100644 => 100755 scripts/perf/profile_csv.py mode change 100644 => 100755 scripts/perf/profile_pretty.py mode change 100755 => 100644 scripts/templates/template-cpp.cpp mode change 100755 => 100644 scripts/templates/template-h.h (limited to 'indra/llappearanceutility/llprocessparams.cpp') diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/doc/LGPL-license.txt b/doc/LGPL-license.txt old mode 100755 new mode 100644 diff --git a/doc/LICENSE-logos.txt b/doc/LICENSE-logos.txt old mode 100755 new mode 100644 diff --git a/doc/LICENSE-source.txt b/doc/LICENSE-source.txt old mode 100755 new mode 100644 diff --git a/doc/contributions.txt b/doc/contributions.txt old mode 100755 new mode 100644 diff --git a/doc/releasenotes-where.txt b/doc/releasenotes-where.txt old mode 100755 new mode 100644 diff --git a/doc/translations.txt b/doc/translations.txt old mode 100755 new mode 100644 diff --git a/indra/lib/python/indra/__init__.py b/indra/lib/python/indra/__init__.py old mode 100755 new mode 100644 diff --git a/indra/lib/python/indra/ipc/__init__.py b/indra/lib/python/indra/ipc/__init__.py old mode 100755 new mode 100644 diff --git a/indra/lib/python/indra/ipc/compatibility.py b/indra/lib/python/indra/ipc/compatibility.py old mode 100755 new mode 100644 diff --git a/indra/lib/python/indra/ipc/llmessage.py b/indra/lib/python/indra/ipc/llmessage.py old mode 100755 new mode 100644 diff --git a/indra/lib/python/indra/ipc/tokenstream.py b/indra/lib/python/indra/ipc/tokenstream.py old mode 100755 new mode 100644 diff --git a/indra/lib/python/indra/util/__init__.py b/indra/lib/python/indra/util/__init__.py old mode 100755 new mode 100644 diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py old mode 100755 new mode 100644 diff --git a/indra/llappearanceutility/llprocessparams.cpp b/indra/llappearanceutility/llprocessparams.cpp old mode 100755 new mode 100644 diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp old mode 100755 new mode 100644 diff --git a/indra/llaudio/llaudioengine.h b/indra/llaudio/llaudioengine.h old mode 100755 new mode 100644 diff --git a/indra/llcommon/hexdump.h b/indra/llcommon/hexdump.h old mode 100755 new mode 100644 diff --git a/indra/llcorehttp/llhttpconstants.cpp b/indra/llcorehttp/llhttpconstants.cpp old mode 100755 new mode 100644 diff --git a/indra/llcorehttp/llhttpconstants.h b/indra/llcorehttp/llhttpconstants.h old mode 100755 new mode 100644 diff --git a/indra/llcorehttp/tests/llcorehttp_test.cpp b/indra/llcorehttp/tests/llcorehttp_test.cpp old mode 100755 new mode 100644 diff --git a/indra/llui/tests/llurlentry_stub.cpp b/indra/llui/tests/llurlentry_stub.cpp old mode 100755 new mode 100644 diff --git a/indra/media_plugins/base/media_plugin_base.exp b/indra/media_plugins/base/media_plugin_base.exp old mode 100755 new mode 100644 diff --git a/indra/media_plugins/cef/linux/volume_catcher_pipewire.cpp b/indra/media_plugins/cef/linux/volume_catcher_pipewire.cpp old mode 100755 new mode 100644 diff --git a/indra/media_plugins/cef/linux/volume_catcher_pulseaudio.cpp b/indra/media_plugins/cef/linux/volume_catcher_pulseaudio.cpp old mode 100755 new mode 100644 diff --git a/indra/media_plugins/cef/linux/volume_catcher_pulseaudio_glib_syms.inc b/indra/media_plugins/cef/linux/volume_catcher_pulseaudio_glib_syms.inc old mode 100755 new mode 100644 diff --git a/indra/media_plugins/cef/linux/volume_catcher_pulseaudio_syms.inc b/indra/media_plugins/cef/linux/volume_catcher_pulseaudio_syms.inc old mode 100755 new mode 100644 diff --git a/indra/newview/app_settings/llsd.xsd b/indra/newview/app_settings/llsd.xsd old mode 100755 new mode 100644 diff --git a/indra/newview/app_settings/message.xml b/indra/newview/app_settings/message.xml old mode 100755 new mode 100644 diff --git a/indra/newview/installers/darwin/dmg-cleanup.applescript b/indra/newview/installers/darwin/dmg-cleanup.applescript old mode 100755 new mode 100644 diff --git a/indra/newview/installers/darwin/release-dmg/Applications-alias.r b/indra/newview/installers/darwin/release-dmg/Applications-alias.r old mode 100755 new mode 100644 diff --git a/indra/newview/installers/darwin/release-dmg/_DS_Store b/indra/newview/installers/darwin/release-dmg/_DS_Store old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_de.nsi b/indra/newview/installers/windows/lang_de.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_es.nsi b/indra/newview/installers/windows/lang_es.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_it.nsi b/indra/newview/installers/windows/lang_it.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_ja.nsi b/indra/newview/installers/windows/lang_ja.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_pt-br.nsi b/indra/newview/installers/windows/lang_pt-br.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_tr.nsi b/indra/newview/installers/windows/lang_tr.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi old mode 100755 new mode 100644 diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp old mode 100755 new mode 100644 diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp old mode 100755 new mode 100644 diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h old mode 100755 new mode 100644 diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp old mode 100755 new mode 100644 diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp old mode 100755 new mode 100644 diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp old mode 100755 new mode 100644 diff --git a/indra/newview/res/have_artwork_bundle.marker b/indra/newview/res/have_artwork_bundle.marker old mode 100755 new mode 100644 diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc old mode 100755 new mode 100644 diff --git a/indra/newview/secondlife-i686.supp b/indra/newview/secondlife-i686.supp old mode 100755 new mode 100644 diff --git a/indra/newview/skins/default/xui/en/menu_gallery_outfit_tab.xml b/indra/newview/skins/default/xui/en/menu_gallery_outfit_tab.xml old mode 100755 new mode 100644 diff --git a/scripts/code_tools/fix_whitespace.py b/scripts/code_tools/fix_whitespace.py old mode 100644 new mode 100755 diff --git a/scripts/code_tools/fix_xml_indentations.py b/scripts/code_tools/fix_xml_indentations.py old mode 100644 new mode 100755 diff --git a/scripts/code_tools/modified-strings.sh b/scripts/code_tools/modified-strings.sh old mode 100644 new mode 100755 diff --git a/scripts/code_tools/modified_strings.py b/scripts/code_tools/modified_strings.py old mode 100644 new mode 100755 diff --git a/scripts/content_tools/anim_tool.py b/scripts/content_tools/anim_tool.py old mode 100644 new mode 100755 diff --git a/scripts/content_tools/arche_tool.py b/scripts/content_tools/arche_tool.py old mode 100644 new mode 100755 diff --git a/scripts/content_tools/dae_tool.py b/scripts/content_tools/dae_tool.py old mode 100644 new mode 100755 diff --git a/scripts/content_tools/skel_tool.py b/scripts/content_tools/skel_tool.py old mode 100644 new mode 100755 diff --git a/scripts/messages/message_template.msg b/scripts/messages/message_template.msg old mode 100755 new mode 100644 diff --git a/scripts/messages/message_template.msg.sha1 b/scripts/messages/message_template.msg.sha1 old mode 100755 new mode 100644 diff --git a/scripts/metrics/slp_conv.py b/scripts/metrics/slp_conv.py old mode 100644 new mode 100755 diff --git a/scripts/metrics/viewer_asset_logs.py b/scripts/metrics/viewer_asset_logs.py old mode 100644 new mode 100755 diff --git a/scripts/perf/logsdir.py b/scripts/perf/logsdir.py old mode 100644 new mode 100755 diff --git a/scripts/perf/perfbot_run.py b/scripts/perf/perfbot_run.py old mode 100644 new mode 100755 diff --git a/scripts/perf/profile_cmp.py b/scripts/perf/profile_cmp.py old mode 100644 new mode 100755 diff --git a/scripts/perf/profile_csv.py b/scripts/perf/profile_csv.py old mode 100644 new mode 100755 diff --git a/scripts/perf/profile_pretty.py b/scripts/perf/profile_pretty.py old mode 100644 new mode 100755 diff --git a/scripts/templates/template-cpp.cpp b/scripts/templates/template-cpp.cpp old mode 100755 new mode 100644 diff --git a/scripts/templates/template-h.h b/scripts/templates/template-h.h old mode 100755 new mode 100644 -- cgit v1.3