From 115c40bd549efad4c7cd3d6f3c8d0f2ba99e9bd0 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Tue, 7 Apr 2020 04:56:02 -0400 Subject: [PATCH 01/15] Lots of renamings, more to come. --- BUILD.md | 2 +- BUILD_LINUX_CHEATSHEET.md | 3 +++ BUILD_OSX.md | 2 +- BUILD_WIN.md | 18 +++++++++--------- LICENSE | 2 +- README_hifi.md | 2 +- .../interface/src/main/res/values/strings.xml | 4 ++-- assignment-client/src/AssignmentClientApp.cpp | 2 +- cmake/ports/hifi-client-deps/CONTROL | 2 +- domain-server/resources/web/wizard/index.shtml | 2 +- domain-server/src/DomainServer.cpp | 2 +- .../html/commerce/backup_instructions.html | 2 +- interface/resources/html/tabletHelp.html | 8 ++++---- .../qml/+webengine/BrowserWebView.qml | 2 +- .../qml/LoginDialog/LinkAccountBody.qml | 4 ++-- .../resources/qml/LoginDialog/SignUpBody.qml | 2 +- .../qml/LoginDialog/UsernameCollisionBody.qml | 2 +- .../hifi/avatarPackager/AvatarPackagerApp.qml | 2 +- .../qml/hifi/avatarPackager/AvatarProject.qml | 2 +- .../qml/hifi/avatarapp/MessageBoxes.qml | 2 +- .../qml/hifi/commerce/checkout/Checkout.qml | 2 +- .../qml/hifi/commerce/purchases/Purchases.qml | 2 +- .../qml/hifi/commerce/wallet/Help.qml | 2 +- .../qml/hifi/dialogs/TabletAboutDialog.qml | 2 +- interface/src/Application.cpp | 2 +- interface/src/Menu.cpp | 6 +++--- interface/src/avatar/AvatarDoctor.cpp | 2 +- interface/src/avatar/MyAvatar.h | 14 +++++++------- interface/src/main.cpp | 2 +- launchers/qt/src/main.cpp | 2 +- .../src/avatars-renderer/Avatar.h | 4 ++-- libraries/avatars/src/AvatarData.h | 18 +++++++++--------- .../entities/src/EntityItemProperties.cpp | 8 ++++---- libraries/image/src/image/TextureProcessing.h | 2 +- libraries/midi/src/Midi.h | 2 +- libraries/networking/src/NetworkingConstants.h | 2 +- .../plugins/src/plugins/SteamClientPlugin.h | 2 +- libraries/script-engine/src/Quat.h | 8 ++++---- libraries/script-engine/src/ScriptEngine.h | 6 +++--- libraries/script-engine/src/Vec3.h | 4 ++-- libraries/shared/src/SharedUtil.cpp | 2 +- libraries/shared/src/Trace.cpp | 2 +- libraries/ui/src/ui/TabletScriptingInterface.h | 4 ++-- pkg-scripts/athena-server.spec | 8 ++++---- script-archive/afk.js | 2 +- .../tests/performance/renderableMatrix.js | 2 +- .../fireworksLaunchButtonEntityScript.js | 2 +- .../chapter1/fireworksLaunchButtonSpawner.js | 2 +- .../fireworksLaunchButtonEntityScript.js | 2 +- .../chapter2/fireworksLaunchButtonSpawner.js | 2 +- .../fireworksLaunchButtonEntityScript.js | 2 +- .../chapter3/fireworksLaunchButtonSpawner.js | 2 +- scripts/system/create/edit.js | 2 +- server-console/package.json | 2 +- tools/ac-client/src/ACClientApp.cpp | 2 +- tools/atp-client/src/ATPClientApp.cpp | 2 +- .../package-and-upload.sh | 10 +++++----- tools/ice-client/src/ICEClientApp.cpp | 2 +- tools/nitpick/CMakeLists.txt | 2 +- tools/oven/src/OvenCLIApplication.cpp | 2 +- tools/oven/src/ui/OvenMainWindow.cpp | 2 +- tools/oven/src/ui/ResultsWindow.cpp | 2 +- tools/skeleton-dump/src/SkeletonDumpApp.cpp | 2 +- tools/udt-test/src/UDTTest.cpp | 2 +- tools/vhacd-util/src/VHACDUtilApp.cpp | 2 +- 65 files changed, 114 insertions(+), 111 deletions(-) diff --git a/BUILD.md b/BUILD.md index 87b9c14c7b..f441290c85 100644 --- a/BUILD.md +++ b/BUILD.md @@ -89,7 +89,7 @@ In the examples below the variable $NAME would be replaced by the name of the de * $NAME_ROOT_DIR - pass this variable to Cmake with the -DNAME_ROOT_DIR= flag when running Cmake to generate build files * $NAME_ROOT_DIR - set this variable in your ENV -* HIFI_LIB_DIR - set this variable in your ENV to your High Fidelity lib folder, should contain a folder '$name' +* HIFI_LIB_DIR - set this variable in your ENV to your Vircadia lib folder, should contain a folder '$name' ### Optional Components diff --git a/BUILD_LINUX_CHEATSHEET.md b/BUILD_LINUX_CHEATSHEET.md index 9e7534418a..9297f9fd7d 100644 --- a/BUILD_LINUX_CHEATSHEET.md +++ b/BUILD_LINUX_CHEATSHEET.md @@ -1,4 +1,7 @@ ## This guide is specific to Ubuntu 16.04. + +THIS DOCUMENT IS OUTDATED. + Deb packages of High Fidelity domain server and assignment client are stored on debian.highfidelity.com ``` diff --git a/BUILD_OSX.md b/BUILD_OSX.md index 69cfed7de9..b39aadb287 100644 --- a/BUILD_OSX.md +++ b/BUILD_OSX.md @@ -6,7 +6,7 @@ Please read the [general build guide](BUILD.md) for information on dependencies ### Homebrew -[Homebrew](https://brew.sh/) is an excellent package manager for macOS. It makes install of some High Fidelity dependencies very simple. +[Homebrew](https://brew.sh/) is an excellent package manager for macOS. It makes install of some Vircadia dependencies very simple. brew install cmake openssl diff --git a/BUILD_WIN.md b/BUILD_WIN.md index bdab7e6e6d..098553c761 100644 --- a/BUILD_WIN.md +++ b/BUILD_WIN.md @@ -1,6 +1,6 @@ # Build Windows -*Last Updated on January 13, 2020* +*Last Updated on April 7, 2020* This is a stand-alone guide for creating your first Vircadia build for Windows 64-bit. @@ -68,7 +68,7 @@ To create this variable: ### Step 5. Running CMake to Generate Build Files Run Command Prompt from Start and run the following commands: -`cd "%HIFI_DIR%"` +`cd "%VIRCADIA_DIR%"` `mkdir build` `cd build` @@ -78,11 +78,11 @@ Run `cmake .. -G "Visual Studio 15 Win64"`. #### If you're using Visual Studio 2019, Run `cmake .. -G "Visual Studio 16 2019" -A x64`. -Where `%HIFI_DIR%` is the directory for the highfidelity repository. +Where `%VIRCADIA_DIR%` is the directory for the Vircadia repository. ### Step 6. Making a Build -Open `%HIFI_DIR%\build\athena.sln` using Visual Studio. +Open `%VIRCADIA_DIR%\build\athena.sln` using Visual Studio. Change the Solution Configuration (menu ribbon under the menu bar, next to the green play button) from "Debug" to "Release" for best performance. @@ -98,22 +98,22 @@ Restart Visual Studio again. In Visual Studio, right+click "interface" under the Apps folder in Solution Explorer and select "Set as Startup Project". Run from the menu bar `Debug > Start Debugging`. -Now, you should have a full build of Project Athena and be able to run the Interface using Visual Studio. Please check our [Docs](https://wiki.highfidelity.com/wiki/Main_Page) for more information regarding the programming workflow. +Now, you should have a full build of Vircadia and be able to run the Interface using Visual Studio. -Note: You can also run Interface by launching it from command line or File Explorer from `%HIFI_DIR%\build\interface\Release\interface.exe` +Note: You can also run Interface by launching it from command line or File Explorer from `%VIRCADIA_DIR%\build\interface\Release\interface.exe` ## Troubleshooting For any problems after Step #6, first try this: -* Delete your locally cloned copy of the highfidelity repository +* Delete your locally cloned copy of the Vircadia repository * Restart your computer * Redownload the [repository](https://github.com/kasenvr/project-athena) * Restart directions from Step #6 #### CMake gives you the same error message repeatedly after the build fails -Remove `CMakeCache.txt` found in the `%HIFI_DIR%\build` directory. +Remove `CMakeCache.txt` found in the `%VIRCADIA_DIR%\build` directory. #### CMake can't find OpenSSL -Remove `CMakeCache.txt` found in the `%HIFI_DIR%\build` directory. Verify that your HIFI_VCPKG_BASE environment variable is set and pointing to the correct location. Verify that the file `${HIFI_VCPKG_BASE}/installed/x64-windows/include/openssl/ssl.h` exists. +Remove `CMakeCache.txt` found in the `%VIRCADIA_DIR%\build` directory. Verify that your HIFI_VCPKG_BASE environment variable is set and pointing to the correct location. Verify that the file `${HIFI_VCPKG_BASE}/installed/x64-windows/include/openssl/ssl.h` exists. diff --git a/LICENSE b/LICENSE index f88e751de5..ab1ea16d6a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ Copyright (c) 2013-2019, High Fidelity, Inc. Copyright (c) 2019-2020, Project Athena Contributors. All rights reserved. -https://projectathena.io +https://vircadia.com Licensed under the Apache License version 2.0 (the "License"); You may not use this software except in compliance with the License. diff --git a/README_hifi.md b/README_hifi.md index 46433a155c..8d02300455 100644 --- a/README_hifi.md +++ b/README_hifi.md @@ -15,7 +15,7 @@ Come chat with us in [our Gitter](https://gitter.im/highfidelity/hifi) if you ha Documentation ========= -Documentation is available at [docs.highfidelity.com](https://docs.highfidelity.com), if something is missing, please suggest it via a new job on Worklist (add to the hifi-docs project). +Documentation is available at [docs.vircadia.dev](https://docs.vircadia.dev), if something is missing, please suggest it via a new job on Worklist (add to the hifi-docs project). There is also detailed [documentation on our coding standards](CODING_STANDARD.md). diff --git a/android/apps/interface/src/main/res/values/strings.xml b/android/apps/interface/src/main/res/values/strings.xml index b60caf1f2c..c1d7303f36 100644 --- a/android/apps/interface/src/main/res/values/strings.xml +++ b/android/apps/interface/src/main/res/values/strings.xml @@ -27,9 +27,9 @@ Online Sign Up SIGN UP - Creating your High Fidelity account + Creating your Vircadia account Email, username or password incorrect. - You are now signed into High Fidelity + You are now signed into Vircadia You are now logged in! Welcome Cancel diff --git a/assignment-client/src/AssignmentClientApp.cpp b/assignment-client/src/AssignmentClientApp.cpp index c5b228bd16..6915f15629 100644 --- a/assignment-client/src/AssignmentClientApp.cpp +++ b/assignment-client/src/AssignmentClientApp.cpp @@ -44,7 +44,7 @@ AssignmentClientApp::AssignmentClientApp(int argc, char* argv[]) : // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity Assignment Client"); + parser.setApplicationDescription("Vircadia Assignment Client"); const QCommandLineOption helpOption = parser.addHelpOption(); const QCommandLineOption versionOption = parser.addVersionOption(); diff --git a/cmake/ports/hifi-client-deps/CONTROL b/cmake/ports/hifi-client-deps/CONTROL index 7d4727b364..7b94d1ce56 100644 --- a/cmake/ports/hifi-client-deps/CONTROL +++ b/cmake/ports/hifi-client-deps/CONTROL @@ -1,4 +1,4 @@ Source: hifi-client-deps Version: 0 -Description: Collected dependencies for High Fidelity applications +Description: Collected dependencies for Vircadia applications Build-Depends: hifi-deps, glslang, nlohmann-json, openvr (windows), sdl2 (!android), spirv-cross (!android), spirv-tools (!android), vulkanmemoryallocator diff --git a/domain-server/resources/web/wizard/index.shtml b/domain-server/resources/web/wizard/index.shtml index 3bc7503b44..37f9d9e813 100644 --- a/domain-server/resources/web/wizard/index.shtml +++ b/domain-server/resources/web/wizard/index.shtml @@ -24,7 +24,7 @@
- Place names are similar to web addresses. Users who want to visit your domain can + Place names are similar to web addresses. Users who want to visit your domain can enter its Place Name in High Fidelity's Interface. You can choose a Place Name for your domain.
Your domain may also be reachable by IP address.
diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index a9bc24c483..eff129095c 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -334,7 +334,7 @@ DomainServer::DomainServer(int argc, char* argv[]) : void DomainServer::parseCommandLine(int argc, char* argv[]) { QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity Domain Server"); + parser.setApplicationDescription("Vircadia Domain Server"); const QCommandLineOption versionOption = parser.addVersionOption(); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/interface/resources/html/commerce/backup_instructions.html b/interface/resources/html/commerce/backup_instructions.html index 4056b81896..034844e705 100644 --- a/interface/resources/html/commerce/backup_instructions.html +++ b/interface/resources/html/commerce/backup_instructions.html @@ -596,7 +596,7 @@

Want to learn more?

You can find out much more about the blockchain and about commerce in High Fidelity by visiting our Docs site:

-

Visit High Fidelity's Docs

+

Visit High Fidelity's Docs


diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index a414417239..f84ea7fba8 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -77,9 +77,9 @@ var handControllerImageURL = null; var index = 0; var count = 3; - var handControllerRefURL = "https://docs.projectathena.dev/explore/get-started/vr-controls.html#vr-controls"; - var keyboardRefURL = "https://docs.projectathena.dev/explore/get-started/desktop.html#movement-controls"; - var gamepadRefURL = "https://docs.projectathena.dev/explore/get-started/vr-controls.html#gamepad"; + var handControllerRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#vr-controls"; + var keyboardRefURL = "https://docs.vircadia.dev/explore/get-started/desktop.html#movement-controls"; + var gamepadRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#gamepad"; function showKbm() { document.getElementById("main_image").setAttribute("src", "img/tablet-help-keyboard.jpg"); @@ -189,7 +189,7 @@
- Report Problem + Report Problem diff --git a/interface/resources/qml/+webengine/BrowserWebView.qml b/interface/resources/qml/+webengine/BrowserWebView.qml index 7f2136ec4f..fcf4b39a2e 100644 --- a/interface/resources/qml/+webengine/BrowserWebView.qml +++ b/interface/resources/qml/+webengine/BrowserWebView.qml @@ -6,7 +6,7 @@ import controlsUit 1.0 WebView { id: webview - url: "https://projectathena.io/" + url: "https://vircadia.com/" profile: FileTypeProfile; property var parentRoot: null diff --git a/interface/resources/qml/LoginDialog/LinkAccountBody.qml b/interface/resources/qml/LoginDialog/LinkAccountBody.qml index 6de8676fd0..c3e4950868 100644 --- a/interface/resources/qml/LoginDialog/LinkAccountBody.qml +++ b/interface/resources/qml/LoginDialog/LinkAccountBody.qml @@ -356,7 +356,7 @@ Item { font.pixelSize: linkAccountBody.textFieldFontSize font.bold: linkAccountBody.fontBold - text: " Can't access your account?" + text: " Can't access your account?" verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter @@ -480,7 +480,7 @@ Item { leftMargin: hifi.dimensions.contentSpacing.x } - text: "Sign Up" + text: "Sign Up" linkColor: hifi.colors.blueAccent onLinkActivated: { diff --git a/interface/resources/qml/LoginDialog/SignUpBody.qml b/interface/resources/qml/LoginDialog/SignUpBody.qml index 7347464f4e..5a08fb76f9 100644 --- a/interface/resources/qml/LoginDialog/SignUpBody.qml +++ b/interface/resources/qml/LoginDialog/SignUpBody.qml @@ -395,7 +395,7 @@ Item { text: signUpBody.termsContainerText Component.onCompleted: { // with the link. - termsText.text = qsTr("By signing up, you agree to Project Athena's Terms of Service") + termsText.text = qsTr("By signing up, you agree to Vircadia's Terms of Service") } } diff --git a/interface/resources/qml/LoginDialog/UsernameCollisionBody.qml b/interface/resources/qml/LoginDialog/UsernameCollisionBody.qml index 8b3c878d46..eb9b7ffe37 100644 --- a/interface/resources/qml/LoginDialog/UsernameCollisionBody.qml +++ b/interface/resources/qml/LoginDialog/UsernameCollisionBody.qml @@ -218,7 +218,7 @@ Item { text: usernameCollisionBody.termsContainerText Component.onCompleted: { // with the link. - termsText.text = qsTr("By creating this user profile, you agree to Project Athena's Terms of Service") + termsText.text = qsTr("By creating this user profile, you agree to Vircadia's Terms of Service") } } diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml index 9158e25f75..00d8a29561 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarPackagerApp.qml @@ -229,7 +229,7 @@ Item { } function openDocs() { - Qt.openUrlExternally("https://docs.projectathena.dev/create/avatars/package-avatar.html"); + Qt.openUrlExternally("https://docs.vircadia.dev/create/avatars/package-avatar.html"); } function openVideo() { diff --git a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml index a0c98b0821..9b59303a7e 100644 --- a/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml +++ b/interface/resources/qml/hifi/avatarPackager/AvatarProject.qml @@ -318,7 +318,7 @@ Item { text: "This item is not for sale yet, learn more." onLinkActivated: { - Qt.openUrlExternally("https://docs.projectathena.dev/sell/add-item/upload-avatar.html"); + Qt.openUrlExternally("https://docs.vircadia.dev/sell/add-item/upload-avatar.html"); } } diff --git a/interface/resources/qml/hifi/avatarapp/MessageBoxes.qml b/interface/resources/qml/hifi/avatarapp/MessageBoxes.qml index 691fbedac3..e8db561a0f 100644 --- a/interface/resources/qml/hifi/avatarapp/MessageBoxes.qml +++ b/interface/resources/qml/hifi/avatarapp/MessageBoxes.qml @@ -7,7 +7,7 @@ MessageBox { popup.onButton2Clicked = callback; popup.titleText = 'Specify Avatar URL' popup.bodyText = 'This will not overwrite your existing favorite if you are wearing one.
' + - '' + + '' + 'Learn to make a custom avatar by opening this link on your desktop.' + '' popup.inputText.visible = true; diff --git a/interface/resources/qml/hifi/commerce/checkout/Checkout.qml b/interface/resources/qml/hifi/commerce/checkout/Checkout.qml index b1b367f2b2..424b4d616d 100644 --- a/interface/resources/qml/hifi/commerce/checkout/Checkout.qml +++ b/interface/resources/qml/hifi/commerce/checkout/Checkout.qml @@ -778,7 +778,7 @@ Rectangle { lightboxPopup.bodyText = "Rezzing this content set will replace the existing environment and all of the items in this domain. " + "If you want to save the state of the content in this domain, create a backup before proceeding.

" + "For more information about backing up and restoring content, " + - "" + + "" + "click here to open info on your desktop browser."; lightboxPopup.button1text = "CANCEL"; lightboxPopup.button1method = function() { diff --git a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml index 66113985e8..8ccfceb03c 100644 --- a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml +++ b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml @@ -602,7 +602,7 @@ Rectangle { lightboxPopup.bodyText = "Rezzing this content set will replace the existing environment and all of the items in this domain. " + "If you want to save the state of the content in this domain, create a backup before proceeding.

" + "For more information about backing up and restoring content, " + - "
" + + "" + "click here to open info on your desktop browser."; lightboxPopup.button1text = "CANCEL"; lightboxPopup.button1method = function() { diff --git a/interface/resources/qml/hifi/commerce/wallet/Help.qml b/interface/resources/qml/hifi/commerce/wallet/Help.qml index af1e1b5ab9..dbdefc4c79 100644 --- a/interface/resources/qml/hifi/commerce/wallet/Help.qml +++ b/interface/resources/qml/hifi/commerce/wallet/Help.qml @@ -207,7 +207,7 @@ At the moment, there is currently no way to convert HFC to other currencies. Sta if (link === "#privateKeyPath") { Qt.openUrlExternally("file:///" + root.keyFilePath.substring(0, root.keyFilePath.lastIndexOf('/'))); } else if (link === "#blockchain") { - Qt.openUrlExternally("https://docs.projectathena.dev/explore/shop.html"); + Qt.openUrlExternally("https://docs.vircadia.dev/explore/shop.html"); } else if (link === "#bank") { if ((Account.metaverseServerURL).toString().indexOf("staging") >= 0) { Qt.openUrlExternally("hifi://hifiqa-master-metaverse-staging"); // So that we can test in staging. diff --git a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml index 2be66442ce..0a5358b8a4 100644 --- a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml +++ b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml @@ -53,7 +53,7 @@ Rectangle { textFormat: Text.StyledText linkColor: "#00B4EF" color: "white" - text: "Project Athena Github." + text: "Vircadia Github." size: 20 onLinkActivated: { HiFiAbout.openUrl("https:/github.com/kasenvr/project-athena"); diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index a73281e569..9b8d9a3fef 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -7727,7 +7727,7 @@ bool Application::askToReplaceDomainContent(const QString& url) { static const QString infoText = simpleWordWrap("Your domain's content will be replaced with a new content set. " "If you want to save what you have now, create a backup before proceeding. For more information about backing up " "and restoring content, visit the documentation page at: ", MAX_CHARACTERS_PER_LINE) + - "\nhttps://docs.projectathena.dev/host/maintain-domain/backup-domain.html"; + "\nhttps://docs.vircadia.dev/host/maintain-domain/backup-domain.html"; ModalDialogListener* dig = OffscreenUi::asyncQuestion("Are you sure you want to replace this domain's content set?", infoText, QMessageBox::Yes | QMessageBox::No, QMessageBox::No); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index fbb69842bd..5e59922e2a 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -779,7 +779,7 @@ Menu::Menu() { // Help > Athena Docs action = addActionToQMenuAndActionHash(helpMenu, "Online Documentation"); connect(action, &QAction::triggered, qApp, [] { - QDesktopServices::openUrl(QUrl("https://docs.projectathena.dev/")); + QDesktopServices::openUrl(QUrl("https://docs.vircadia.dev/")); }); // Help > Athena Forum @@ -791,7 +791,7 @@ Menu::Menu() { // Help > Scripting Reference action = addActionToQMenuAndActionHash(helpMenu, "Online Script Reference"); connect(action, &QAction::triggered, qApp, [] { - QDesktopServices::openUrl(QUrl("https://apidocs.projectathena.dev/")); + QDesktopServices::openUrl(QUrl("https://apidocs.vircadia.dev/")); }); addActionToQMenuAndActionHash(helpMenu, "Controls Reference", 0, qApp, SLOT(showHelp())); @@ -801,7 +801,7 @@ Menu::Menu() { // Help > Release Notes action = addActionToQMenuAndActionHash(helpMenu, "Release Notes"); connect(action, &QAction::triggered, qApp, [] { - QDesktopServices::openUrl(QUrl("https://docs.projectathena.dev/release-notes.html")); + QDesktopServices::openUrl(QUrl("https://docs.vircadia.dev/release-notes.html")); }); // Help > Report a Bug! diff --git a/interface/src/avatar/AvatarDoctor.cpp b/interface/src/avatar/AvatarDoctor.cpp index b0c82f1afc..d84383cf4f 100644 --- a/interface/src/avatar/AvatarDoctor.cpp +++ b/interface/src/avatar/AvatarDoctor.cpp @@ -55,7 +55,7 @@ static QStringList HAND_MAPPING_SUFFIXES = { "HandThumb1", }; -const QUrl PACKAGE_AVATAR_DOCS_BASE_URL = QUrl("https://docs.projectathena.dev/create/avatars/package-avatar.html"); +const QUrl PACKAGE_AVATAR_DOCS_BASE_URL = QUrl("https://docs.vircadia.dev/create/avatars/package-avatar.html"); AvatarDoctor::AvatarDoctor(const QUrl& avatarFSTFileUrl) : _avatarFSTFileUrl(avatarFSTFileUrl) { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 95256500e1..717a562179 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -607,7 +607,7 @@ public: *

Note: When using pre-built animation data, it's critical that the joint orientation of the source animation and target * rig are equivalent, since the animation data applies absolute values onto the joints. If the orientations are different, * the avatar will move in unpredictable ways. For more information about avatar joint orientation standards, see - * Avatar Standards.

+ * Avatar Standards.

* @function MyAvatar.overrideAnimation * @param {string} url - The URL to the animation file. Animation files may be in glTF or FBX format, but only need to * contain the avatar skeleton and animation data. glTF models may be in JSON or binary format (".gltf" or ".glb" URLs @@ -715,7 +715,7 @@ public: *

Note: When using pre-built animation data, it's critical that the joint orientation of the source animation and target * rig are equivalent, since the animation data applies absolute values onto the joints. If the orientations are different, * the avatar will move in unpredictable ways. For more information about avatar joint orientation standards, see - * Avatar Standards. + * Avatar Standards. * @function MyAvatar.overrideRoleAnimation * @param {string} role - The animation role to override * @param {string} url - The URL to the animation file. Animation files need to be in glTF or FBX format, but only need to @@ -1871,7 +1871,7 @@ public: /**jsdoc * Enables and disables flow simulation of physics on the avatar's hair, clothes, and body parts. See - * {@link https://docs.projectathena.dev/create/avatars/add-flow.html|Add Flow to Your Avatar} for more + * {@link https://docs.vircadia.dev/create/avatars/add-flow.html|Add Flow to Your Avatar} for more * information. * @function MyAvatar.useFlow * @param {boolean} isActive - true if flow simulation is enabled on the joint, false if it isn't. @@ -2236,7 +2236,7 @@ public slots: /**jsdoc * Gets the URL of the override animation graph. - *

See {@link https://docs.projectathena.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for + *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

* @function MyAvatar.getAnimGraphOverrideUrl * @returns {string} The URL of the override animation graph JSON file. "" if there is no override animation @@ -2246,7 +2246,7 @@ public slots: /**jsdoc * Sets the animation graph to use in preference to the default animation graph. - *

See {@link https://docs.projectathena.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for + *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

* @function MyAvatar.setAnimGraphOverrideUrl * @param {string} url - The URL of the animation graph JSON file to use. Set to "" to clear an override. @@ -2255,7 +2255,7 @@ public slots: /**jsdoc * Gets the URL of animation graph (i.e., the avatar animation JSON) that's currently being used for avatar animations. - *

See {@link https://docs.projectathena.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for + *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

* @function MyAvatar.getAnimGraphUrl * @returns {string} The URL of the current animation graph JSON file. @@ -2266,7 +2266,7 @@ public slots: /**jsdoc * Sets the current animation graph (i.e., the avatar animation JSON) to use for avatar animations and makes it the default. - *

See {@link https://docs.projectathena.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for + *

See {@link https://docs.vircadia.dev/create/avatars/custom-animations.html|Custom Avatar Animations} for * information on animation graphs.

* @function MyAvatar.setAnimGraphUrl * @param {string} url - The URL of the animation graph JSON file to use. diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 81616e5773..65339dcc02 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -72,7 +72,7 @@ int main(int argc, const char* argv[]) { } QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity"); + parser.setApplicationDescription("Vircadia"); QCommandLineOption versionOption = parser.addVersionOption(); QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/launchers/qt/src/main.cpp b/launchers/qt/src/main.cpp index 75c35cd708..58aa1ba7ba 100644 --- a/launchers/qt/src/main.cpp +++ b/launchers/qt/src/main.cpp @@ -1,4 +1,4 @@ -#include +"Vircadia#include #include diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 6e5f22f473..c9ecac7d19 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -207,7 +207,7 @@ public: /**jsdoc * Gets the default rotation of a joint (in the current avatar) relative to its parent. *

For information on the joint hierarchy used, see - * Avatar Standards.

+ * Avatar Standards.

* @function MyAvatar.getDefaultJointRotation * @param {number} index - The joint index. * @returns {Quat} The default rotation of the joint if the joint index is valid, otherwise {@link Quat(0)|Quat.IDENTITY}. @@ -218,7 +218,7 @@ public: * Gets the default translation of a joint (in the current avatar) relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see - * Avatar Standards.

+ * Avatar Standards.

* @function MyAvatar.getDefaultJointTranslation * @param {number} index - The joint index. * @returns {Vec3} The default translation of the joint (in model coordinates) if the joint index is valid, otherwise diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index cc2dd0b7da..3b6ead1f20 100755 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -793,7 +793,7 @@ public: * @param {Quat} rotation - The rotation of the joint relative to its parent. * @param {Vec3} translation - The translation of the joint relative to its parent, in model coordinates. * @example Set your avatar to it's default T-pose for a while.
- * Avatar in T-pose + * Avatar in T-pose * // Set all joint translations and rotations to defaults. * var i, length, rotation, translation; * for (i = 0, length = MyAvatar.getJointNames().length; i < length; i++) { @@ -857,7 +857,7 @@ public: /**jsdoc * Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see - * Avatar Standards. + * Avatar Standards. * @function Avatar.getJointRotation * @param {number} index - The index of the joint. * @returns {Quat} The rotation of the joint relative to its parent. @@ -868,7 +868,7 @@ public: * Gets the translation of a joint relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see - * Avatar Standards.

+ * Avatar Standards.

* @function Avatar.getJointTranslation * @param {number} index - The index of the joint. * @returns {Vec3} The translation of the joint relative to its parent, in model coordinates. @@ -901,7 +901,7 @@ public: * @param {string} name - The name of the joint. * @param {Quat} rotation - The rotation of the joint relative to its parent. * @example Set your avatar to its default T-pose then rotate its right arm.
- * Avatar in T-pose with arm rotated + * Avatar in T-pose with arm rotated * // Set all joint translations and rotations to defaults. * var i, length, rotation, translation; * for (i = 0, length = MyAvatar.getJointNames().length; i < length; i++) { @@ -936,7 +936,7 @@ public: * @param {Vec3} translation - The translation of the joint relative to its parent, in model coordinates. * @example Stretch your avatar's neck. Depending on the avatar you are using, you will either see a gap between * the head and body or you will see the neck stretched.
- * Avatar with neck stretched + * Avatar with neck stretched * // Stretch your avatar's neck. * MyAvatar.setJointTranslation("Neck", Vec3.multiply(2, MyAvatar.getJointTranslation("Neck"))); * @@ -978,7 +978,7 @@ public: /**jsdoc * Gets the rotation of a joint relative to its parent. For information on the joint hierarchy used, see - * Avatar Standards. + * Avatar Standards. * @function Avatar.getJointRotation * @param {string} name - The name of the joint. * @returns {Quat} The rotation of the joint relative to its parent. @@ -993,7 +993,7 @@ public: * Gets the translation of a joint relative to its parent, in model coordinates. *

Warning: These coordinates are not necessarily in meters.

*

For information on the joint hierarchy used, see - * Avatar Standards.

+ * Avatar Standards.

* @function Avatar.getJointTranslation * @param {number} name - The name of the joint. * @returns {Vec3} The translation of the joint relative to its parent, in model coordinates. @@ -1038,7 +1038,7 @@ public: * @param {Quat[]} jointRotations - The rotations for all joints in the avatar. The values are in the same order as the * array returned by {@link MyAvatar.getJointNames}, or {@link Avatar.getJointNames} if using the Avatar API. * @example Set your avatar to its default T-pose then rotate its right arm.
- * Avatar in T-pose + * Avatar in T-pose * // Set all joint translations and rotations to defaults. * var i, length, rotation, translation; * for (i = 0, length = MyAvatar.getJointNames().length; i < length; i++) { @@ -1135,7 +1135,7 @@ public: * animation is complete. * @function Avatar.setBlendshape * @param {string} name - The name of the blendshape, per the - * {@link https://docs.projectathena.dev/create/avatars/avatar-standards.html#blendshapes Avatar Standards}. + * {@link https://docs.vircadia.dev/create/avatars/avatar-standards.html#blendshapes Avatar Standards}. * @param {number} value - A value between 0.0 and 1.0. * @example Open your avatar's mouth wide. * MyAvatar.hasScriptedBlendshapes = true; diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 9afaa5e85b..df6e701ebe 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -778,7 +778,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * @property {string} actionData="" - Base-64 encoded compressed dump of the actions associated with the entity. This property * is typically not used in scripts directly; rather, functions that manipulate an entity's actions update it, e.g., * {@link Entities.addAction}. The size of this property increases with the number of actions. Because this property value - * has to fit within a High Fidelity datagram packet, there is a limit to the number of actions that an entity can have; + * has to fit within a Vircadia datagram packet, there is a limit to the number of actions that an entity can have; * edits which would result in overflow are rejected. Read-only. * @property {Entities.RenderInfo} renderInfo - Information on the cost of rendering the entity. Currently information is only * provided for Model entities. Read-only. @@ -1215,7 +1215,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * the PolyVox data. This property is typically not used in scripts directly; rather, functions that manipulate a PolyVox * entity update it. *

The size of this property increases with the size and complexity of the PolyVox entity, with the size depending on how - * the particular entity's voxels compress. Because this property value has to fit within a High Fidelity datagram packet, + * the particular entity's voxels compress. Because this property value has to fit within a Vircadia datagram packet, * there is a limit to the size and complexity of a PolyVox entity; edits which would result in an overflow are rejected.

* @property {Entities.PolyVoxSurfaceStyle} voxelSurfaceStyle=2 - The style of rendering the voxels' surface and how * neighboring PolyVox entities are joined. @@ -1366,7 +1366,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const { * var METERS_TO_INCHES = 39.3701; * var entity = Entities.addEntity({ * type: "Web", - * sourceUrl: "https://projectathena.io/", + * sourceUrl: "https://vircadia.com/", * position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.75, z: -4 })), * rotation: MyAvatar.orientation, * dimensions: { @@ -5053,7 +5053,7 @@ bool EntityItemProperties::verifySignature(const QString& publicKey, const QByte bool EntityItemProperties::verifyStaticCertificateProperties() { // True IFF a non-empty certificateID matches the static certificate json. - // I.e., if we can verify that the certificateID was produced by High Fidelity signing the static certificate hash. + // I.e., if we can verify that the certificateID was produced by Vircadia signing the static certificate hash. return verifySignature(EntityItem::_marketplacePublicKey, getStaticCertificateHash(), QByteArray::fromBase64(getCertificateID().toUtf8())); } diff --git a/libraries/image/src/image/TextureProcessing.h b/libraries/image/src/image/TextureProcessing.h index 677d48c61f..326ec700a9 100644 --- a/libraries/image/src/image/TextureProcessing.h +++ b/libraries/image/src/image/TextureProcessing.h @@ -33,7 +33,7 @@ namespace TextureUsage { /**jsdoc *

Describes the type of texture.

*

See also: {@link Material} and - * {@link https://docs.projectathena.dev/create/3d-models/pbr-materials-guide.html|PBR Materials Guide}.

+ * {@link https://docs.vircadia.dev/create/3d-models/pbr-materials-guide.html|PBR Materials Guide}.

* * * diff --git a/libraries/midi/src/Midi.h b/libraries/midi/src/Midi.h index 986682d7f9..e2b84ec333 100644 --- a/libraries/midi/src/Midi.h +++ b/libraries/midi/src/Midi.h @@ -23,7 +23,7 @@ /**jsdoc * The Midi API provides the ability to connect Interface with musical instruments and other external or virtual * devices via the MIDI protocol. For further information and examples, see the tutorial: - * Use MIDI to Control Your Environment. + * Use MIDI to Control Your Environment. * *

Note: Only works on Windows.

* diff --git a/libraries/networking/src/NetworkingConstants.h b/libraries/networking/src/NetworkingConstants.h index fabf8b0e44..3bd84bc977 100644 --- a/libraries/networking/src/NetworkingConstants.h +++ b/libraries/networking/src/NetworkingConstants.h @@ -26,7 +26,7 @@ namespace NetworkingConstants { // at https://staging.highfidelity.com/user/tokens/new?for_domain_server=true const QUrl METAVERSE_SERVER_URL_STABLE { "https://metaverse.highfidelity.com" }; - const QUrl METAVERSE_SERVER_URL_STAGING { "https://staging.projectathena.io" }; + const QUrl METAVERSE_SERVER_URL_STAGING { "https://staging-metaverse.vircadia.com" }; } const QString HIFI_URL_SCHEME_ABOUT = "about"; diff --git a/libraries/plugins/src/plugins/SteamClientPlugin.h b/libraries/plugins/src/plugins/SteamClientPlugin.h index 07e320f8eb..e4d765882f 100644 --- a/libraries/plugins/src/plugins/SteamClientPlugin.h +++ b/libraries/plugins/src/plugins/SteamClientPlugin.h @@ -73,7 +73,7 @@ public slots: /**jsdoc * Opens Steam's "Choose Friends to invite" dialog if Interface is running under Steam. * @function Steam.openInviteOverlay - * @example + * @example * if (Steam.running) { * print("Invite Steam friends to joint you..."); * Steam.openInviteOverlay(); diff --git a/libraries/script-engine/src/Quat.h b/libraries/script-engine/src/Quat.h index 44abe62b24..23bfe56309 100644 --- a/libraries/script-engine/src/Quat.h +++ b/libraries/script-engine/src/Quat.h @@ -223,7 +223,7 @@ public slots: /**jsdoc * Gets the "front" direction that the camera would face if its orientation was set to the quaternion value. * This is a synonym for {@link Quat(0).getForward|Quat.getForward}. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The Vircadia camera has axes x = right, y = up, -z = forward. * @function Quat(0).getFront * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The negative z-axis rotated by orientation. @@ -233,7 +233,7 @@ public slots: /**jsdoc * Gets the "forward" direction that the camera would face if its orientation was set to the quaternion value. * This is a synonym for {@link Quat(0).getFront|Quat.getFront}. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The Vircadia camera has axes x = right, y = up, -z = forward. * @function Quat(0).getForward * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The negative z-axis rotated by orientation. @@ -245,7 +245,7 @@ public slots: /**jsdoc * Gets the "right" direction that the camera would have if its orientation was set to the quaternion value. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The Vircadia camera has axes x = right, y = up, -z = forward. * @function Quat(0).getRight * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The x-axis rotated by orientation. @@ -254,7 +254,7 @@ public slots: /**jsdoc * Gets the "up" direction that the camera would have if its orientation was set to the quaternion value. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The Vircadia camera has axes x = right, y = up, -z = forward. * @function Quat(0).getUp * @param {Quat} orientation - A quaternion representing an orientation. * @returns {Vec3} The y-axis rotated by orientation. diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h index 0ae913431f..0d2333635f 100644 --- a/libraries/script-engine/src/ScriptEngine.h +++ b/libraries/script-engine/src/ScriptEngine.h @@ -417,7 +417,7 @@ public: /**jsdoc * Provides access to methods or objects provided in an external JavaScript or JSON file. - * See {@link https://docs.projectathena.dev/script/js-tips.html} for further details. + * See {@link https://docs.vircadia.dev/script/js-tips.html} for further details. * @function Script.require * @param {string} module - The module to use. May be a JavaScript file, a JSON file, or the name of a system module such * as "appUi" (i.e., the "appUi.js" system module JavaScript file). @@ -534,7 +534,7 @@ public: Q_INVOKABLE QUrl resourcesPath() const; /**jsdoc - * Starts timing a section of code in order to send usage data about it to High Fidelity. Shouldn't be used outside of the + * Starts timing a section of code in order to send usage data about it to Vircadia. Shouldn't be used outside of the * standard scripts. * @function Script.beginProfileRange * @param {string} label - A name that identifies the section of code. @@ -542,7 +542,7 @@ public: Q_INVOKABLE void beginProfileRange(const QString& label) const; /**jsdoc - * Finishes timing a section of code in order to send usage data about it to High Fidelity. Shouldn't be used outside of + * Finishes timing a section of code in order to send usage data about it to Vircadia. Shouldn't be used outside of * the standard scripts. * @function Script.endProfileRange * @param {string} label - A name that identifies the section of code. diff --git a/libraries/script-engine/src/Vec3.h b/libraries/script-engine/src/Vec3.h index a8fe51efe8..a8a8adece3 100644 --- a/libraries/script-engine/src/Vec3.h +++ b/libraries/script-engine/src/Vec3.h @@ -22,9 +22,9 @@ #include "GLMHelpers.h" /**jsdoc - * The Vec3 API provides facilities for generating and manipulating 3-dimensional vectors. High Fidelity uses a + * The Vec3 API provides facilities for generating and manipulating 3-dimensional vectors. Vircadia uses a * right-handed Cartesian coordinate system where the y-axis is the "up" and the negative z-axis is the "front" direction. - * High Fidelity coordinate system + * Vircadia coordinate system * * @namespace Vec3 * @variation 0 diff --git a/libraries/shared/src/SharedUtil.cpp b/libraries/shared/src/SharedUtil.cpp index f14be72a71..04217f5aab 100644 --- a/libraries/shared/src/SharedUtil.cpp +++ b/libraries/shared/src/SharedUtil.cpp @@ -1029,7 +1029,7 @@ bool getProcessorInfo(ProcessorInfo& info) { const QString& getInterfaceSharedMemoryName() { - static const QString applicationName = "High Fidelity Interface - " + qgetenv("USERNAME"); + static const QString applicationName = "Vircadia Interface - " + qgetenv("USERNAME"); return applicationName; } diff --git a/libraries/shared/src/Trace.cpp b/libraries/shared/src/Trace.cpp index e9e77b55ae..bfbe3d7442 100644 --- a/libraries/shared/src/Trace.cpp +++ b/libraries/shared/src/Trace.cpp @@ -167,7 +167,7 @@ void Tracer::serialize(const QString& filename) { QJsonObject { { "traceEvents", traceEvents }, { "otherData", QJsonObject { - { "version", QString { "High Fidelity Interface v1.0" } +BuildInfo::VERSION } + { "version", QString { "Vircadia Interface v1.0" } +BuildInfo::VERSION } } } } }; diff --git a/libraries/ui/src/ui/TabletScriptingInterface.h b/libraries/ui/src/ui/TabletScriptingInterface.h index dd5ec2a845..459007a348 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.h +++ b/libraries/ui/src/ui/TabletScriptingInterface.h @@ -103,9 +103,9 @@ public: * @function Tablet.getTablet * @param {string} name - A unique name that identifies the tablet. * @returns {TabletProxy} The tablet instance. - * @example + * @example * var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); - * tablet.gotoWebScreen("https://projectathena.io/"); + * tablet.gotoWebScreen("https://vircadia.com/"); */ Q_INVOKABLE TabletProxy* getTablet(const QString& tabletId); diff --git a/pkg-scripts/athena-server.spec b/pkg-scripts/athena-server.spec index 7910c8114b..b4bfe313a9 100644 --- a/pkg-scripts/athena-server.spec +++ b/pkg-scripts/athena-server.spec @@ -5,10 +5,10 @@ Name: athena-server Version: %{version} Release: 1%{?dist} -Summary: Project Athena metaverse platform, based on the High Fidelity Engine. +Summary: Vircadia metaverse platform, based on the High Fidelity Engine. License: ASL 2.0 -URL: https://projectathena.io +URL: https://vircadia.com Source0: https://github.com/daleglass/athena-builder/blob/master/athena_builder #BuildRequires: systemd-rpm-macros @@ -19,8 +19,8 @@ AutoReq: no AutoProv: no %description -Project Athena allows creation and sharing of VR experiences. - The Project Athena metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. +Vircadia allows creation and sharing of VR experiences. + The Vircadia metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. %prep diff --git a/script-archive/afk.js b/script-archive/afk.js index 5977c6384a..46441b8886 100644 --- a/script-archive/afk.js +++ b/script-archive/afk.js @@ -6,7 +6,7 @@ // Copyright 2015 High Fidelity, Inc. // kevintown.net // -// JavaScript for the High Fidelity interface that creates an away from keyboard functionality by providing a UI and keyPressEvent which will mute toggle the connected microphone, face tracking dde and set the avatar to a hand raise pose. +// JavaScript for the Vircadia interface that creates an away from keyboard functionality by providing a UI and keyPressEvent which will mute toggle the connected microphone, face tracking dde and set the avatar to a hand raise pose. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/script-archive/tests/performance/renderableMatrix.js b/script-archive/tests/performance/renderableMatrix.js index 04946328cc..2108e35519 100644 --- a/script-archive/tests/performance/renderableMatrix.js +++ b/script-archive/tests/performance/renderableMatrix.js @@ -114,7 +114,7 @@ Script.setInterval(function () { if (isModel) { properties.modelURL = type; } else if (type === 'Web') { - properties.sourceUrl = 'https://projectathena.io'; + properties.sourceUrl = 'https://vircadia.com'; } else { properties.color = { red: x / ROWS_X * 255, green: y / ROWS_Y * 255, blue: z / ROWS_Z * 255 }; if (type === 'ParticleEffect') { diff --git a/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonEntityScript.js b/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonEntityScript.js index 1232bfc843..f518701eb1 100644 --- a/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonEntityScript.js +++ b/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonEntityScript.js @@ -4,7 +4,7 @@ // Created by Eric Levin on 3/7/2016 // Copyright 2016 High Fidelity, Inc. // -// This is the chapter 1 entity script of the fireworks tutorial (https://docs.highfidelity.com/docs/fireworks-scripting-tutorial) +// This is the chapter 1 entity script of the fireworks tutorial (https://docs.vircadia.dev/docs/fireworks-scripting-tutorial) // // Distributed under the Apache License, Version 2.0. diff --git a/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonSpawner.js b/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonSpawner.js index 31d5e00e00..921c0508ee 100644 --- a/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonSpawner.js +++ b/script-archive/tutorials/fireworks/chapter1/fireworksLaunchButtonSpawner.js @@ -4,7 +4,7 @@ // Created by Eric Levin on 3/7/2016 // Copyright 2016 High Fidelity, Inc. // -// This is the chapter 1 interface script of the fireworks tutorial (https://docs.highfidelity.com/docs/fireworks-scripting-tutorial) +// This is the chapter 1 interface script of the fireworks tutorial (https://docs.vircadia.dev/docs/fireworks-scripting-tutorial) // // Distributed under the Apache License, Version 2.0. diff --git a/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonEntityScript.js b/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonEntityScript.js index 66d2e96858..ba16e8af5b 100644 --- a/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonEntityScript.js +++ b/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonEntityScript.js @@ -4,7 +4,7 @@ // Created by Eric Levin on 3/7/2016 // Copyright 2016 High Fidelity, Inc. // -// This is the chapter 2 entity script of the fireworks tutorial (https://docs.highfidelity.com/docs/fireworks-scripting-tutorial) +// This is the chapter 2 entity script of the fireworks tutorial (https://docs.vircadia.dev/docs/fireworks-scripting-tutorial) // // Distributed under the Apache License, Version 2.0. diff --git a/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonSpawner.js b/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonSpawner.js index 19fd67f6c4..e55e7f9d43 100644 --- a/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonSpawner.js +++ b/script-archive/tutorials/fireworks/chapter2/fireworksLaunchButtonSpawner.js @@ -4,7 +4,7 @@ // Created by Eric Levin on 3/7/2016 // Copyright 2016 High Fidelity, Inc. // -// This is the chapter 2 interface script of the fireworks tutorial (https://docs.highfidelity.com/docs/fireworks-scripting-tutorial) +// This is the chapter 2 interface script of the fireworks tutorial (https://docs.vircadia.dev/docs/fireworks-scripting-tutorial) // // Distributed under the Apache License, Version 2.0. diff --git a/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonEntityScript.js b/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonEntityScript.js index f811d95315..faccec5b5c 100644 --- a/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonEntityScript.js +++ b/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonEntityScript.js @@ -4,7 +4,7 @@ // Created by Eric Levin on 3/7/2016 // Copyright 2016 High Fidelity, Inc. // -// This is the chapter 3 entity script of the fireworks tutorial (https://docs.highfidelity.com/docs/fireworks-scripting-tutorial) +// This is the chapter 3 entity script of the fireworks tutorial (https://docs.vircadia.dev/docs/fireworks-scripting-tutorial) // // Distributed under the Apache License, Version 2.0. diff --git a/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonSpawner.js b/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonSpawner.js index 6b77b2609a..0cde1cbd9c 100644 --- a/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonSpawner.js +++ b/script-archive/tutorials/fireworks/chapter3/fireworksLaunchButtonSpawner.js @@ -4,7 +4,7 @@ // Created by Eric Levin on 3/7/2016 // Copyright 2016 High Fidelity, Inc. // -// This is the chapter 3 interface script of the fireworks tutorial (https://docs.highfidelity.com/docs/fireworks-scripting-tutorial) +// This is the chapter 3 interface script of the fireworks tutorial (https://docs.vircadia.dev/docs/fireworks-scripting-tutorial) // // Distributed under the Apache License, Version 2.0. diff --git a/scripts/system/create/edit.js b/scripts/system/create/edit.js index ef07aa4d6e..120988b5a3 100644 --- a/scripts/system/create/edit.js +++ b/scripts/system/create/edit.js @@ -427,7 +427,7 @@ const DEFAULT_ENTITY_PROPERTIES = { y: 0.9, z: 0.01 }, - sourceUrl: "https://projectathena.io/", + sourceUrl: "https://vircadia.com/", dpi: 30, }, ParticleEffect: { diff --git a/server-console/package.json b/server-console/package.json index ed01a9c89e..1ceed08d4d 100644 --- a/server-console/package.json +++ b/server-console/package.json @@ -1,7 +1,7 @@ { "name": "VircadiaConsole", "description": "Vircadia Console", - "author": "High Fidelity", + "author": "Vircadia", "license": "Apache-2.0", "version": "1.0.0", "keywords": [ diff --git a/tools/ac-client/src/ACClientApp.cpp b/tools/ac-client/src/ACClientApp.cpp index 3b5db1a1b1..2fe5d4c783 100644 --- a/tools/ac-client/src/ACClientApp.cpp +++ b/tools/ac-client/src/ACClientApp.cpp @@ -29,7 +29,7 @@ ACClientApp::ACClientApp(int argc, char* argv[]) : { // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity AC client"); + parser.setApplicationDescription("Vircadia AC client"); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/tools/atp-client/src/ATPClientApp.cpp b/tools/atp-client/src/ATPClientApp.cpp index 09fcf38dff..4ae5adf29e 100644 --- a/tools/atp-client/src/ATPClientApp.cpp +++ b/tools/atp-client/src/ATPClientApp.cpp @@ -36,7 +36,7 @@ ATPClientApp::ATPClientApp(int argc, char* argv[]) : { // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity ATP-Client"); + parser.setApplicationDescription("Vircadia ATP-Client"); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/tools/ci-scripts/linux-package-release/package-and-upload.sh b/tools/ci-scripts/linux-package-release/package-and-upload.sh index b38434dcc9..9d75a1ebd7 100755 --- a/tools/ci-scripts/linux-package-release/package-and-upload.sh +++ b/tools/ci-scripts/linux-package-release/package-and-upload.sh @@ -8,20 +8,20 @@ for package_name in "${packages_systemd[@]}" do SOURCE_DESTINATION_LIST="${WORKSPACE}/build/${package_name}/${package_name}=/usr/share/hifi/${package_name}/ " if [ "$package_name" == "domain-server" ]; then - DESCRIPTION="High Fidelity Domain server." + DESCRIPTION="Vircadia Domain server." SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/${package_name}/resources/=/usr/share/hifi/${package_name}/resources " SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/ext/makefiles/quazip/project/build/libquazip5.so.1.0.0=/usr/share/hifi/${package_name}/libquazip5.so.1" elif [ "$package_name" == "assignment-client" ]; then - DESCRIPTION="High Fidelity Assignment clients. Services target a local domain server. Different assignment clients are managed independently with systemd." + DESCRIPTION="Vircadia Assignment clients. Services target a local domain server. Different assignment clients are managed independently with systemd." SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/${package_name}/plugins/=/usr/share/hifi/${package_name}/plugins " SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/ext/makefiles/quazip/project/build/libquazip5.so.1.0.0=/usr/share/hifi/${package_name}/libquazip5.so.1 " SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/${package_name}/oven=/usr/share/hifi/${package_name}/oven" elif [ "$package_name" == "ice-server" ]; then - DESCRIPTION="High Fidelity ICE server." + DESCRIPTION="Vircadia ICE server." fi - fpm -s dir -t deb -n hifi-${prefix}${package_name} -v ${VERSION} -d hifiqt5.12.3 --vendor "High Fidelity Inc" -m "" \ - --url "https://highfidelity.com" --license "Apache License 2.0" --description "${DESCRIPTION}" -d libgomp1 -d libtbb2 -d libgl1-mesa-glx -d libnss3 \ + fpm -s dir -t deb -n hifi-${prefix}${package_name} -v ${VERSION} -d hifiqt5.12.3 --vendor "Vircadia" -m "" \ + --url "https://vircadia.com" --license "Apache License 2.0" --description "${DESCRIPTION}" -d libgomp1 -d libtbb2 -d libgl1-mesa-glx -d libnss3 \ -d libxi6 -d libxcursor1 -d libxcomposite1 -d libasound2 -d libxtst6 -d libxslt1.1 --template-scripts --template-value "service"="hifi-${package_name}" \ --deb-systemd ${LOCAL_PATH}/hifi-${package_name} --before-install ${LOCAL_PATH}/${package_name}-before-install.sh \ --after-install ${LOCAL_PATH}/after-install.sh --before-remove ${LOCAL_PATH}/before-remove.sh \ diff --git a/tools/ice-client/src/ICEClientApp.cpp b/tools/ice-client/src/ICEClientApp.cpp index 0301fad6f4..2f98caafd9 100644 --- a/tools/ice-client/src/ICEClientApp.cpp +++ b/tools/ice-client/src/ICEClientApp.cpp @@ -24,7 +24,7 @@ ICEClientApp::ICEClientApp(int argc, char* argv[]) : { // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity ICE client"); + parser.setApplicationDescription("Vircadia ICE client"); parser.addHelpOption(); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/tools/nitpick/CMakeLists.txt b/tools/nitpick/CMakeLists.txt index d65505415d..e0b5c53c2d 100644 --- a/tools/nitpick/CMakeLists.txt +++ b/tools/nitpick/CMakeLists.txt @@ -72,7 +72,7 @@ elseif (WIN32) set(CONFIGURE_ICON_RC_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/Icon.rc") configure_file("${HF_CMAKE_DIR}/templates/Icon.rc.in" ${CONFIGURE_ICON_RC_OUTPUT}) - set(APP_FULL_NAME "High Fidelity Nitpick") + set(APP_FULL_NAME "Vircadia Nitpick") set(CONFIGURE_VERSION_INFO_RC_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/VersionInfo.rc") configure_file("${HF_CMAKE_DIR}/templates/VersionInfo.rc.in" ${CONFIGURE_VERSION_INFO_RC_OUTPUT}) diff --git a/tools/oven/src/OvenCLIApplication.cpp b/tools/oven/src/OvenCLIApplication.cpp index 5b0de4d6fa..44e487c20b 100644 --- a/tools/oven/src/OvenCLIApplication.cpp +++ b/tools/oven/src/OvenCLIApplication.cpp @@ -42,7 +42,7 @@ void OvenCLIApplication::parseCommandLine(int argc, char* argv[]) { // parse the command line parameters QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity Oven"); + parser.setApplicationDescription("Vircadia Oven"); parser.addOptions({ { CLI_INPUT_PARAMETER, "Path to file that you would like to bake.", "input" }, { CLI_OUTPUT_PARAMETER, "Path to folder that will be used as output.", "output" }, diff --git a/tools/oven/src/ui/OvenMainWindow.cpp b/tools/oven/src/ui/OvenMainWindow.cpp index 59cad3aac5..746a1d06a2 100644 --- a/tools/oven/src/ui/OvenMainWindow.cpp +++ b/tools/oven/src/ui/OvenMainWindow.cpp @@ -18,7 +18,7 @@ OvenMainWindow::OvenMainWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) { - setWindowTitle("High Fidelity Oven"); + setWindowTitle("Vircadia Oven"); // give the window a fixed width that will never change setFixedWidth(FIXED_WINDOW_WIDTH); diff --git a/tools/oven/src/ui/ResultsWindow.cpp b/tools/oven/src/ui/ResultsWindow.cpp index feb7fbc4f1..95aa0fac16 100644 --- a/tools/oven/src/ui/ResultsWindow.cpp +++ b/tools/oven/src/ui/ResultsWindow.cpp @@ -23,7 +23,7 @@ ResultsWindow::ResultsWindow(QWidget* parent) : QWidget(parent) { // add a title to this window to identify it - setWindowTitle("High Fidelity Oven - Bake Results"); + setWindowTitle("Vircadia Oven - Bake Results"); // give this dialog the same starting width as the main application window resize(FIXED_WINDOW_WIDTH, size().height()); diff --git a/tools/skeleton-dump/src/SkeletonDumpApp.cpp b/tools/skeleton-dump/src/SkeletonDumpApp.cpp index 42a1c78090..14c3cb625c 100644 --- a/tools/skeleton-dump/src/SkeletonDumpApp.cpp +++ b/tools/skeleton-dump/src/SkeletonDumpApp.cpp @@ -19,7 +19,7 @@ SkeletonDumpApp::SkeletonDumpApp(int argc, char* argv[]) : QCoreApplication(argc // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity FBX Skeleton Analyzer"); + parser.setApplicationDescription("Vircadia FBX Skeleton Analyzer"); const QCommandLineOption helpOption = parser.addHelpOption(); const QCommandLineOption verboseOutput("v", "verbose output"); diff --git a/tools/udt-test/src/UDTTest.cpp b/tools/udt-test/src/UDTTest.cpp index 65bf2c7ebd..dc22717165 100644 --- a/tools/udt-test/src/UDTTest.cpp +++ b/tools/udt-test/src/UDTTest.cpp @@ -216,7 +216,7 @@ UDTTest::UDTTest(int& argc, char** argv) : void UDTTest::parseArguments() { // use a QCommandLineParser to setup command line arguments and give helpful output - _argumentParser.setApplicationDescription("High Fidelity UDT Protocol Test Client"); + _argumentParser.setApplicationDescription("Vircadia UDT Protocol Test Client"); _argumentParser.addHelpOption(); const QCommandLineOption helpOption = _argumentParser.addHelpOption(); diff --git a/tools/vhacd-util/src/VHACDUtilApp.cpp b/tools/vhacd-util/src/VHACDUtilApp.cpp index 3d675f8baf..1ec54f8d2a 100644 --- a/tools/vhacd-util/src/VHACDUtilApp.cpp +++ b/tools/vhacd-util/src/VHACDUtilApp.cpp @@ -106,7 +106,7 @@ VHACDUtilApp::VHACDUtilApp(int argc, char* argv[]) : // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("High Fidelity Object Decomposer"); + parser.setApplicationDescription("Vircadia Object Decomposer"); parser.addHelpOption(); const QCommandLineOption helpOption = parser.addHelpOption(); From e9297eb1314c89bb19d3c28454d0bf6e4aa3e7e0 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Tue, 7 Apr 2020 16:17:09 -0400 Subject: [PATCH 02/15] Correction. --- interface/src/FancyCamera.h | 2 +- launchers/qt/src/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/FancyCamera.h b/interface/src/FancyCamera.h index f7be71e053..2a131d991f 100644 --- a/interface/src/FancyCamera.h +++ b/interface/src/FancyCamera.h @@ -20,7 +20,7 @@ class FancyCamera : public Camera { /**jsdoc * The Camera API provides access to the "camera" that defines your view in desktop and HMD display modes. - * The High Fidelity camera has axes x = right, y = up, -z = forward. + * The Vircadia camera has axes x = right, y = up, -z = forward. * * @namespace Camera * diff --git a/launchers/qt/src/main.cpp b/launchers/qt/src/main.cpp index 58aa1ba7ba..75c35cd708 100644 --- a/launchers/qt/src/main.cpp +++ b/launchers/qt/src/main.cpp @@ -1,4 +1,4 @@ -"Vircadia#include +#include #include From 9dce990e8f2ceb0b817d72980f328fbcdb8d19a4 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Tue, 7 Apr 2020 18:48:24 -0400 Subject: [PATCH 03/15] Help dialog updated. --- .../resources/images/about-vircadia-logo.png | Bin 0 -> 54627 bytes .../qml/hifi/dialogs/TabletAboutDialog.qml | 11 ++++++++--- interface/src/Menu.cpp | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 interface/resources/images/about-vircadia-logo.png diff --git a/interface/resources/images/about-vircadia-logo.png b/interface/resources/images/about-vircadia-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..79d01be595fb9fc2f4b1e73c7fad30b490ec896c GIT binary patch literal 54627 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 About Project Athena - action = addActionToQMenuAndActionHash(helpMenu, "About Project Athena"); + // Help > About Vircadia + action = addActionToQMenuAndActionHash(helpMenu, "About Vircadia"); connect(action, &QAction::triggered, [] { qApp->showDialog(QString("hifi/dialogs/AboutDialog.qml"), QString("hifi/dialogs/TabletAboutDialog.qml"), "AboutDialog"); From f4bcc82dd6adf50a69618af8494445889e409168 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Sat, 16 May 2020 02:27:45 -0400 Subject: [PATCH 04/15] Corrections. --- README_hifi.md | 4 +++- interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README_hifi.md b/README_hifi.md index 8d02300455..004b43b706 100644 --- a/README_hifi.md +++ b/README_hifi.md @@ -1,3 +1,5 @@ +# THIS IS AN OUTDATED DOCUMENT. + High Fidelity (hifi) is an early-stage technology lab experimenting with Virtual Worlds and VR. This repository contains the source to many of the components in our @@ -15,7 +17,7 @@ Come chat with us in [our Gitter](https://gitter.im/highfidelity/hifi) if you ha Documentation ========= -Documentation is available at [docs.vircadia.dev](https://docs.vircadia.dev), if something is missing, please suggest it via a new job on Worklist (add to the hifi-docs project). +Documentation is available at [docs.highfidelity.com](https://docs.highfidelity.com/), if something is missing, please suggest it via a new job on Worklist (add to the hifi-docs project). There is also detailed [documentation on our coding standards](CODING_STANDARD.md). diff --git a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml index c7c82b7e07..e4ad375319 100644 --- a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml +++ b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml @@ -116,7 +116,7 @@ Rectangle { Item { height: 20; width: 1 } RalewayRegular { color: "white" - text: "© 2020 Vircadia Contributors." + text: "© 2020 Vircadia." size: 14 } RalewayRegular { From 335f0c86ddc8c953f4f30ae17de864ecaa8d97e2 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Sun, 17 May 2020 22:13:57 -0400 Subject: [PATCH 05/15] Reduce scope of PR. --- assignment-client/src/AssignmentClientApp.cpp | 2 +- cmake/ports/hifi-client-deps/CONTROL | 2 +- domain-server/src/DomainServer.cpp | 2 +- libraries/shared/src/SharedUtil.cpp | 2 +- libraries/shared/src/Trace.cpp | 2 +- pkg-scripts/athena-server.spec | 8 ++++---- tools/ac-client/src/ACClientApp.cpp | 2 +- tools/atp-client/src/ATPClientApp.cpp | 2 +- .../linux-package-release/package-and-upload.sh | 10 +++++----- tools/ice-client/src/ICEClientApp.cpp | 2 +- tools/nitpick/CMakeLists.txt | 2 +- tools/oven/src/OvenCLIApplication.cpp | 2 +- tools/oven/src/ui/OvenMainWindow.cpp | 2 +- tools/oven/src/ui/ResultsWindow.cpp | 2 +- tools/skeleton-dump/src/SkeletonDumpApp.cpp | 2 +- tools/udt-test/src/UDTTest.cpp | 2 +- tools/vhacd-util/src/VHACDUtilApp.cpp | 2 +- 17 files changed, 24 insertions(+), 24 deletions(-) diff --git a/assignment-client/src/AssignmentClientApp.cpp b/assignment-client/src/AssignmentClientApp.cpp index 6915f15629..c5b228bd16 100644 --- a/assignment-client/src/AssignmentClientApp.cpp +++ b/assignment-client/src/AssignmentClientApp.cpp @@ -44,7 +44,7 @@ AssignmentClientApp::AssignmentClientApp(int argc, char* argv[]) : // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("Vircadia Assignment Client"); + parser.setApplicationDescription("High Fidelity Assignment Client"); const QCommandLineOption helpOption = parser.addHelpOption(); const QCommandLineOption versionOption = parser.addVersionOption(); diff --git a/cmake/ports/hifi-client-deps/CONTROL b/cmake/ports/hifi-client-deps/CONTROL index 7b94d1ce56..7d4727b364 100644 --- a/cmake/ports/hifi-client-deps/CONTROL +++ b/cmake/ports/hifi-client-deps/CONTROL @@ -1,4 +1,4 @@ Source: hifi-client-deps Version: 0 -Description: Collected dependencies for Vircadia applications +Description: Collected dependencies for High Fidelity applications Build-Depends: hifi-deps, glslang, nlohmann-json, openvr (windows), sdl2 (!android), spirv-cross (!android), spirv-tools (!android), vulkanmemoryallocator diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index eff129095c..a9bc24c483 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -334,7 +334,7 @@ DomainServer::DomainServer(int argc, char* argv[]) : void DomainServer::parseCommandLine(int argc, char* argv[]) { QCommandLineParser parser; - parser.setApplicationDescription("Vircadia Domain Server"); + parser.setApplicationDescription("High Fidelity Domain Server"); const QCommandLineOption versionOption = parser.addVersionOption(); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/libraries/shared/src/SharedUtil.cpp b/libraries/shared/src/SharedUtil.cpp index 04217f5aab..f14be72a71 100644 --- a/libraries/shared/src/SharedUtil.cpp +++ b/libraries/shared/src/SharedUtil.cpp @@ -1029,7 +1029,7 @@ bool getProcessorInfo(ProcessorInfo& info) { const QString& getInterfaceSharedMemoryName() { - static const QString applicationName = "Vircadia Interface - " + qgetenv("USERNAME"); + static const QString applicationName = "High Fidelity Interface - " + qgetenv("USERNAME"); return applicationName; } diff --git a/libraries/shared/src/Trace.cpp b/libraries/shared/src/Trace.cpp index bfbe3d7442..e9e77b55ae 100644 --- a/libraries/shared/src/Trace.cpp +++ b/libraries/shared/src/Trace.cpp @@ -167,7 +167,7 @@ void Tracer::serialize(const QString& filename) { QJsonObject { { "traceEvents", traceEvents }, { "otherData", QJsonObject { - { "version", QString { "Vircadia Interface v1.0" } +BuildInfo::VERSION } + { "version", QString { "High Fidelity Interface v1.0" } +BuildInfo::VERSION } } } } }; diff --git a/pkg-scripts/athena-server.spec b/pkg-scripts/athena-server.spec index b4bfe313a9..7910c8114b 100644 --- a/pkg-scripts/athena-server.spec +++ b/pkg-scripts/athena-server.spec @@ -5,10 +5,10 @@ Name: athena-server Version: %{version} Release: 1%{?dist} -Summary: Vircadia metaverse platform, based on the High Fidelity Engine. +Summary: Project Athena metaverse platform, based on the High Fidelity Engine. License: ASL 2.0 -URL: https://vircadia.com +URL: https://projectathena.io Source0: https://github.com/daleglass/athena-builder/blob/master/athena_builder #BuildRequires: systemd-rpm-macros @@ -19,8 +19,8 @@ AutoReq: no AutoProv: no %description -Vircadia allows creation and sharing of VR experiences. - The Vircadia metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. +Project Athena allows creation and sharing of VR experiences. + The Project Athena metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. %prep diff --git a/tools/ac-client/src/ACClientApp.cpp b/tools/ac-client/src/ACClientApp.cpp index 2fe5d4c783..3b5db1a1b1 100644 --- a/tools/ac-client/src/ACClientApp.cpp +++ b/tools/ac-client/src/ACClientApp.cpp @@ -29,7 +29,7 @@ ACClientApp::ACClientApp(int argc, char* argv[]) : { // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("Vircadia AC client"); + parser.setApplicationDescription("High Fidelity AC client"); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/tools/atp-client/src/ATPClientApp.cpp b/tools/atp-client/src/ATPClientApp.cpp index 4ae5adf29e..09fcf38dff 100644 --- a/tools/atp-client/src/ATPClientApp.cpp +++ b/tools/atp-client/src/ATPClientApp.cpp @@ -36,7 +36,7 @@ ATPClientApp::ATPClientApp(int argc, char* argv[]) : { // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("Vircadia ATP-Client"); + parser.setApplicationDescription("High Fidelity ATP-Client"); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/tools/ci-scripts/linux-package-release/package-and-upload.sh b/tools/ci-scripts/linux-package-release/package-and-upload.sh index 9d75a1ebd7..b38434dcc9 100755 --- a/tools/ci-scripts/linux-package-release/package-and-upload.sh +++ b/tools/ci-scripts/linux-package-release/package-and-upload.sh @@ -8,20 +8,20 @@ for package_name in "${packages_systemd[@]}" do SOURCE_DESTINATION_LIST="${WORKSPACE}/build/${package_name}/${package_name}=/usr/share/hifi/${package_name}/ " if [ "$package_name" == "domain-server" ]; then - DESCRIPTION="Vircadia Domain server." + DESCRIPTION="High Fidelity Domain server." SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/${package_name}/resources/=/usr/share/hifi/${package_name}/resources " SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/ext/makefiles/quazip/project/build/libquazip5.so.1.0.0=/usr/share/hifi/${package_name}/libquazip5.so.1" elif [ "$package_name" == "assignment-client" ]; then - DESCRIPTION="Vircadia Assignment clients. Services target a local domain server. Different assignment clients are managed independently with systemd." + DESCRIPTION="High Fidelity Assignment clients. Services target a local domain server. Different assignment clients are managed independently with systemd." SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/${package_name}/plugins/=/usr/share/hifi/${package_name}/plugins " SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/ext/makefiles/quazip/project/build/libquazip5.so.1.0.0=/usr/share/hifi/${package_name}/libquazip5.so.1 " SOURCE_DESTINATION_LIST+="${WORKSPACE}/build/${package_name}/oven=/usr/share/hifi/${package_name}/oven" elif [ "$package_name" == "ice-server" ]; then - DESCRIPTION="Vircadia ICE server." + DESCRIPTION="High Fidelity ICE server." fi - fpm -s dir -t deb -n hifi-${prefix}${package_name} -v ${VERSION} -d hifiqt5.12.3 --vendor "Vircadia" -m "" \ - --url "https://vircadia.com" --license "Apache License 2.0" --description "${DESCRIPTION}" -d libgomp1 -d libtbb2 -d libgl1-mesa-glx -d libnss3 \ + fpm -s dir -t deb -n hifi-${prefix}${package_name} -v ${VERSION} -d hifiqt5.12.3 --vendor "High Fidelity Inc" -m "" \ + --url "https://highfidelity.com" --license "Apache License 2.0" --description "${DESCRIPTION}" -d libgomp1 -d libtbb2 -d libgl1-mesa-glx -d libnss3 \ -d libxi6 -d libxcursor1 -d libxcomposite1 -d libasound2 -d libxtst6 -d libxslt1.1 --template-scripts --template-value "service"="hifi-${package_name}" \ --deb-systemd ${LOCAL_PATH}/hifi-${package_name} --before-install ${LOCAL_PATH}/${package_name}-before-install.sh \ --after-install ${LOCAL_PATH}/after-install.sh --before-remove ${LOCAL_PATH}/before-remove.sh \ diff --git a/tools/ice-client/src/ICEClientApp.cpp b/tools/ice-client/src/ICEClientApp.cpp index 2f98caafd9..0301fad6f4 100644 --- a/tools/ice-client/src/ICEClientApp.cpp +++ b/tools/ice-client/src/ICEClientApp.cpp @@ -24,7 +24,7 @@ ICEClientApp::ICEClientApp(int argc, char* argv[]) : { // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("Vircadia ICE client"); + parser.setApplicationDescription("High Fidelity ICE client"); parser.addHelpOption(); const QCommandLineOption helpOption = parser.addHelpOption(); diff --git a/tools/nitpick/CMakeLists.txt b/tools/nitpick/CMakeLists.txt index e0b5c53c2d..d65505415d 100644 --- a/tools/nitpick/CMakeLists.txt +++ b/tools/nitpick/CMakeLists.txt @@ -72,7 +72,7 @@ elseif (WIN32) set(CONFIGURE_ICON_RC_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/Icon.rc") configure_file("${HF_CMAKE_DIR}/templates/Icon.rc.in" ${CONFIGURE_ICON_RC_OUTPUT}) - set(APP_FULL_NAME "Vircadia Nitpick") + set(APP_FULL_NAME "High Fidelity Nitpick") set(CONFIGURE_VERSION_INFO_RC_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/VersionInfo.rc") configure_file("${HF_CMAKE_DIR}/templates/VersionInfo.rc.in" ${CONFIGURE_VERSION_INFO_RC_OUTPUT}) diff --git a/tools/oven/src/OvenCLIApplication.cpp b/tools/oven/src/OvenCLIApplication.cpp index 44e487c20b..5b0de4d6fa 100644 --- a/tools/oven/src/OvenCLIApplication.cpp +++ b/tools/oven/src/OvenCLIApplication.cpp @@ -42,7 +42,7 @@ void OvenCLIApplication::parseCommandLine(int argc, char* argv[]) { // parse the command line parameters QCommandLineParser parser; - parser.setApplicationDescription("Vircadia Oven"); + parser.setApplicationDescription("High Fidelity Oven"); parser.addOptions({ { CLI_INPUT_PARAMETER, "Path to file that you would like to bake.", "input" }, { CLI_OUTPUT_PARAMETER, "Path to folder that will be used as output.", "output" }, diff --git a/tools/oven/src/ui/OvenMainWindow.cpp b/tools/oven/src/ui/OvenMainWindow.cpp index 746a1d06a2..59cad3aac5 100644 --- a/tools/oven/src/ui/OvenMainWindow.cpp +++ b/tools/oven/src/ui/OvenMainWindow.cpp @@ -18,7 +18,7 @@ OvenMainWindow::OvenMainWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) { - setWindowTitle("Vircadia Oven"); + setWindowTitle("High Fidelity Oven"); // give the window a fixed width that will never change setFixedWidth(FIXED_WINDOW_WIDTH); diff --git a/tools/oven/src/ui/ResultsWindow.cpp b/tools/oven/src/ui/ResultsWindow.cpp index 95aa0fac16..feb7fbc4f1 100644 --- a/tools/oven/src/ui/ResultsWindow.cpp +++ b/tools/oven/src/ui/ResultsWindow.cpp @@ -23,7 +23,7 @@ ResultsWindow::ResultsWindow(QWidget* parent) : QWidget(parent) { // add a title to this window to identify it - setWindowTitle("Vircadia Oven - Bake Results"); + setWindowTitle("High Fidelity Oven - Bake Results"); // give this dialog the same starting width as the main application window resize(FIXED_WINDOW_WIDTH, size().height()); diff --git a/tools/skeleton-dump/src/SkeletonDumpApp.cpp b/tools/skeleton-dump/src/SkeletonDumpApp.cpp index 14c3cb625c..42a1c78090 100644 --- a/tools/skeleton-dump/src/SkeletonDumpApp.cpp +++ b/tools/skeleton-dump/src/SkeletonDumpApp.cpp @@ -19,7 +19,7 @@ SkeletonDumpApp::SkeletonDumpApp(int argc, char* argv[]) : QCoreApplication(argc // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("Vircadia FBX Skeleton Analyzer"); + parser.setApplicationDescription("High Fidelity FBX Skeleton Analyzer"); const QCommandLineOption helpOption = parser.addHelpOption(); const QCommandLineOption verboseOutput("v", "verbose output"); diff --git a/tools/udt-test/src/UDTTest.cpp b/tools/udt-test/src/UDTTest.cpp index dc22717165..65bf2c7ebd 100644 --- a/tools/udt-test/src/UDTTest.cpp +++ b/tools/udt-test/src/UDTTest.cpp @@ -216,7 +216,7 @@ UDTTest::UDTTest(int& argc, char** argv) : void UDTTest::parseArguments() { // use a QCommandLineParser to setup command line arguments and give helpful output - _argumentParser.setApplicationDescription("Vircadia UDT Protocol Test Client"); + _argumentParser.setApplicationDescription("High Fidelity UDT Protocol Test Client"); _argumentParser.addHelpOption(); const QCommandLineOption helpOption = _argumentParser.addHelpOption(); diff --git a/tools/vhacd-util/src/VHACDUtilApp.cpp b/tools/vhacd-util/src/VHACDUtilApp.cpp index 1ec54f8d2a..3d675f8baf 100644 --- a/tools/vhacd-util/src/VHACDUtilApp.cpp +++ b/tools/vhacd-util/src/VHACDUtilApp.cpp @@ -106,7 +106,7 @@ VHACDUtilApp::VHACDUtilApp(int argc, char* argv[]) : // parse command-line QCommandLineParser parser; - parser.setApplicationDescription("Vircadia Object Decomposer"); + parser.setApplicationDescription("High Fidelity Object Decomposer"); parser.addHelpOption(); const QCommandLineOption helpOption = parser.addHelpOption(); From f908d5bb0af27c43446efa9d315efc1f3099bff2 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Sun, 17 May 2020 22:20:02 -0400 Subject: [PATCH 06/15] Undo logo change. --- .../resources/images/about-vircadia-logo.png | Bin 54627 -> 0 bytes .../qml/hifi/dialogs/TabletAboutDialog.qml | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 interface/resources/images/about-vircadia-logo.png diff --git a/interface/resources/images/about-vircadia-logo.png b/interface/resources/images/about-vircadia-logo.png deleted file mode 100644 index 79d01be595fb9fc2f4b1e73c7fad30b490ec896c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54627 zcmb@scTkgE*FJiKAfiYWK?p@bK$Kn+x^$IZr3y&zy%$00gsLE+D7|+f^iD*CNN=Hc zLg<7JXYhHS@AtjuoH>7;HIqLwbMG>HuXSD5T5CtBD$C!$OLG?hfcuIHGU@<8pbG#v zl6P(c06=C?b_4(bj;p%-OQ383v;hDBo~4wM6aZAl-n%ft2LOQ3N#U(401$WH{BRJC z1@8f1$TO)m~EJG zLiS#U5Z=9=ecNnA<^h?^TNz?0vhq8Tdvat_50`Z%-EgSBh~-@yR>y|-xgnL2Z&chz zcg|1ON6_D6H@>E48*7Q-0{=hRHQ$L~i*}0AGt~fb{OIbR+yhk}E_pxr`)n)|tTXIp zSS(uquEfhbQRAt^r-PJ8}AevvBQs3P{wWHPm)3>^V*x;FTc1Mvx!Sky;-Du$wbLDaZq1Zl*?b9tEjb`)H6kQd zZ23|&7VKt+63tku1%32SBc67t&in%rM1#c$7T{unjh9^q0#?VUlsxYVz5JgxS5}vv zUHsAM+83V{+hcCyw~DI5ubVB!?HRWT;)0ia4Kes*)tLD;l_ zwyB63<%x5q(#|?oQVFLezi72NDwAu6;}zx%#Eut{^7P^~g)SQIZBRy^I6);;{GwwI zEXK)N2AzW*?PM#PzP+B^o?zOZTMf`z6YFTn5|bN84AgzDuWw_4gImH8^w1wrOv?!t zj}zLyH}S*{i51?OC|O#iP8)OnA=YxAwTzG>3T;NxIa>MF?%0eY7Rv*^Jhx(qonM^* z9aHRJCd1djlpSSEwdU1Oj5uDS`xcf9+u3jRv6c$62L{1rz)q&V0Z&SF-sS{4`nE=0 zBG4()CGK{0h&q!``to*BumzcBhA=Z%au2$EvnVY5g~v{=S|;DaaV{j1|v!KM{Q498HW4rPz?K9KPx( zLsy9DtUV#mH;cx$+_|2GE`cLmar-u?4b!D7#b8Hi^vT1gq$p4;U1g~i0}OpBvW38k zg17o2FwVlD>?Lm}IM)`oE8q#pOxOWg3iF?&%O0+GCC5^CiNha#=@jh7g2wN6Zi@NBfuM)pG}EIS?_eacAmcOJv5hdH%g1ydc!#gK&aZ-G zrc`QTdq?Xl^}`%h=A8^224I-_%JbvkPJff}>PdNKwM-SEb29XVJ(AqRSNVE&wWZ+r zv5atSMHd8B@_VD{liBr7zq&0$dFuNY;yx#;vl7?(Xpt6zHVU=t^lPMTt|8H@Q;|n< z1V;aW(Px=U=@D}4^onD7y)eg4XV=H$8`Op~R67`1Qsk1S=q^shHwRUTLK?6G2 z1eK7=ys57Pbb5n24LS{7sk|oyW_<$r@cD4)6K@9lDi@w5$r9+w>!bKL+!ZB8}za2a=J#q-6kl& z8_^tUa)I+h6X(WJ)4-P%H55pO?BJzj58LK~ShbSQehT3kOTtF3uuBno{g3{WE_%pr ze}@c;b_a>?7+GB*Q2vq=N~fj^Yd2Oc=K1oYe?2%r#8h8RLNM%72KA-?vW#Biqra?g zbXjb=W1t+!GY9jDX>7^DTzT5HnG1HbMW0A9Z4WM8bIR03V(aV7s-ZA5Cq2X{_Czqv z%d@LOOx)JHW^H7&@~r_~NIyjRdUmhAVqtXxCAwBtXUUYYrdc6YE8IeFNLNi!nK5$% zEX0V19(1t4z-Y`BQ;8>T<0W6dD;0G3YRThw@DC^kdm{LP3PE}l0D|@_PPli~!o7p7 zV*ALaZ`O8bJZQAs$i- zI-S_uEC+O_h17gRm=LYJH;*I=+%lK`&RpvLtHSFv6Kb7Z^1m2Rv9KCeutcK#dct0A zB6bPev>EeaLQF7u+SNUP!=dicwm8DfY3kuzMw=dDbcr18T+Le-JFeW6$by)li<&lb z^O*@VYhmR;DJ=vT`mShX=0ELWL6n6Dv0i%%c4 z^;dvupV22SHJHF5ft-H)sueq%AI9K!P zATSnmQA^$xCUwxI+O4sLX$sxzSq}+6U)-?EMu-K$-i3j?fLO&-quAcPIsIeVbFZ{o zs&cc3FVP?0BC%fhjhDK8bjDGrlHbmBjsBCBld(%4cH6EH0=2-^yTl06?GqHJ`dyvT z$lB1Ng?<^90^|DucB$Wo$zYgXQz}_n-J2*`f|qh1gD-uj{dY?hSH*|<8Q4VOJMos{ z_NrY`IEy`dm)n*Zb8*V<1Ag7y(Pd3|f6p1zbr5D1?ruCHQFbc$qO#d4c5s_ocSIs6 z9lKLgeh0C@ylM8p4!h=cm4>}xxO3;JycjQW7I`u#a>E(y?0(@<639^ZOqYY~m;vK6 z<}$t(;rKl2yz;=_yo_App$@`wh6*{J4|Cnd!ZG1yP6p$06YeGE&^6X6cLO`*##|T_ zjN;KvgSJD5y`!*c4G_U7wAmfk%%y|*8V=ersM1yxjMb@9ObCH-BT`1#Bb@aG(X#%; zB`azS)fAP@!gR2c}R@42*beENbBQ=Od1BXx z@u|%+PN!Pw107FEg424NI16eEocJ(Q_i(QI3H< zE0th+PhkgW|Kb^S2g=fS_C=XoL=>W{|Ca$>9nAd&bgeyf1_GU~x*^bam%h`NyBI+a`={f;P01K>D=f^`to;m47T;dKDCJcI#$x@>gi;UM}LQz2eVWLSo|+f9N(hHFt()qLVx$v=p*WZ4#zkj;F*j?pv}m<=n{YH zyeeE4ifu{UQ|cxMJfFnAGt@@?;>PuK`X|uH;HP9X+XO3nS(hdp!k2KjBk8Y>oi0;G zX~!#@7kZ#^S2)*}k3(H|-2&X-pf=0@O+4JsAbz3@y-00HC*Oo@e3}v4TdJFp=(Kos z=0>_Ro=>|Mz|nnl0k-d36-Qh)PSVeXE@8#Fe)`!#ks-Hq5EvI@57Bd&d!@2L=D2XC zP(EgozOEnQz>tq|rCLMKV3s1z>pjR3{$Mc@kF_ahx|W#G8Hhuzd0#)+RS(f!ACcO( z2HrFaKdz6+h6hkNKXX7@N3TsXW_v=k&M)d(`B}-8N~d0w112(lO0?zp*V3WRkHh|Y z4(SINLpc+G<0tj=fJy zCte^Z5(+bOMX5B^S$0~}AL8N(zVrzEJOKt=S%c;tl*v`sHar(d9(P@wD2U9G1|9&}P<~sEy zqyqi6Z;QUT_%a+bS+aHr`na+`0UCGKrwo2DQz3bGMet+dPzKyl1g}tt$onPJc&Pp zi#}_)bMD#5#kwaN@c*g+tmtl103Buz#3GhD+YpJJi?Vm-dl7aibD09Fb$>Hq<}56S zIGA_J!~_&MMYB42`;{G=S7*$axtKO`QR_klO0#{pJGpE$GkbRM4Gb$(hwF@6aL%PXVd&0J|RqJa?;7EQt+eS>RGgZ-@| zI>eH4m#00PYGEOm=lAYZSovH^{>SmgEv zIAi<{g0yZ;Cir0KY5u{(o$-3Qe|>)O0@VPK_5qU+}VMApj6+Q%91gMDhzg-*oM z==nz`*ug`jS>nQx1M4he)xy`PiFmOgmOFNkF0S)k$lB{*?jXf3Qzy)ovD3Ew%S-^Xmomnv6}mRuzqGemIVDCNzbTv)hXAS)^9XAk#qx=r`P9UZY zAN8NuT|5mLP$QD?m@y!AhR7k7j$Mq2)977Cj=^Fq`SyGE!VVb}@`K`e3I^h33Z`$5 z@y2-Mnw#-N%it2p#9Poo49|o^tYbFi4hCH5`@0NlURO$;p)Z7p4?jq9au|pohB)lp zLtqZ5kY>9Hot51OI~^S5Mss_9D$w)uMm&VYxhV7LDfGM^8$P^L(}?VcD5FX!1cZ>W z!w|va?xRY$pOUOU5pS!4FcEiaWW(i+cM1});C{T5+Rd|$D3j9 zCs@4rT1w=SYh`JQOryl!j+m%ixv}j6{OsIWI23**)^mQ*b&BeS4cA8JU{qb7gI~V>bUK?Zk4=j+EO}l10M_Mm-qHS1 zl+!PIWTo;W8k=O2CWpg!@v#KT_H9-Gf(6P` zBq+G2gH<^*MAz;Y6{z8(U-hTQZhq{MYj<0I;o2}!v<`peeQe%Ol z#6KovENX-CALskmhMwg!So`iW9I8!Hv)|#&`}VfySkrKXN&mjtn4`#7F=5>M;E{I% zo=&&^9dToldQWR&Yi~2;Ab$nQhW$o*Z#bJ4x1RBZn&dnRJwS4V2K1%+Q zVDaE7K6vsc$UoTKW}LT^X!Sqb@gJLiZTf3Ird_`En-!ePEPqe#Z+)r9kje}1y5M{e1u1eiORZCC`gTGDm2`#@YO^c) zPy0wc_($%?aX*tMasBt&8F`3@wa#IQ>1c;c1xrZ!W?nJsOS6~I8sd=Xl z{`;a^Jd*CNyB=7uXNNQ~-zARF>Ey0r%`hH{msU-24c212Cn}fscHrNz`fEYul*7bl zs0*>rgRxCHHg@@xt6jzM2|hZq_cR}Z+oupeSvz(ACldb|vO_sIUelW<$D&1JNxgE| z)=}A2EG1_gZK`Fwj91)E^hK;o>7P&kV^1$6(N>M8j?l%wsZm7X;cJ20UpcnM%jea9V)}Q|zxFg~m~6^QIrp1)QnKbuK@5KsQIrnAqy84<5~^hnJ!P_StS%cyky#m|nk7fKs-s(PnalXT4ky;DJAV~{)x}(xqFb3{rc3lI ziI!De(TI`NUKkj6GTlx6KIDfYg$)W$mhR`m0jbyK`1R}8-5<82C5juPLxp-jY?3m* zJZw;^b{HPsTiv3{^l$m#&}`2x|1GhkByqzyR-$Nm4xJ-`Ql=FO=q6h)_;U1CVCO3< z7+2!?vuC+gRlMxaO5v2(pY{4=3^X-m!blkMLI_9(V!b+|KE-Kk-{N`GAtmZuD z2CpvX60PODKZA1IrwWyd0D*$hwe_^70)wY~5SFg40JzV0FYWQdAz?cwy(0T9e4V_cqj)7TMshv?nsfY?HOoUl zSk*ucJosp5@g%#R=C7EhZr}XqC#4&!%XB9_O4dcmZ4*ir5KGVaYQ{J921oy(Zg2u+ zD~xOCE?g%jc2P$ltRA&~m>|X<7TnIr6)!DNq(ZlD{pvfBk!hxk`>UqAEcljJN6ksS zpx`H2Dix7xCC`qI6HMOklNYWCGM^oP1zF8=O@}*3=Ng13{EBFIDmzQCQpS}td(zHM z!mRsP+tdwB`$@(&fKjhy?yM?y;B|&%uokf;zwN8FbWhIo(K36sN*|lV9zT+GJVI?T z^Y@zBpYE-yV@h5aWj%~neI#HZib4H|N)B>}d-tgb;xsSGw$N}2b6l@R3jWC}7aE4r ziJTh6-6t>k7IL1il6|kyZBaq&_{#itsh2sW{Jxb;XThV(&}?e*l00uO&!hBA;A9a*_Ul+pEhnH`(hJw`0S)!9FgIocv6mG>4WAp^;{N z9cCRIem<{1lIDrUFJHa7yRr&hy#usmq!eaLhq+o!#Mw1iZesYaC-bc)6R51uGI#P& zmDz=cjeNb_Sqyc!z`Ptxu=KNX+1>gjISoceV^cG#W`!^-Gg;Ed5u06SzkiB8&7Q?0 zmLl6WsthAWRv5jJ2PdQ!w6Er?=~NbF8u8dreJhg7P~U49>@IP9K1&4vMeL)D4NZcB zw>TnduM?~WCuRK64PS5LJyConC$C)2Z|?(Hfzrud2P`riE_PUMkR-CI*Y$B}Kq_&8 zfiC<~vd%E4oH8S^2DOmeW3h}t5L*P~fa-GpWdk<#`9|d=$tUu%C#O?&DqKbS`NY@H zfuIvw0T=4JkX33CC3NCI@#b0#im2GZVua!wRO@|l&k{1#0(cgSzULzl$74fM#-11xP z(f9^(YaSjj#cmT3le>x9Z0Qte5E^w>9g^&IoaNBHeet;ec=e zxK6RQQbQ9u_YmMs;%t+`5< z*JZStU%aQ5Yp$7E0fT~ZQL*)$&(m+{Eq;WUAcB6h;LXdZO-d$P;0akd#h%Y#w;kGF zvWWozx}>AtWChkeJ*(1?&7$hu6_IjkI=)<4=;%TMjF#IXSG>L)+&#)=Xr)TiAM8m zw?hXnnhvn^;5_&W8EKb;6aU415>(cwilRQ zjxOO79e6kdBfFE{<<4&GX#6qgjz8>T8{?(o@@j3kKR(>no-+*pjfGF#xk@4)2y3hXJ z3Oj4f8V}lvPHkRIVz%yzphIMenQ+HToInn)1sJ$8A z5dFqgOnzwC`hkAY(KuvJlNf;VeOK&8OH&=29im?#N?6>k69ru7m8H0~#pUJ0( zTf-_tAJOHqrj&pI8C4l1&6imIj4WHX(RlVV69DW)9M887T-+18nqYDp{ zx*LgPA*M-lznek2qz?E}2e-m3 z2Q#-@LTCg!3`T(YjFRDUZ|mPFX@9JEfuQ#`!wr;5*9T&U>r5mzGkf>|dpPgyhGhSZ z+0y3%4$Nz^TXa1ae@bDmMG@tRHaRmtm39kHE+V~-F>62h>ztUIeQRB$ZwaWg%RR>h zx&An+XEvg0Xj|6;;y!s@`!9)R$!#$DFsr=>00H87&_ux)YaA5ggp7>UBGWn55-EC z3O1u(F&QcGy0Y9zPwCz7C(OF}9vplj?HeFPm1qm!B?4l8Cx5f7H*P=iUq@OD%Q>Cz2~A9CRXbm35Acl6kTf@4;awDwppsMlOXtefMQh*w=5*IGjuk0H`{ zs{djej1D{(PMH0TLH&`ubQ=i>xobv4Dp1n%;kMhE2mx?yW!Fp+6<y-9!VRRL_ zLpzTEFW*M22FtMVb~9{qyd3cw2QX#I(?^eH)5`xT(t5o)^yp~?AjxU^K>s?x-)fsr zCDZ{&(tmMB+%qjLTQE_|jgwwLeL(qx1P$#5qy2nAWXFh|z|Wtj?&s1+V7$x-E#AfYf(u4dmLYkNKEjPGwA^$}~C zDXSuJBz%M!PD}=XE<`w)^vmJ0c9kAu0jNFzxRAM1cPnVCg9qd__q-~F9AZhXnm`BSt|Z}mO2&2mx1+0JRsj#p{U;E}Htfe`g9=N^7 z4>}>IDmXioL&W?Vup3UD`XQFc1OTTsj)4y^(R-8prW2&R(G|%XIBjdH9Sbs}e7rey z-Pg^PoSLye*wbcz+#gQiF7(HVR6JGnqbM1=!8w zT$yTtO-UT!>S;pBYvkhwYDMjL?&y*4Vb_9*JV$b*3Oo@1)(veI&<{I}U3j zJ5jhOp8`QdJAEoaD+)HIZqtWF?%b*!=074hB@O*Jew0d$sAQAy{_L*T1MiNRWLrdczo zyBq30-n#$pL2(9)?O_wcee!-(4-OEd5}sO8?!jmiTs}1Q>k&BZ3gQYGEsaVg2I7Pl zJ08fDL;fl!09e+}mb>488SDLiR+80)2b?6Y&yOykT!n+3y4bYAmfm-V9L#v?I{Av! zdj_~Sb4NLm3wQjU@Ra|o8nS+$x&l&Eigtn3r{B8&ew@k1DE-!-m(BcH@%c{Qa0abS zjh_(!fcOwxuiLGCl;?Sgc2{>r<4!|Nfa~Rt6mn{S{8hA3f3MU&cfySvq7ky`A_Iah zWb8W-*L&Oob`wF#K+s%ttILbJHszTH_W~W{HmKLUZjbk~`eXTR{NHVuy&4bhh`1Iu|g{5~0<->cnI zPD3^-Cvk`4y^PaVn*3?x0$#%ZHie3_J@ zeZMGAC)VM+GB*GOsNd+xz%zat{t5{$96&-6Gg@Rj1Xr`FC3}R)>(*562GJp+4FZq6 zEZWk3EA4*h%02hZZ&i_UrIa6{5TJE`)UC(#Y2D_xSI#F?sLatY_)l9ib@N>yGG#2S zz@3HQTN?3NElG@l{fI)gktz_UX$lc=mbzOc7i}v0k_Na?a4YzF*f=-z(b)L8+{-<6 zAnr5UYetBN)M#&N9H+qD&N0&%Z2AP_Qt(`+&Qz3ioWVdN>OH)Ak#K0sz&nr*CD(g;s$ir#)G! zp%Q}a?9E4yn(zR|y)OI$3niEfp4QXZVtJxYHf>;+OKmN1?AGuzrfeE69N=p>)WF~8 zc==A&W1Grf>ji3(zA-xBDjBetlY$jp_KkK}{{5sA$?QjzZB5Mwet+DP`za$KOm!pAjB4o;ti7jJMmJmdN90S@5haG|vX#~<9BYb7D40OoD!2E@WF zP@Y_~eE>7R&9akQi~B~2hkcso-SR=;Kzt3WEdu&O~9#}CH(yFl-gyr)#d z1s_CyR99K;e)|Bz0Zu3qN`QT`z}PGh4qWK!S0yT;&x9$nCEp#?-NsFzB3cf|muD>O zV*OvtKjLJNH>d!og*n|ya)HV51+7p~^mEJufTUFO<|bch;J2nE{Y}!|`y;KmLGODX zfz$NowUr0BU%h_4bO&h5lu6J^Dw0f~lqAl&MI~3>vw8!XTCc$evD4A{FYDxpR@mzI zY#Up4ql`y#zaC$IwaIWJ=fVMYzrg=|R7>6)&fytg1qzn-%aVt7SZ05c0bYu36Eu7* zVNBs#uU_4aq2o(ns`qm&$$s){?Wb5LH_ICvW7QDpxM(@8hlR zh(Ra?ccd1fj?j~$_>K>Yk-v^o2WWx$BsV{!bE%`vQR^Q6WA)3kBQHWA=-9VhcI?JfiWgsKRPq;yuH3wMB~p<>HpRRl+Pro&8w`d`(zGTr9qp!LC?P?U);PR|jS zfbo$dLh3JLe+R87_#F4lwzmnf@b?r@w-#H71qx;U`fz)7=kb)zFB~9uQ7x%!@gHP<$gsu;*?88ym@Wm4^brh2zC%vqBBTJz-pc>)S`^i-;=G zY&qgJ1y0{v#p`!4%Rj$jx-fZgWQw2Jy=odRoCq)92#3Fwhirvu)^QYW)`cnY16DaP zQ_bksh{6nXzUwzQFFM2=B3F(Z6xwxuasQ<0%a|jJfqc5i!lDSkoD6SE%E;&;>l(hP z)!hTyuDdjI0~^kXAxD}QZNP5udckOs)@vwZMpZR|0yuIshY@r4#p=&=)x}ZnP4f|U z1Zs$UKY&Q)?FK(@zY8=++kw1)w*A9xnP35Yfo=cS(KbV$QaXI2STwwD0h(A_Kcm-$ zmaz`}E+?c=07#HF&?TozVdUvz8}qP7F5dy#u6g;2hcAb(WmwZc?gs!7p-{aDCb>%N z&UhG8{np*4H%~Qx#`}hn!7q9B5`R5b=s3r--HGlGHF>e9;Pa&YMy_-V^fS^72i@BJ z+~OWFWqoLWC%D0)$Wm7cI`e+ihn%!qCtusDjYdlQQCS&5fZ(cetpBnQsjz-i3^Xf|O^Ou~D9q#T$Tyvh#EVU??VcxtM?G?A{8SYSy<+(re_MZV>Vk>l-04crHS zn26)c)lqOz4i8btHXK8uxkJ@D{}cdvnK;=Z?!Aul>I@}Xd)-GrlGFWV3tDRIUd42z*j9#8_uvN#m)B6qGk(Zvo_cdvyh~{V^ZaRQ=`h=vMmovah0fV>ARM4TYQ*e@ zi&TAlAY3>>UXq9xJN$Nkf_#p)2I396*t8Qnq8E!h4%-lXF*kfmu3!Xd{g-c5qD?uX z_Pe)rE;q@4$lCiFTfOsNqbpULL4}pJN&`TFle=`5&A$8ZXvJ5~WOd7)Hij8t?Y4Q9z+mO-8=vw5Q3BW&OYq zSAjEHJRm$rn|+W=WmS^w!@jyhuhNBX;{jA(&65(yVVq4=9q;pP_HoN@a91@Z07eq| zOxb=|4W=;x;h)yyoc&73@$Rr!NkjcB83UX)a$Ab;`h17>xoGB7s)E8dV&HZE= zMs>s=T3BhGt3^jX$Yzo<`Z{J@PTibyk0-LpAW>}@0JH?)^g?YK*)E~OU+wk&Cg53l z$?!P5S#qk^@wFp$*d+Ul>>Uu0@Y$W$y%m(LlPGmzkvwR^l!>K93s=FL z#_Us9=OflA>*h%l*y=Nr{_O+h9Ltgo@+xggM5@J`x-tJmH}uH34+*QHW)mWBy2}>^ zbH+}$M2Ab>YBaEW63GKVZ`fdQZ(_O_qubsCKvKZ8=-pe22S5Oi&9c)gmGR}p()Ti9 z>zwH;X|kUB^UoZ>vFh%oaq$Tjc}feU32di^@xOO6s;}x|nKovsKhx5XW;1oODaNTp z9&P*jQxNm-E<0p(N)ZFVd|;{tX}Ui-L7Y>l$sdkHhn|r(fbqWb!X2i~#C#vQ+xO}D zgO~u|hXJ3skfsDVki`ml7Xj6c6Rq+f2fw$=390#zy&KIQZ6`p)WT}3WV}E2;3^*(K zn`7V5@mYwBEs4`NVIGKjbOPRK__N3Qnro8IvMVwqHvD2jfMgA~QiW$I3GExp%u(n~ zJkUazVft||78kAMZbN2)ARl!Njg36o^0hla)?lk~rmFl4g$&}g3~762OgNll<&i`E zZtHS!ymgL+@+y$fg<)Gh(R-`fsZiLOOvIF!tWfG`n3cQc^bOuGA3k6ZHkDlEz2ld4 z&&K&1oYj-eurdBt@62e)q6FnkMX&KN|4w~)0sW>z2#d^GxiW*(ylZ~z1>9~S?Xy@ZFC6?n^>TfQ z-|^}I^x?P7Xp!tehIay!YP<ivbEyp{4DW zAPvm-zC5GI;GWGwaJ{C;^QdIWs-{M)ScCa545)V{xGKLObTTPB(-qWyR(<}vbH&^j zjl8IlBI5#Ld*k0x8gXQr;Nd0;C(II1k*4b;-s+CI3|^naC1%`!WZL-)Uoa3vKCc$% zmI)5*BQs(IGwZH=z1YwI6(dS1NJ5uk(oEy$I=W)Q@RY{XJyGt5_~pA_8>l~$v*OpxIygW= zVKqxN4Ras<+BHK$vDWUTww#JW>{tW&5h5!&nm(1ISfF_u zka>6qk4@zKE>!Y%)tKoFg|4i;6|1~N1WP^pKShIx!rBCx3_SFFs;|=Bfi(pm*L&=F z$k7ieky!QLR*aukN1x{vjCH>mF~SE568dahZ!IccNM2!-D1?K5y?XU(W5xXW`mf?Z zx(27ObzX#+YkDdU9C8jJPyRZ|hxJQxVd8v%q*0>>)t|)cfYeYZwe;}L^>h1~ROGQF z^HNXr%Vz5!c2c@B8bPZzvY+2>^4WoiDxPNwBDeNZ+WQK0mU8w%#BFB#Z^&LWsiQg+ zl;#vd<2zpGc=(%Twf4Pb1#f@Bur@3vMhY?`nM%W1ta!7$a*tBcOV#6`ygOgQiZt-f zH^2&c4c0Q2=`tf_x4HhbCG3RX_W$)EwpUnoclUe9KT!)Mix|!A)Be+%;gfpz9?7mc zup11Q_b)*wc;qGf zssimaUg@-|PdSPyW?UeHqcj(_lR7Wmeu;oiQtSxFZaUuemYG?ptm$2^CB1eoN!CBK zUUBf>#RHl=mmJHo$vVSa@OV#MmUP@O?m|v@K)_=;3u3wirEK|_wqtPui3bmdD#*-o zUR(y@J^wkMW$f{NBd{fmDXuquaq-W2a&&qK?2ECYQix9IRH!}f=%SM`TQ614!mxzk z!_bF8mN~Fi7F|6^B5X(mG-7*KBi$zOmjd%0H^s65ub+XvT0k6fTt2*PMuGp3FN++_ zr*EDmEu|kLx8-9#@^bh^YT$GR5_Owb#=~9-sr` z0F$?6hRn0czI37qg8TaJ_q#xGKZW*46VaYTz9ad1hz{f=%e;F_EXww(sy z82SFj?L`R1$}*8OhjtLR48ilk!Mn>(1Lnp{p3QwqRL|zl(<`}#WsPxjo^*QWHVfm% z{!D)NBjs;lQd0&Vun<2OmHP1E z%Z)O5%8)=!85tRAb#_Ve$KDeaqgMby|aW_`3pwH{0s88l#9% zEAjVPIunyLH%)bpgPr&Xe#)84^^CwPess07bejO;poNsj>LuyxWO%Ob=NMjrA__S}~%*FN#y`>K zlR*?I(;?UHyk|kPU6^JEVeyPs*rJP!o(n~{)TL`i6N9CJv4Hao#Qja)go*wwNI|51j7#@n}#xNw5rqXWFh|KLB~jWvu%RU zq`uP~LKerruebFKqUc(?|qZ=$rZ*3t#Q(NY7j&z; zrnvpSlkA)J$<{yy=;4!u;<}3kLA`?>{U$u%{bNobVuM=iP}<~i-AH0WLU2?W5c!N# z{8b?Q$irt%VrQSc`DpX0WiW2r^DHKgK&(Wr`OhTc?E>KqA-SoZrS|T{;qp(R&=5wa5PkpQ}&)@s2t0lPz<=Bhw7Pr*o-DH{n(nj7Hh8cxzFL}%)_Oo;^RXT zLlXh{1Qe0EZ^|~GnfDnlJoPEkDrPY}?BfLCtjoH6qv8H0A;0%<&GX3k5(ufgE{{43 z4{vGfZ^9VxpCIL7+gm}R51;9Z&=G1ML(-;=CZ7po80+scw(jY~EPe5L*pedO{w_|t z%qPZU3)TI4G%;Na$kxSqz`Qwnz0yKp)!WzS9g%T{-RR{2n!|}TNBMY#)%$#R0wqsR zr>)k?3~TmBN1HUovcA-;|7Od+iDSy#%%|^Teve2t6M`gze`da;B)*Yx!cZ6HW@}Wt zq`RrxN|y#W2u_}@V_N|3>>||O9?#dn1%9rq?7+Xrouz#56PS@JkBq0Pn+Xs~Cf8VY!2T72ZgxGEi zJX`0r-)UYsj}Wxwow2^@Im1(Eb)JohYkZ9(4=^&l&F6?BP#Z6<*ahTexH#Uvl6dgYB`1TdGwdU04{nf8 zm%>=%c1yDO*$IVF7L{7y{!rA>8U1~3uRm>n9!#>6S4Wl@9*fJ%z*=VC?3DS(G99^X zdWrvtuaM4Gl$v@J-V)tYx$z;;bfnl>-J6&o4!BaNxNDv}T;j;ll5*IH@_9U0+{>oT z^K0Lx*<$!LJU*XPK+82Wf+Bo5bUh9L;$9Rr6PQH4^E^A;c+?=A6BUU3`nvDSh9Mu3 zq{re*(J@z-$t zZ{mX{?5vj5@|$l}H$+l*Q5S3Vxp_Cd^u@sAwox8=WY(>$|BI@#4r?;(-~LUBq|%5Z zWFr+21t|%o8%BeGBA^WEln#~d2C0$TNReiQfD$6Lfi%(#C8Ya3hR^f-j`x55xHfiQ z*Y`Tl&w1XOXv0v#dP^mHsKh(*UG0!sudlY9_ZeLv=tdG;Ok}m&E`mW+{*H{}$m>0v zJl-@>Js7^@$lFz~YPj)D&Q#Y`Nr(zG6laF>^&iOETWVWzCI&vSJhHx7k8vxjFtUka z6e81PE#nuC6usGg;}u}QD&hJr;P901v;S#*ivm0A4{6d-;?PG;mb0Q57d1uF8*Fff z%Ce<39(dXJwA*b9D$;Phm!ricZjiV#N>4J_q)FB4b1uQrAl}l^=e(o2Pzil z!ny&o)_l9b)?6?UZ?LEoQ|en^0Ya=EHCcS4)4L{Q@+ld-k100`!|OjZKD5_)v5B(E_Nygo4d&6ofwS>Mk%ly~v`Cw8I6dM-!o1m{FJaR5@ivG5sldt#X?%9NRdv>v0;5js zzU1r=^XAvfD3k;=u7TH=FYzYOXV&za!6zW!3Hh=6eLA14%h zOXo@OxqfKJbDeeFGPv7fIE}n`Vw6f%CVf7U6@z3sX*6Dpb6IMuNRo!8CD>K0s`%V+ zkOCM9!{~XB_8?8+PScTOGv21 z$kI0(48%{ACUmCwTYf@q7)($Iy~}-S%7YP@IZOQf7N2`*TTL$jm3a%>l3SU-0@-^)Pkz^PccD-X)jm7mcVMV`x3Cw zmF6~@-ZB5iQO(JcZ&((~Dt-Ad4Lep6@VZ4*g{RM<2S3pW3;RC;g6`FURz7h0r99XC ztG|HYanx3=qJ95K0SE0ae2%Te5UXKaj%!@COSm7Y*XX&4>K6HDf4LdOqzl91^`%B z%U9Es@szlBk|rJx^Az9Tm~Ny~hS7SsU%1W@l{S;l(}j{!>3HtJ3Y#oa5RXZ+@4JUL z=}{84YajfcQ4h>LXI92-4E+K*5|kEoHvUOrLpR-zoRDV}2;dXB8-YAI+@Rycf79jCUCxdc*83rvW5LSaQFwovS)lo&ma(hIG2FGT6H@$^zH7Sc$w zx;A(x0T84?o$4Y_6Oh3vK0zl|D)W9~GlbA*p|?bw5SWOdkf^QsBo5U!!1)*)R0hfp z2#Cg9F$3x!Uc4(_G~AKh`6;J0x^;;f@t}wsZOOFbj=NS?KUY3Hp{>myZ7PGkPQ1CG z;vzy0VK<++&? z6^<)%%ZqQ{m=0>dJ&RhK*_F^~4<9UNSM`;MPoB9E^yu=V9FPAgiE_mL2%JQ}-jOvH z<2E{wwB8w~b+$tS{3RnMOg{YL*4N78Fu5lh(>7+_SaQ6(qLcJBMjSdA{_)vlqdk-I z{QI)9d!{Fenfr?;H$Y17Ga)-?r5iSBLwNoS>>a9kCjsHbETy$=&Q{=8ZT}h!KHbq0!)`S{o03X03;p z_y~+$T{r-2`P)SSpN&74&V_=Q7bGbnju@5oj5rHl{}|K~a{K%AaX!l_lI0;c4~7i- z2u{6m=Ovx8@ck~{u@Dx}6Uwvf=d91%D(%u+5sX5K>YTlWp;_AdgY@rv-IJ6?`R1Y~ zQ2+;`V0hpI7>(wdj!&i>EpZpGm#)Wvi(x)TTbJ|K0c#$?>7`gbv0m=tuISU zcqvse(n7lFz2Gci5Zi^!X|DU;nru!34(uZ zMRrm0!|4j6JqzzG815Aq1zKU$AL7iv5p=a*@>PvMg(I{ZPnj=f428<_u1joYk1NToKn(0&~IjSZtZ0$rGz1N z(`&;Dbtz8KfIm1B14ueDvXr^e*mY+?rRtDNY`Go}hDOZ*pA&F6@p-7c`8}(0CHeGQ zbl-j z5PivXmlP8T8b$#eHQd++0y3V?HSFil_>*D+giws8H#_>GjW!{W3n*~?;HEAOuNa4S ztBboj4KJiU-EuNF>YQd1{SUKGEyn~*w$ZNU$9rv0|;^!EFYj!?8$td@*b&|8o}QCRtWu_1~}>% zx-&5i)w}0`<~OU_?$(L1Gl+<4xOFQXN+icr*?J)9-?(!(7Bh-8pl~EO(z^`sf6AJt zpHlCwT1qMZxTWoasAz6b;Z+ayYTc>|+mnLyx{}9(x(x3dWt`%N4{ofc?l0barc;bd zw@cPuEZ$T2WH;tXO+SvRknvDLAuTdx_U+n)xH8Lo!ySNaA>qXke(F>j)|kPq!iGef zJ>*b+XeQa1gtqMMdiGu*-rHgFb1_~4Qjy*%-SBuUOzYWw7bOmjYY3O}9+Ha%vfX({!#_I_|`Llf%Wni9ku@clTAlh9}VPr$W*rKw$ynJF((l2kzOgns_R7rTGf>(=}VEPP$O%~s#8ts|zcYS3X z4U-!w_1Yi}uqL;xTQ-mh)4xrTO!FV-00Wjp3VaHX`kHklAnCQ~212a&xfC>TrTsw+ zCaD^%1u^F@`kHd=3pzecPFAae#$jx%GcBDVXdW*b2E-J>VIVXnQa4K{;Y~&EkKl#> zaTSFhu&W<9J$npuwBW<2kjQLxGrwSP`EXy^$?i zSi64}0OX*xdJ%%qH!Hb9kqvjqGL$OG`7PE|yXdvANJ)(=`AC}+=fmo>__dPufutd$ zCW~2RT+WOHA;4NH8Ch$mrzsc|{6K-UWZDJh6{4;{7WT5sX=F9WtS7+-3WXN_fi#MW z)(s}S9Csk(LnJkl>FNkA?{7}Im0zB6*FLoOReYf40beQIEHFMD4GU(>++pz{35+`^k=O8Pal^ zBq*1zz}TS7oL7>*s0d+{Nrd6*6AO>kLQZ~Ow?A21)Rs_-PD?Al?op?gvId#R>)-?R zE~-3d@@F#smf-v0MRbO1MZ~PIE>x&PverK179}3OCE-#SWOU9GPk64G;J_Od#-06@ zifTG)7zNA|$unfJ8OPfaqxzR%YAy?Ga<;a`uCnQKmX}Yy6nhf}9rgD~W?bWa_Hq=Z z#lC>n#`1}h?3iG$kQzBsxLYJ_WOTH&`b#grP8^Q)V+(JM^V-mzzJ9YW2|fxuy&a*~ zoFQrDcG@l*3I>199ODzLh(p_c-9)MksG5bI+R|m5iYMlzs~LppmT5lZhsER8{wsO@ z4=_xG#cPS=v5`iK8!LU5Pt35IIVd4d=Be=Z+AtJoD2h!%8M;vbXU{P`zx1U$Pjm}Q z6~^|FZ+?spx~gj~R7k&Xfl_#fGRso69m7!VaGoFl! z6&QExBdyd7Sf>luMLHy7EV3K3Zvy~r^QSwyNUIwDBmX@ZyoBBn`ICfAcz;Cd@@*Oz zh&NYK62;9`-cW|AS({h(DXiyOfxFLRoM1!n#;*g_t^z9HUW19!5RLJ^J{2 z!k&8u)F684w@Db0rbwk$a`{hQJ}LM?u3$C^&^{M{O}|ZkynRzF@w>t7WN5}?(|RcC z0vC8u^XQicH33J!wHqudwJ_|GinIl0U((_}vwi^m#tR0#zn~1JB7>3AY@olvo{u%M1Uf**rG8=6#Zq)^8TV8=J;Bm8uyr^8lxg z*cApndY^q!#m7nwo017Bc6^+2JM(7kD}&oyHlzhc1noCY#>&&{EJU5?UBMC4u}}9G zUP5bW%I+GWzX|~H*$qHa(!*%5=v&=!)B|B`cKTl}118UP`ldAszz1)sCHrdk_w_9> z2DN;(lt?whFR;55Dio1O19yLigqdwQz;_FyTQ$wQ%E`6HO@CL+FS@;^wYSsfPT90FQ`C*a#`ylYh8UWW6fQQbVLZhzI~8X0Xw>Bj4_lIzpnR zbW7QyEf{d)daooS@ZnU_%kyyjfBdk&`Ga6rXW*XIze% zZ8;Zy@YxUO5C9}Z9WlI^d{rBvmiTW1PSX2(j~x-J?m5XW^!871{E}~eFZHk{c#CSh z{DKd0F$ELV(v_hfKFYHGv8>`_1v3y%G$2h9MX36CfZ;5BAYR7I-zx%;?OF4AuP&RMPYFtuS^ULwQobitak`>+k8HSj>_QUXc+9 z;L}esHCTXGHXKm^J~s=D4Mqy9Lp)66_!=7v8jFhKWG>!4@<(TYogAi*3|?O%X|s70 zdDJG-=?k+Fk83pUjjvM`9KZh~$ks_Ct|QgKpPVuu1gma)3k1K)JH@*XS_Hv4lQ06}F!%bEY!Gjs%eF*qY`M(KQAC^0d@@i#@(@ z##)taq{eJyD@tMtFEsY!;+C78w)(3Wli_lU;CPn$;fpqHPW)0vznTzz@s*t z0evK;XHiVc@4orn;=R4_2b%Qnn$CFv|2Mv&kA1@*vHy~Lfh{wd9f*vxVjT@C&G&mq z0_nn=MEHnMJZ9(w7Hh#UyHi)#NA@h{>Av$=s1Ld3jeCB3J0;VEzy#Ip2jONgT0Nqz z%M0Jw#Fw*Yt0`(K`rLvSR`hp+*t*^Tw_A@wz@nv(6=ja5=6~PiNcN==hgdVG#{hcklz4zh5s8plG8CR4!>~v$Wtiy^r}mRnh4=4C*J{Vnl>{3ME;~lgh_3|>3g3mf=85n4XnM}b0zoP{j%GWJ1#mC&q$8Q% zp7hAD0;Bh3N!Z4!-RdtMZvg!yDXl*UbJ@9V#nRSP%9ZbLABmV(BfAuzL->HbJkxwK;Y}qV$p1Dg@7{5bo(r7TCFv^*>iZ(W6PzG z&4tDr)AI{N5Y#6#w_OAs%^9zV`EiFMEjk*8!TV;I&kHFA?rTGLViVP);R9x6p6Ijx zTsaB_xs$Yh2fg-{{>r@rV@7zn(0v)=?ohi@3r~vUJASh==v5-|oN@;&MX{hxH2j3m z@6M(7+tcv6*E$cGfiqO)e!yAY7d;}1sItQaYiDWEs&55GBq^{e_yvEE>{Vt11Cckc z?91`-VXMa^;~6qtW&p#DtBTYDBTFlX4xM#6=bsRzR8qA(4}P3I|1K@{9#u+{E*9@B zhPh3-LE;wV2>xjKrxf(Op{x8be0aklu5R%<|1eJnOgOaT)^u_XbGM`~4{2nUJBt{- zuu1i|MTNA4F<@TS%JZFB+2Nw%E4m^d>1QMI&2hB;2VhbQ*DOd(l?6=KD!?7_pd8LT z5Ojh9{@PG9W;v{!F_l!@B))WMqUF z?WZ8-W=S#CHQ zN#cr1Q^MmPqEPSPFM?-6!%ak>qjc{db(e{ynb*vjW{-l`{>F(1#s60^GKelajFM(D z35+8jo1$#_K^1qjzwej0-zd={GmOBc>L2Icnu@rn${@PI1>3`2&b+-!t5tVC}kn)5#O(62zrdQ(Q9o&@E?PMf!i~ z|N0Z-xk1O8))K^TuO!E!!}0#{UmET{77foUMrxfZ8#h1bgvm~PG<%#KK=T^}o3co% zPL<*!*L=|5uO7oVD#n7_10w0r|6fsp_iZ@pwo6_W*BlKM^!eB3Q`5DFA+?u03jK#} zz#WyUJ|eQQqw5wwsNxNIHoQhpLP6eKUznWC62@vaFWZ`Flb)M5o^c^{!Aamt)7`IG z?%&Ku#R-91qK=sGm4S1nqQcTCb@_f8FGQBM+XiM(=y zpaqn}|N13Sdun68Ww}a{%6OQ+giG3icsF0L$5;~sI@pgh)7v`m;%lDGGsv4@1N}Qb z6+}TTU5ZPNGfl3A+_yG-3=Sr7qMu)uG_gXvx_|wPoAOU0hJ1}}i&NEeH$Y5fd~kyu^BrI2}z8sGn&@= zb=yw5eyW_`pqP}An*BiYQV#foDKkmJqe_L`y5k$?`|Qq;dWOm}%9te`gPLMZd8Q}= zIdf!77}oIhqg&gR(=M*D{LxIpe=67|JIIcYr=C89m#RfuF)V|ulXGQq%{FiScY>{2 zGixaLtRHQ)KTtS#Be0*U+kCD8o{E^mJ4lgJW>5EiYEc6Khuz~#i}}%E)YBLioO{LD zlY|6HfWHZD$-b;y*=I4n;cZ16hAS}sb`?*}gFk&Q6#;nT6HD%f&2=DzYO?ar%kx7} zuhYNl7JRfQdcTAMYBWq!Frxoju%ef_Sojw{OOSuCr&)FIoSCknpFf!1CF6>m<0Hul1(Xix# zqvY~{(hY-&5u3YfDlWpxI2t`x&z5<=SU^q`sX;>-|K>{V@etVSUBkY76c)?Oa>eh>j*{iuKO(5iEpcT{ELZOXF&{nBf9i?3gcA8jW%Pst@57V<#H@+8u| zeXA}G9sPG<0)UiS*hC0EiU1b%Z~a9vxz=gD+;(v;Qjfv31?KATXiWT8G1uUtpQ0qo zx0kSe?#c@c(3PQ44taTvAHnN*MdA25DLGxO#_8Cyoa=zUds%g6P1ftHh-N(foY_|A z?xFKMNxj~YlIh?dPjeM*?ZwnK28KJ0T}EgNGMv+NW1;`8}phRr!YqXL&5@&_YwGdUhpAw~S7kOAY%xp!2~-t(ba}WIF&nINk7cDuH>O(lFUc zQ^`m!R(z&Me*~=Ylq_tdfkqkj*UY?fF=El;7zc~RxGy*8P7?wtc_PGeZ&<`&3TPkq zMHS6v3i7pq`q^JSfh*GW@n$euE`^birHyR?+OlQ+-z*M!hS5w=1)1Lv-(agf{pirndRL^3z zpPtg^Cy~?-!wMgPWQbu3bN3|L%qVtA7e+r4i}~6An)$=xucg4>1y%lu~rL{?;{_qjjQN_kLRITzh0~r`7@rYNgJ>p#!u#B z7#_W?hNbcUN`%b^(y`h|Ie@|2u4O`XnQRbpTHFMS?-+y@oHcmWe>e0>WzNF9a=Yo#~Xho%r8#|6;4`cU_7(E$P6p(E7{bmiWwQ8 zr?+-4e+^gs$=Lf@aKmNE>7`p`e);i~IAM@AK3CjSrOp$J*^3L5QFY6W8GN7iTI9{o zAXlZXwmOHXl~+2a2d`WT*@O+|t7u-9R&4`9!OjXJuyu6`38?yIaA(=7<&3UelgVdi zHf*J39QcxUOZA+TdYRYdUrE$1u`-UPjiAekAY3EbBHQ`A7KB(wAIj#u^ zCm{@HR_p3Qyt<)ts4foLGLGR?&}si_`xC z*pRrS{wZh)xJJVD`K0AI4Vls?<&U#bCO*?x>u&mvZxov~7MfQ+_=Xw$({&~hgZt|u za2PEb+P$;(e3u5#z5+l{;Z2V!v|2?|4pMBy$Mev4k99@)J*?`HWAup+@PJwL!9~Gc z8!*m?3*5*r7=5rl69o=8#JfDJH-R%v%#6{UMt*t*1{VsBoi4BI*d&yc=cd}EN)Nt! zi2}~078Ooh`-ZyE?+Gd4ZHdU>7aHl9Gadif&mqJcJ3e?k(v|^w;QG^5A#V6Rd<;?g zmOqpNMq_T6Mbs_b6k7T$lvoA`DpLz#DENk6@H9T&PeS!RA5ni)Xg}>v@gT_L~LH&v%V$jQ*cf10R?`O zp6Vq407$oGoq>Dt-;gOpFgWIEc^{@dqIg9At!Dgl5|yUu>EYzW#4ib%3g(q(5UlUl zp75W`OILC4T$It^Wvx-1gda1R;kHs`&P>WB+I@Tej_FRHT5OA`_Ykn$M#M9TH+R%x zdRCe-9_~M#RfzR>PGb0!s&k+^q4EwK9i|ib2u7!0G=yr87-Gb#T%s2LOuD#GAx5_hKdEjPG+H z6nrt2S01RojmOiL{%W2)oOT`LD6rVK#5Bj^7s{e#hhXkD{gJS@xsM}!lgQ<}w?=G# ziRjH)9U@X3yBk=?4K5%6tRcnMew=@4wws&@_^fEET^y%jAo#mf#2ggF9xe>*Ym#5m>RqMcEjyq2+=txH@NC`?VXI5nsMO0E)s<(lh4q`j@JT3$x6H^KPOa)E zlslAuJMwf@5blplMiBwq*$A@;nd5{|Vs#9r{XvWc!@=g%H-SKuWgA;jQIQKVVA0nn znQ=8bS6E~BVUv6AILwY;EQg^Lq$-`C1~^kKYC1*w-5_m@xjL2hugI$ow%C^UwA4Fb zN&Cn|Fh0mKS1hoyCa!DIDctiqz@<6rn{z1%#Q4uYfpQw1ayzn_FQUMBZYXcmJY&B& zVi<)_c1mgt{QU6*-W~sYZ*(5VK=^yR zwIhsx%uwq88v^sgiQdOJ%3(ONiQ)#Pzf!#)n3MnKHO(XZxfJAOb~`ZbG_ivR7uPq6 zK$_D`8UEz^AGe%0C8i01%J3#V$!H5rL-Wc^QF~~;W9cmxCo80ai!MEIrWn1(RGVy& zKXT|CulJ+p*EDoI?RFddimIx|udj>O@Rl-3+U@So4?S)vGr)89@9k~H)OqEYj0w@( z17wDz#kw*vS*`a+Q8YrT5Llkp;~1hiv`OiO{`VU%_xJ%hXm}G!UY2L_7uMs?>oy2G zot<>^DXOYX?(M=#$y|+5KCwM1#F(Jvk@t{Xk)UT-()T6{qrHuSv$c8a;TL@h05*Ks zoB#MpeulN24BmUbD)lp`u zbgAx|?>pRoNNw;|_;3pEuXtlCdK9lBXV%&0)!sta@$uMLvUG%(i=LfImC^{nM_}pY68BMMANZ13O{*(q-Dlt9Bnm1$Cm#+Wq9bjce z+8{oGySwvQj(dmLxj?j9Ept&&$R`QfpNb?1l!Ro0gIe*(K6_|%YrWn5NCvVo{`;XF zVU2v~&L?nXX%I=$Jt`DUj4D+5Rl@Ug85f&{#HV2=XaM;1c99f5d^=oCTH`40|4k2v;}dwq4?-(` zMIhd6yduq2oeDX?N%Z%oDj!z4l6*G_LssEiUtyZu6CW%-2!}+xp)Pz==#SVCk9?o; zu;{G|1$FW}VtWIPKc=>cJ4UgE^_7?@Q^#Ic3r%>As!wHZZFY~3F7J!6dImjqA|Oai z<}{&n{2K$S=i|i#|5?*P?3w|YtkGWv6oJRFO`014>Lk;q7P-O0y?=%lD<^sGox`_x`_&3 zb<2*|cN_QVrZ(gsjR#S7svuG=95}<&o`%#S`wqWXTky4Jm}x~@8E_G-Eq&E%{8b%7 z3xCDHyw6uGX;@u+4+tugd92_*5vCxUyh9k*z$(BZ+=%hIaiX1^z;-cR@;3PdO>sMC76-^MqQ`zX>?i z+WQtWW>ea5swMXP+}S?G#L0tAUfLwST`pV+!?~4$AjT-9Q7GrA$SW5J+Myc;0l@1< zX{GX-)Q=D12_sa6vDGEuQUDO)hE+r+pmKPOW;`1r@sE$-VVdjS{d!uk2|AFDWR#c) z5?e|&iLZBpjz=094(H2l*5P^YIz+hm&MJ!7EU!DROGm;J&B1_5m2d8dg(lX zF21T2GmE_`ujQWpgf{LU(8rqt= zLuJ!Ar=CB9oQxVLM-l5S-Mhi$oTC4*19U%GgnV5&s$h10KHYl9&*Y` zpvbJHDN+eC|j z08lqSZKu_{hX4TiDmLc(+lHN1I-!gpNf>e$9P_|Knm^U4^Djpu{~LoUp7WtQu46EQ z?Sii{EV@?%Z<@D|U*I_@=q-f@I#FAroVVDR7?7X@4dueH$le4=nG@sk*qHcdR(r_k zg42camX?o<0v2Bq>QDAIi*$;=xa>%joy@DeR3h# zm`@{i(|_M*Of}|LN!lsUCF)0cI1&syZb>nAFIhxekN_&_Ooy}{Cqb`go>;^aU;Qw$ zBQjZjMh&CBD6Z1W5Q4R4GRwJ)FnJk?tIAq-Ue#NI14x`||qp8W>v@u^@ zD|8*{M`J(#9DQ-^*1*;qld(8?E{+adqKSp4n3(^sJM3C7ZykmGH6HmPNTv-O zrEUrtPCoq_?qWB>@b1!tPK3{g{m`c_>S^4S6=~@{)Jwv)8d|USKmcU0hep1!DD{Ty zm%a9zvYf|W#qYo;3l5{jl}V2l69viMw5`pSqmpa%9W-;bm-W9Vbg!GncKVMU4mLL+ zi2brWQC=sfV-(9&v4vuRH->GgV2-oNg?1r>Tl4LA*de=Q+^C~S`73A!E-W|%2_g`b#dT9U!b;#wX z8f+H4`ho8F2L8cZ62R;y#xWyCt{MT_?K$n-Hzoc^K%*jUBsku>t6m6bjCg%E6fn~X za~u41-I~MJuXiA&a>ZFSFW$4He5EJjPc5GdRnL9F^vSO+WmdtLcRE;zM(^eJYOY7v zy(zKR@!G|MQnoJh)e}G;6Hrlf4 zwS=bcKB9hIS0%Z4X!Fg;`t(aX_@mgNH8`RQneC= ze6Y4D)UB*g?*8jwJhsFAau2zE{6Q$Ctdl=c-Y9Nx`8t5SDjmG_HDNMQ^Z}salBjnIp;o%nS!eRf$i0=>0gyBQrFpMfk`1FVbx&dp>worjqL)pnD6?*D{5F3C$l z)0TH&Cn`1(j^rL9iC#%{>=&EkXm`Cg9YU^m!pn> zmQ%8#HxF~emJyM0fK!w!$&mqr*S6N7zWcS~<2o;X5yZA6rKU2f%?G!1-80}M6U-vw zyKQHQlZ-`fzT1#17PeK}U0?(qGt!n-XHM3Bhqyh$?}Ns#wwB~xfVJ-+(+a7@AH>oI zxO(9~!ObX#ZUuSSq_)}5OebSpP0hDRd#%%m%R^K)xU8EOyd5lLgI%|Z74V2;V^Pkm zbo1!MtJ=luz{kB$7Z&d6O`cv)2=F^I=&d~jR(bL?_MP4kK`F1OXiC7tUy@hh2{S0I zVji3DUG1xbYKlT=$)(?Hrr85)#mLk~r|PUbqVQ-6IpIDVz2cMqqR_gqNOQiYKK^-3 z*kAuRlgb=_kgC(lqkZLS!y1bTF&;bmjlbs#S#i!B1Ut{7RzUy zgwNP74%KHoPr&}`wav1bLjAP;gL6t#^@05frd{DJy=|8cYmC6hn32K**gv0PZt9cm zKqjXAHqPfbI6b5~<_j1HSPR?ksla@E5(N$4&X+?xRtWZ^nS~)DQgJwZ2y}99-!`^I z6n{Ag{;ojlhpz+dU2Mke=O>hoUiI&4iI(|D%$ei`HoY@+mXVrE4q`j2`LI{{}ffVe549iVji9gYCXdVhR#>sg-eJ(=QIbmT$&U8w^YX5Gc0;p z#WGnQy=kWb^dDUyU8bQ^|C_yI8?Gm3`;#colcrg?>b_P}0#u?^+b#tRP~3AOaXWwI zU)=FOnOMblF2a_a1teep`PmpXYktb6JWER^wH?>wvGGnVtH)LwXXY;M{7gVCZQPIY z->6GP?N3TJ=6wqvaXBer+(-rcL|dU-$#m5U@3xY0;Id_SJHCg$J>}1_2ZFp$t3SSO z=lS<||Iz+5yDPnUwti3`V5di`SvIxJyIBN(E~TNrG4ECE~P4olwqb>g$gvKikM7#Q67)@dT&*z znt1pReRD~#h3jWe-Sbi%=u!CDxAv8|Yl9ZUx@6J|49WzR<78jW*}z0T2&ZvfpXKQBaF`IlP3Eu?=L#S0RE0D(LF{Zl~5- zPAFB97Znw$Y17@qrU1TIqNFFdvIcgtYfu55!>$Zez=nmI!x& zNSe{?S?|tD3Fx@grAfa4aHvqO%BoZuNlPsxVA7XRf9;iJzM{VwR>W?a7Za@esCm>- zFG9CR*V}VEDxmK1&2;Bm<*Lg)M)A*MN@SE;|EZQ29K)Z^85~kHC1Y;0(RpaE{$AlA zn?1^3khlh@6sEOy>MwmetK}L#7L`y*W~NO^NGz#S9lCz%jy5N2XQR}eg9M>04b!s(5NSAj=l!+VsSCN7MkV=MA<@wv z<#TZlK1uf5jfpSA?(WE|gqic|fDc^j537(}?>StasMus=VAr+1=ANvtueT7(ITa}3 zTz+X`_SMFC&#(G0&Qvr8c$KCJoIX@6mo-jyab`ti&wcJS&0Y-CqwgsiyYdkK7{l_X}z zl5exo?Q5s;+*#lLmA~|x3D|?QGR2&RynYCi(Hq4ny!}I`cPW*M2nNSKSe|+?E__7iHg1MXg zCdzFxR}(*es5nS|Cnt*Ff~n&kgg*VGCLZqgQCcPLq>i7i*4ReRk$$ue_UqM;>SkMd z&&C%bZ8bI~vaxfPe`4-cfEk+~umLR!#(}r)M`Q?FB_!cI|u% z>N2df2we}pW80L>^fNOz_cJYZX>~>HRsR368sYoTQs*AA{0+G8PRvZxqwvoZ%B?}f z_95xELt?eY{pCy^50p%N9G3VL_D96Gf9^R$<2}PpbmwbbMMhsrhA#9^7Na%Ls&lt%T%hk z)&A?sOA9Z!)E{Pllr{jrfBlq>`tb^u_ZOOrfy@vHvTm|@IBe!adEH(AA@+p8gHd&T45Idz_F{m?X^R6E)NYh%5f<%E_e zA@LRen<`kK?S3b5xwM4hX11ldTZ&2sG4i}?ct0lMLDDwzM)uqv z5M(H+xm>IU-y^LGg`roePNQF!EUxBv<8FbKW!0{76eJnbJF?Dzx#i#07i|!$q2w zg-lVOe=B4`BsKC$`{`*F{@=Kr5NAbP*oP}Ilcl}wI$tf(Oy?UA)fd6G#}PpR=rEkB zMJPFN@INWJ!7>`ORxfC)<19t{ncvdboX7F_(Y*wS$J_6{8Wn6cyh0LsFmClU!R)mg zNjx8lKN0DeC@G0Lz_jqd(&Tn`+SRoTgDG?YinAhsj2p~*`&PD|$>ph##05di?}9nU+%R9WIf)Ba=Q zUv}+Xbr|sSp9;H+qc3gKtRry+U9SswF?PD`(l>T*sM5(P)3tvq-kPL{icLf(t10iF zO~WE0{=Uh5vx}zmnw~6?c=HjQVqNHPRuh3hv?$!TYhjX-JnVgyDhY$B;^u3y_OCAw zXD`R-YcU>tN%>&m2PV-vshR<`iqnz7FAACY?C8W3S!l~53|qH^Io;TmN9e#D-6|?6 z|BtG-aEr3*-asD-c@ZTAq(!==q(kXW=@LX>knTo7x?57|M!GwtbEqMthG86f=s4H# z{@(AL^ZWtpT6;e`*4pb{_g!DCI@`#JMXfY@$-#?E+aLpOpy9^EZXIr^_I{hgwraD* z$nflcHWALsF9*9s&B67+LaLgTPHBm$n`*L*3ap=WmvcTR_3A?T9r=ea}80$Ex zp1IM>GRBe%Wzu>5RWg+O#zG+^tXel8puE|lForh=l{b+8#b{9VSmx8DM4n#%KSKfg z8>t@o78nXKl_R#YhR}l%SHdC|rzG zkrn>!Ia;nT^X=Q2lkmHXXIRPo2^i6FTXpRc)84+egN~Pm6~{+68$tcEp8Y|T46$iE zji^^p*ft8M;&XROD(r}F%G!0`w>#(Ma!*xCTOvHg{c$0T8})pbDw!K@6HhvtkvBKA z0=VoZOZlHnd7L$-6j2) zpS!r6^XpN-*!hsGl;HEI5@n@={@*Iy@7K80kmb)i*^gz~q=jE}?|tj$KTi+2e1Tfu zv^jHT!h_4{&b<~JH=N6+Q!$~*;0BbO_M#mdT_k6Cgt#izEKh6j1a>q?{gXGH0j5MKNg1AQ(qg2i-|qb^p^Tc1 zc|nTJ)OakO+IcW~ha|A0&w9>~QKjy#ReyPF4}9YbODJ3CGOx=jrYZ?q!Nfe>F+6a@ zF!_FRS__%(Me)SZ@$pG_6N116W3ze#&6MMGvs^D4p(bkpa1kbMO49mNL!?^^Gq zZ}l&y#-GW8xli4AMw9dB%TZskx$V0?;(Bz*l$G%IBu9>_?W5-(%=SI^NL3uWB|TF! zfbV_nClznA0aNQPVn46&>>aV9oqrq;V~WXGKyrI8xehFqCo(XqDoms#toibSifbPl znzyRiZrxb9S+lWF zxD2}qJWJ~8lCo#YdBa}xvo4Q5*_P$@OC$&_iF}rKY01Gw-5c*3XNJ_&UwmqR*&}Ay z{PPz|fg)knX78t9lxY9%d*Cq7G(hHb?gK6#_>Mle8BrcWCiL9~OADPTWIs<2^Jw$$ z6}<8%ilTmR?i!N|^DqTzcMtDXm^?3YJ@ zc(;10eCtHHJv=5qs^22R{Ne6zzOmBl{(D_l8>fbAN<@E~^?MHI&gFzdgw)jU{oB2; z10j9S3pd=#(76*H(zCB0FLpQ8U?b6{PWc^4NzaGJWH@vtr4kvVZO(dYcLyl^Rpv^6 zzhCAgd+kkZ&H$2*&~R_jOKJ=@jC+cr#8Rt;N+!w2+da3nS;x04Ye>r@dXHR6`0&E+ zz#jDwU-Ghhk9&qWXF$cYNg#*fN$aI{E=b`*iMerAk~;bWMya0eXLO(|wnO}#>l`Vi z^?nD5G^v#n{x|vGip$q@zV6bH%H=Ik{%uOKqZ00m{;NcCe$Zr+p+8NjNXS(A%hreB z`ikVoS?Tk>FwU&g|HH!*1bW9r8)ThS4etJ}?RVvUdE<9x@uK|+Hv#`EnF@KTAHhMC zJ7WRaii(Otnx=^Z(eG-bhh&wBDDypy4zMBP&rpun@7vh^=9_n+7t>hNn!VK4zjZ~4 z&8$}sx)b^xZ20+CA+zbhn80CeY6o45VGwMWPNA_QnnN_BSmQa>W^xAkLW{(9vG0kj z#dG*XxW<>0ox2R@!I<1rS2)h|z>j^i1*Gn%}J;ig1ee$=BYhI~zDD678#YJ7meDNg5IH?bR9(f~>{FJZ{+T)J) zzw_wTZowpb){0jtZd4y`_!JMVk>7~y@B&y7!(|6$rF*6T=)e$k(PK0QMDmf`ok7`=6?!2i9(?V~BRO)7@ z^QOi;Cw0LXoUJl_P~|gt?SLCiCYFFw>sv#QqclG)O>5D{GXHp++g}W4AmSF@c%YnO z5?&5t(SCGOdAn#eG*o#sdScFJcjm4{!G)qH~}2N z;;%xj;b$;jKT*JXJ(MSxAcu&mTe+O?k9IC)s14kh>8*u|d5f{cw0AXiDpp_JyNmeG zYV-yHw`FB42mP0>a2kI#(#!zrg2KY%c3_n((@(~FPm`+cze-@-mlrBG5EmSwX{q}= zKV~{~t>UluVdOnQkI#w%B#!XXZ->~gw!dXvQWq;nP2Qt`(-`Y9%xf<}QhNXc)KMd zYbX1T_%$VBY1>>iAUbSH`S$9pP#+H>r(|j%@3HD{Yt8oou>>Y%55yqSO2$P|{vvDyPzTA8DpK|}i>ouixx z`vqyfWjSQpxskTUj3)n=1=}7a2OXu{wd~<910CYZvo`HW%(^JjFnT5dL=#mzxl=2r zt-qWI{~?Qm81a>wPA(LAJ5%I@F?DfwO=CTh;;_3+C1P{X;pe*E^_Er0J4sQIn;~@c z2@Vb{FIHk(-u~a_F|zUar8jn0=>w)BU+ChZRjXv)Do2WX?lQ9?r>?zpbaaa8;vx#y z?sZvNSvTY*LO!T_dy~(V>nHBrZjk=ef1_Grnv*Ud5yZn=cGCH^lrUgTD6cA?Cg60? zw)Ed%a}OM`lHM6Tuw&929}s2`$GhK}N>?9Fh)XBCZJt7)06R4h{dB`WKT}vG;6fjI zRgeYyDm9b0-)DNcmhn8(3p&rD8TC=-EB|*LlG)dqaEJQr5bri=5OO-KqdBfPq=(lb zoFLb#l5Qy>IK5U3j^FOgiS1M?TsdZJn5W zul0?qBF6M_1v2k;gW?r<^ON3({Zz4TR^|JX71t@Q3N9&t9CcCd4y>te$eWl)Ov~Wp zQpa^fx6^3{40bk6KeEbj2G$zZ-1BmB^J98a^-(!1@}q+%qe_`H_U3=t1*`uXU0F) zi#3+}iMMeUG7_2aSPO$m>mm2@O`wB?x8&4%IR7Zt4tjWCY1s40#lv&L9~i!suS5&H zQmo)o=@qA23fFhDHWSOuP%C@)b!Pug9<=gZ{2%OTiK)lwhxs`WFhfhHSu2jp$gv|x_`Ux94g5gOU7*U88Z zEstiQs`47&vULso_aK>RJ;-b5t83 zj|)HE9;kXpMI>p@rrR#tit|KJGbc@hK|r^Ie5iF=S4-o^Uf#vuDq}JtrYueMprHJ> zU-=gw&qHji4gO_B|icWh!wAEv{}68SQ$(?dQIEwTjL_dY@~ne?HPT(@1RR@>}F?Cyjp}0YI;HKGLd*U>Dm-;$mSb zK)uOf@DOD=J(OF#A8-vo*Fm=bCu+OZwr_NRM_+OC1Af#G^)Nv)#Qx%`rpf9ECG73Z z1GJbNut)U?7F*|tYRk7`_H*i!)r@_#UslO$q*L=Ru!=&Ul8956#|+M z9todr#j);K>GJX;ypDS(oY0p z3+d>zr!v!7VG8PvzvupeUwVPohf#f5im42 z9#pvu4UizzLRY&!x&29C0#sX1t|zG@4xgeBxxvubEy`-DRTIf=34^p?+8d$l(LH56eiAOW;MX6XgcjW!% zczIA-$dtb=eCoHgWt}{!N4r!YicjeEET=?nrJkgZ2qk2{P^r^A(kMrO@R1cGUk3Y_ zb-16MtP@{x$9^*L4;}CiS?^gD_qO`anhTyDcr{XHT7I zWq*fHIk!k+V+9aSEP}=g-Ke>J|FQh2y(y2&@a5f-jvu$&2SMW;;eGL-C|r+5cKF~= zXq;Jcn8LtQ`>UQ_@>$IGYHR^f#sqA0gLOF%ohWNeU~&bOk^A?482}X$wtM1E{pMs< zre|*^{~(rJgi9hZTDW>^#maTA!r})o>?ZXQV7GY8cMK9-MBCTvaiOG`tYqtYG-_Y&%^gWnSkR9#!W9CmYWm&lDxYkv`@qI_TISI zI^R!UufCiynutG@rqY>%Zy-yRW`8nbQD-3S`sH;1p!l^P#Z(&_E+4o~cq$PgD9ETu znCM{Ftl}(dzy-ecTTfJz$Rjmz-F3qToEQ=Wtm;kA zPj#Kw#__HWgcR458NFKfyFQXJq5@^G0UEwoXOblWI_94^R(hMoP~c?on)++4Bc zR^ht*sQ!Ws-xmxD(o0MNUrn7p6*b96zKTiTE>zc{i!{7D*|kucOr@wGWdi6S4`GsD z?weU9r4(ljfBFQ{7L_AkuX&{so0%CQG~hexWvRXM4m}1ir;{BF*Klr0JBOS=&^prv z0%#jg)f?@p$OV5$$Q@s_T+KkP!Z($z-kcXC6|MHGsL^(_X8fB8XuUUyGGFlxMwf{e z{kH4s_o)#8;+A5!rRl_(SbL(%U9ZW&^C7~Nf?;V}u2&m-FLz45TolmlC{V94VnWdd;s76!;N|oOVnnA4U*1z2pGa9 zW~}0DT5h?4Ll+c21aw+zU#nHD+!#OfpZ+p^tjhNz*kPgp2g2PR_TPf?>UPUPM>c(d2+mxkZ3Aio}{`dOj+6Df?tO~``HzF%;{v2huXhc zY}^-STc`Pz^XbO5{dESQnkY}VzgW=tM{tlgNk>zfp|>@-j>QcIiKp}WTq2%hICZ_| z#@H**t;Op<7|#@Emi*pv?enV>teAX(*ymv>K`AEF$pEC{&_i-*eay1-3yYoAa?`+ zKyyJ?(Y3!wTJE&j#0GxkE)AXE=u&w4`~6^F#qu?=QstA}?Bo|zheu5EaX?>?{B+pI zXiitSOcf6Ic5T{~KGWhNIx}7GPd!n;qc@S#SX!OU$GjAh*|u< zT+1pGJq2E7sRhutu$-ydccj|;mHF&b=9X)l;K#^2wH}?igF#ivN4MkInUkghtSN5uf6Kl#TkWSjV}9V<*+{_M zwX~h}M{rP!i9rqDshAOy5aBpqP2LhK>yy7*#h@NzTb|!(qOhc|Jhvt=8C>Gfl09?gO9vDaChm zu4R3&>eq$=En*-UabnE5^#fQw40GNOhUI0BbiMo#Vupf){q-?`%o=)I};Z<*O94Z4^ub^GTt0&`_x+9{ZK z;#=91*-xZU$F$cMA#n8W>FLmB7!EHVGrv0#s2UBBS5VfK0HJGy?_|}XgBwS!mJB6) zc`II~Y=MH2Mr#Mho;QE>65Q_ZZrd<`%&?EjXD|IgRZkws*3?(ppd`*pc>f*Z7(jS~ zJHki4^4+^YB6O|GRmrE?T*69QZyQKiu=mdV zpCy(JhS9?v?61TSOZ6G4Kp<6o6oCSnaac=cM#t(XL9zXI>Abbamklk6_X#4Z9g!XY zD@rqEno8?Fc#D-j>IDM)(2*2Mi0i%BY@6zym)yVR67;ypkv=p*@{d}*-indo)tcV` z=6SXTI5sF)^6MOvGS4T+8Pfgtz5{vMLDm~KlmHOun!O;yr&a||`A}b_a612nQkn%^ z5Ku9`%h1{>zH%3u1(L_U4Ap3UG??|CcHGPg_|FcHL%Da0&c!TtTCMEU|Oedg%= zJ1Wj_s9pX&AO_2w^!%6r4hC$f-OLh7?~&%$|*NHKty6{dFD_qD~WmEy^}EzBaA z3>KjEq=a6G=99V)?#Y(jWkpj z+3K8c%VU2K>(&|} zSI-12Tx&W&Wg)cPdrS`P)tSmJIC9g59XZxg1XvL*C?sK>%S$vM(5iu$=-F*lv2yK} zu_X*F&|x(}Tbeb1^H&dw`sc=e?4YZgut>OvYL;w3z^N0xE|4bQ5k?=y8S|WU=9sul z5N(BB@4|eS|3~7_2Pq_Tx5IT>l*nM+;WtzO;sgShlaX&1Cdzmfx0jZk&j(1F+TTRb ziJcy-h4S!}I?;zpm0Z>_*-^>8C)!U>sxLp7W$fn=jAEnLyZs27=iz;EI>!t~^>h@I z%!SJizegtr09LPCtlZX)Kav(Iyx}D7j{7g3b9<4~66}2fnRUO{)S;ai3&>_%ai*XW z3|tZiS{O`q+G<$&a;Z+~K`j*~?ICnxMhgW*^;5+}n3B1Fm+CX@n_wPw`(kU_MCduK zxu!G~vQ_(>%s(CkU?!*DjTMGgW+lr6VLjWDr_KP0_E)@kA*%>7FnA|h{i=IUz>;Nx z07YlI3PH;qlM_^*RZ(er1OU_N9nsd^)VO@^PE@%fh^xOc)`Kjya7>J?HsEHVv^Yo1cuyY89Lgx)4!QisVCnZ+tTIW*X0iLNH?TXzh=9 z?>|wQ-ornyCemX?+e1QkR965ntsMTe9g5mu=knEafwYr&s6?`%`9 z5{5axiZ?SoY%|HC?O*dcw>K6_7%UvMYT9P+K^A~YzJE__rV^0%XH35R#iI=-{C_6H z{zwTor{$in?BrNP^t5j&(^3rUJq-kx=H|E5_ZH$~|uP^T8J5v2a*eW!u$!-JeJ< zFYLf2=^7b&W7lea2?;)a!N6Zmo4Ti~*WT^a-pF0qXXKeZ1c0DEau3wvMc&I-hTMKN{Dyp4v(k#QJ5S`VgeP%~ zC+vO7%!R40wj%8I?l(!+dJmQMSx=-FWIAY9o!fH~hyh+^w)>n<9Wbsao-1dl%7kjb zF%m42KGo}L^gLoUL{+?&th1g{q>piU{T zunec4wGD=$<%eO(Ah7AoSdkMd7$BmNL)Fo~#jKw~!P57nJ4=P|lAx7JtQhyd3kpQ` znex2%SNK$dj)AFY7di5kVf2xzDV)Xx>Gn^5)O_RG<&UWMmVF%kqEOdZB2d0#rJ9Zp z1@CWU-iG6e<_+ zmrxF1VCzUc1b|Q1qRcs%X}#Z^X+Shljem@Hr2ydj=l@D$Q*e=E?CFY$if>Q?{_+8w zV0lwjV@BPqeSzU}t|#mAQJ;)&rbqa^A#P|n{U-i`a+B28>3v1X* zp^h`}oI82f67RBV z2k#dis5ANKRz;3g)Pk4l&%|X`gzwkRVM0Y`#Ky z16}JU0`LFK5R2d9Qwc1HG`QN|L=!}oLB`6QwIX95k00#&?7J0Zdbb#Qk9*l~4-f8Y z1UA#Lmj?GIGwO$URDFHr`|ho0e4|2)(9S;eGrSoac6Q60Mqhdfi8c^l++@ob!`UW`hc zo3qmVs9yY!MNn1S-ro4&#aX@gGLc8qY1{#v`|GQy*&^{~=KJ($!Z zmCIqZRqy;R$7h#+6y4h!;~=04bG!smYU_JXN#G7kvaT*!<4(T;LnvOKcW9UH+v zNN^yUboO}A0>|FbcECQ54&D1%DYF61LX%Y}Ciugzi3Q?HcIYV8B1fn5ehX~?!F4&6 z4Hf`A1{VfwzkxYa#@u{!iQT}{S%KcQx;Pj}V`Ut>XkVs&S=wMG6_APyWll^?+@E$Z z-iZ;rqxa~Bb_RaadEt4DXl+~um2tp|$vXV8JLYjVf}tl!t~N=zvBOFas+r4PoWKuf zUFdi%M+MLp2ByyWiit6^2`smY!{r`c?9r?i zm9uHz&i|)M_z{SZL?b2Bk&=qP*P=|v&7=)IjG)8zx@M$9N^a~|Z&~BP%^%FJU)XCE zlpPjGDJ$R6EXQek1$e{uX&HLvwN22OeJ#sEC!TBPoJ*LvN!!+TRiKXmbXRUQ=pykPHv zlL?5yAy@~6L65J;bcN6R*9y_ADi4hN<gQW$RPS*-j$7BDocF8A_K2nW z*(Zm`PYxpfiDXf!@x5#m=}ZNxIg#_q7ehUaWPPze(0_TKEn2MzaNT-%{5@jw=&(TU z7~Y}dl)XM|SaMcsTod=1(%=pDpj-7H%yPx}fwR_oHI&B&D<r;z&^x}w2X-xd;5@sJb&tzRjxa?Z1UX0S!@#goO|LXX_D+~aE-Rlnd zbsowly9bH)1^Va1$+%17%@Q~?UK8!O`R(FKOSp>=zlrvJ$cZ=%SNL>jyw#w$2j165 zUypXWRy|0m;4_9VzK2|1yQQXj)aT{8Jv=V5lD?(l;GMVZ*O;$ngYKzcVc59pcOOv( zksH4$8~2;P%(=_-*@~AdAvQbwb};C$)T*26XCZ`m)Q26wcR5#OqAWM|+F>}vA#L*{sJ~rOIazPxvWHgwKGh}6Mo?F{QPNI(|{`Vh`@#cUv zA^*EeD2xf%BPCJu-y9Q}(ctwxxYlifX8Xj%02>_FJB`*=LaO30j3x9miXM^oRc(9Z z9$==F7AahbQkMX?nOOfQHI6_brZy48uU_23yia=V-YT1SY1qdX-Td<{MLAv}sH05c z;V3h?u$+gt>RGWF!FP}Ba+X7IeZFFXKR8QP|NNZlveT+pqy!!JiNg(1UyeOUU_zZ{ zChqONl!*NM#XSE%5DSXkFCpY79ucIsl`i*o;$p9*zAO3i9j^P_UDjuL=mqzK(Q&!~f_M6v;bJVsfyxqdAWS^g!>cTlN z_cQ;B8#1b^^Jhg30ML7X{W!ljb=*%|&ddN^n6HCRvaY8MGbz4%jg-8hDM3tn{E_*V zb9*DPf_Z;2u^*hM>V!q<>S@)D{5lcPZR|JZw*SGmj_Tv_j=;g+)nkzi-)*plwX=_a$RUuW57q}fgj|hXS0PJ~<#Nb#0yb01E#vSAGtD<7!qO58}sf;WBGo13? zPn`(xRYoh$uJw9_t;l&v=&o5*pSV?-<_ou6WIJ!HUW5%+4F#?p~t*peZaYgb=BT!uFe? zCLXuX*n|(1pV6H743`wOqT~4&iEQj{iqPCs>__@v&E$COCjud3e?qA@8WwzAgh3%? zRUKfllhImNjLFtR;+G?-rm}Kl_}NT7C;dOdy-CZCy>&F6<2361LfW{#cvj`~EKezC zxzKZaBlKpGs!f8a_*Z|i3ytS9s;A-0x3^~kheut}CvtZtuCW}uWI?yg?EAH}3<-x03MvXW3k!?N_v<;- zF260xs1JNStT}N=*c}I{{V=HbdvUnhCcWNLzkGkO06DzvS2@17Zy&oowUQ{x^G&}n zn*BI4Gh^@UJgstZucE5l@{EWA67q~_f6*#nTc=8Y6I|{^z7{V=-*b)@65B+jqb6}u zZg^L5MdFMra{6O{)Pf1In3ITJ$-2v(SG$xIK9BN zlK99#A2!THL&0Hkvgi}J%k{LkjIwtRYsQp40!%231_0LiN&T|?;Ko`3O~ucn8>RJU zNiySscJq5ji0P&}e~*?!X@UC^+B;`=;QzkjetWeXXhYUQbc{bo8+AcDBYz&EQ0;02 zORiHsl+{=I@K<`e=wNceP4^4{08;E{J0%h16!zoRjY{u2sc0Ly<&;-mRf@e*HR1zr zJo?XU)V`rBHezhL*H%+zQP>t@ETS07%Ki(t?3NT__`JWs6$1b!*;#PB394Bl%a-2d zdwtN0#A&uk&8v6W8^-z1%nvW;)d@&T{CijFS0*^i+8WOt((bRsaPy>yN%TVXe4LN9 z>Tm#Hl2U9{v|W1i6@6peZ?O*S`pPiMWb?g3jzM8gySEE%W>5b!h!6XT$#v_mHv!NYJ{>Y)^xLm+A%G;uCEf2gW9s{x>ilPtRI? zobr(Qf`}SVxL4J8NGz_5o*9+%_UWwY6ej?5O)7acejI&8-x~M5CGLf@p^Nk^#}mJq zeI>okPu7V4909%u$NuC0>2Kw@|FCVarR^zt9a|3?{MYgYCwK(*4*-~XGC&0T`wH1B zOL5}COH%9zo#`bp_$zB;um3s2PMsA%g&>=RyU6J8pL>X;h}es6eE3rTXc$&fYeNbE zW`Z*8^fl%rw6MozIOi9Pvn{Wj9W_aXDmJG{g0=1x@&9wDYvbrrV)eox=TChJsi_=W zM11awKNnT?udXGG>xtH8_K|JWFMI7eE2I3y>k;3EEC*v_{n?g`D!fT^`F{?94k5ci z_PNNXR1C}!L~3g#nQC&$zq*#5TOPgDO@Z&C#$}z~X2|o2fXDJk=ee_?ZEUe&(rZqR z%7#m{|C~`Tr|?QT^PWT+7*wyE5osO#2vXEDvy1SH2p!HfQj|ljLt0Cx_r}4e3;jJw z3oqFn4Q%nM>qfX6+4ybvnX>TyvlJ*j(dcbzR^eY!?uLQT?m@FnEboB(&T}5*qW*R> zhb1@Hr}%^snyIQ3kpg#@l|IqRS$7%RUV|m{|7`rym$;%wFt8egMz`9^!HRK6^fI=F zjF}X5+Xj=j`NYrw;I%+9L1Y@*37U1^D|2OgTg0A-bOnOI$$ZS9bzrcukO}smF`%o^ z`1FjN=-k_|%+)Zq-9C0Lx0h4T%r4z8g1CT9{4Hv5E}FyUCZn$`r_F!TZ-K9%`QWVA zoE)5P9iR+{{|s3tUCw08n6$*Z`*nir%5Bb;abebXt)>a8uFrP~cLZ1u*8G&9*F}t0k z>EzEm?7!a3t@dvgWC%~2QeX7&0zewYaF~p;s`TfT$TINKSY#1zQ%8kU#;=$Xx>pka z`6O9BU%s|H#%8J@2aCvE_~PDb_ND&!8F}l^O#2*J)C2{wIdQ8-&yi4Q1us=x);EQD zRgY(+3pkByjx+sdrK_;VqiX*O;sawwJ6{4T(X6F682{>8a=nf*(Mv(7%@6=Um!zV8 zRHPRcbB2UDfkrvUR?LuwLTO|%!e~uVh1(_Nm75dEfA-7<^sb5R8;d3ouxs7s`MFPG z;`flO;b9pa_FrFJ*zR_uEcH2yP?P^9q3&V2GzU;OHRi13B zs%0omz18c;HN>H+oU6Affkd}`*7HB3fig48t!sC4p^$7fziy7~Po1pwn!~nVd4F|1 zp`dDp2irT%? z|D3w-BjLC%0ZlviP3_rN5z9_1-IYU4vx_6Ppq+V+5Aw#VKon;w~zY4Jc0Gyik zy~>p~9!flxV@Hdq{{|rtVpVV>IC)j9lL+>ZwtL0k51pXilLd=Op$7QyO)^{l85owi z3#f9mK=j+2T)($}>!Z}@x#zY|JR{;R{>1ZxkKxsy=pMM4SSK!1o9z2!TW8R%?Sw(| z;Rj(~jcNGD*ZDoKY;7}?B6X^{P`h$cS8VNt-7ChF+wW<5OU@B*5HGCj%PdY1$w+9DUHwyPYtV9T-otYPS@Hg%`0r_J&4kykSmodsh299Pd6M^DEHDDpxcQq zZcb27OsPGXZ>rCpq(SIJ43%X!vKnR9XNL(Ynea2|;{6$5CU6N6w-HF!v>I-+sn;Pm z(LdnI7q)#N^>Vxt`nBG!l`IT-0+x|bXl%z`=qI3)~lG#>Kp!yi&5CmmBsQ+!U>0gD>P2iiCg@A z|4N7Xr~n9$NzBDbMqRS~k_st>(Xz_bZ3*eQl+s9avyRY??C@pQ?bI2XsfELVY<*kd z9Ub>w*MVPSQ^kRkgFugn*3xU1_d=bD;I!O&$k z_{i%@69;W8rD3iprO3o$KiN?Vxv2MhZ_YFHT%v^caGf@q@xzdl;E3qdz34P_+p#^* z;Ew)k>Df{438{BE3Br3CP~(jggU#k9$mORn#K1{`v0-8LY+P;1+9S15TUc$Su#I8A zXb8jt541ZW>^|bg2&SE@dfjg@P>8hn%`#~|>gLQdPjl=99Y~rW+Kk#9H&!|$uQ*{w z_Sft0m4#dS_g~_F45*~Q*N3v6Qz~47ns95Od|SMxN+})A^8&yL)4SoDFsG2bnyQQs#+b=lhI=lvozsjlD34xC*RHY{S@h(n_H)8IlC zOss^*HFCDrT2p>Bj{^W^L@f9H;Y}sx4o!4d?;RFiU0K=O4n{>cv`^m=BwWST%-%qn z`i{UxwL^m0F^~3jGl^_h#K(o_HI1}YE!vRh%E`jiK}l^aE+4a{)|loUhQ0on&s}OP zRq$8e8o;OaW{-LLj%@s<8zT9~d86rmN^pQ*U0FGm)=KC^1+cxTE#YFP!kT)}s|4R@2b*jXw+`S?4vl`9;dPAoLc zuC5~CxJ_GOc(4w6O~dv8sw~n7R^zHapeV#-?`W zw{z;5VXj_yE+fQ_r)rpEj!CD4y`KZX59&MF0bgEXBE#OXwa9n(;2VPaGKA5Zfl3J? zJ^f1UHZ)u?ho#xCJjt-kusuY`ptG*xIqz!vp6X@Rhk}@*m^bFaa^af_!z1xmGsldl zwk;+}FWy*f2);9cA7BpN_{c6RhHq}A1vFv?rD&z=a&yh3xMpLRXVq1hlSzfvtGw#d zhu6gzi>guD-agU#OvOEYVZDsQ5n|T}j&HsT6cK1Xu_?b*Xv#E?248WUSeNwbnRbn1 z+4)%hw%S*E(a3M5GjNjNW~5mOInf=w9LnT9Z;}Q#QHM_$f9=THgdi=mb)Bf2I(X*s zkM+mtbVbfR_3JnbR#5Y?V$xsZ3_3nH))$vV9idyq_7T?e@1m2BQR0Nwk zE-nZHr@bcYd3t_{`F$Ev76d5A!2e5%VS?*3hFMA}a^0+Xak=u)2Ax7k_zBn8Pho1M z&uQ1e=~_E)sqh8`RpS|~=xs%POv)`ZHb&j18xrc(?4rTqM8XE-H}V+D=c{nd5;fKo!g?W`x(=GK++- zEC%;2@-sKQHuT`SY34*%7M9suc1F|9n_+GrD<$NGs@|7hmLrv#GMfh}9fc~OwYYzM zCmVGCrhRjobMn*Mo5-5*<+M#JQ`D5G8)L9t=}X`}_o^EwqOkhTvF5jWig3jeYtU2sBEt=c6;%vVT2C z5s=e+6N_GP9|mzlX1S`i&E6Qby0!84T_kZ|>#;NnnlR|(BbAmFxi{bY4;Xl);c1m? zt0}88WLw(NfnAb#sNaAGi@h*4O*HyM^=CEIhHo&yo}8*a9b3f{wRIKRGdF4GS_9n* zLnUH4R@*1~6PKJfy;TlWs;$zS-k74$Ki`*sRO>7=#CPZ91B}hX&o5J= zA!d~S)U7Q_INOC|o{Y3tOk7ONO&p=qgT{7hpR+My*?N&x!|sra3K~9Z+HbwGFI=E# z3iF?%sGsbt_vhf;Dm0Gq`dorYZ@E$%Wg9PweLvACIl{qxP5}b%(8p^V4%a(S)#~Bd zRqTz95$>pGnQq<`8S!eCzmeM!I`soPWw{{p$6K3qIL8fQ`BiDN<#J~D{2657wN_wZ zIz15oy*+b&8~BY)M}biNc%x9!bGcHualpNG}UL6dR~`mvxaAm`OmS!<{mWdTSq>5!KK-UzU74=(kd~c?zX{J6fu>blx*3mC! z-#_h)T!N>EB6QhHZC)GPM&Efe|{$5$Mxja@I-Fbo;u^-=qo+{{|$Srt6AJ4 zLHoLtsrB|WsmDIO5x-e(qO`U4M1MiM2NmsDK)>1gN}+r|O^+ax4Uy9{8N5!Ev{e^A zOzRuY&%ubR;CGYtQ^2!*vmatsPT_2QV+q>A( zmvW@OWNxC~@ajphpi?C%EKx5?J| z>`vivIU3uK`sQDSck;d>n7~$&t>F+>aAQzjG^bN%GbmZMBHEDVRB%=yKQ>Vx z=|sS<1m)c}ikSaiG*@A4RgTZLMRKCZKc)_v8K+|!t+yF1LCPaE?F&>aDugUWH}qbC zc79dUav_{YZ=djIOhl?X47Xv?nq)+>?lkic=nt065wf3|J~0|jk3aYtJYDAO(|0l0 z!&8Pb;tw$PS0iT{G>2?n&`{*f4n?a_rP9VkVlOlkn&&U2{;F~;8UXzAZueT!9#u(#$tD-qlig2|7T3$w8A4UzBA-lT!Ywwh)GCxRt5Ufe zk)rOEk8D@soiy!O{4%PHmvl-_u3qQRMXS5)c?v3c6?of>D72V>(r_9~D!2;7WvIPP`YL0cVtc4}#j8l^Eo5UqG)soG*If{<38 zB}g^NgtkIDttz#os2C)2w4y>IrLm+8bBKf|BdwiiO>L4uI5BGe} z=X>w>_7r2iGWU&Um@{j^aca|&7#*y6@A6q!+wX=a<*lJ$aYHr<$&s;lE`p65Az$=1 zqnEU)?Q~KldMPXJ^`I*jaR7%f^y8HJLDzeVlK}#;(ONT%vzxaXEOxx!Q=9^4OVtiR zZFD{k5k6U#Z27sfx?Fz&|IV^@Q^GGo-~N<9?r&2#@$!kV4e9W+DS0Wp@%_Jvkr2nj zakM)3D@8e*l{%a!H=5Bp32QGl^z%dnOX_&-yI4{T>nW@$q=1Yt;H6KnL+OpF_87rw zHl{dj`)WpH*NkfFm1+~b9(T=K1Yk^;qlAuKa z2+qfbn`()j&onh$0rc4gv86?exWYRS7-#JmnL_3$WN(xb7d(NV$_IBkEe3he~^>2g7+&Cn=_wlsT-1s-O2N`cb z@q}*O(?Y*k%N(0@za$C4D97U->023SWe>%n!^RU8k(pJ+1%50Jf*!TNxq(ZU#WeXj zhXczDxtTa)HVQM0amS4F>+9-!UPD*M%TW#TBDa?SM!67<822_pQhAX`wgX0*s$OTo?F>Ejsv8&KbD5JA- z?XZCg95ZoRmM>0GTG$X>Ykpnih+vCU%CA_{d}!C?MWiR*vC|pAl$U3trKOM$fL_xe z@5`927kZO7FWOghT!NMB$*by2v>6^W!7=-Q+4Xg|$oZS)>T+^17dn;RW_2j3O6&br zlOtqriH@nvM3Bvho^Qdp4VuXwA4(kWBf~Y&rY-`VUcNhrIUVpY_2C4VS84$WtSU`R z4)Cyd7I=vkD@s)O{wK=M<7Fy5M+I0X;=o)c$P zU#4SP>ri(JCE($#m3M-XG_jK%%^rbslyX>zc~0j<&=Q4=L)jmslq9d=?9s_x8_|8P zqOnm-uu$HK(k@8JG)w6c_>Renl)jt1<71vx^HX1(>VFc4(kFlJYW2_R&|M%|Pi`5= z$ywcRN4at4eG=0C=6}?F&9VVw)8IyY$YdIkf4JfXK4yY<-*{DF%VJIY?9>aI ztgIOh{`(~Yd^)@mw=}CqQ}1j%L5jn5G=xf)XOL4|yCVQ-wc)yJ%WK9odDUXH&IE+5 z(B_CyXn6kOM(C;=0Y0?F-r<5jrrDlNh=k6InP@gMV*j(Xh(@GHNtrzmfCuED`F1W7 zbR1o{Cv3W#vl6SNfsTF+x174H0NT7v{OK$IhgYy{LI8F|IRYDAO67YbktQjrbDdpk zI{H#CAyV#Yq8q1J6tP1J^F0GsWjgH{!s3s~X-3JQMziTot!E7vgIl#<7rgie|mRlKXCnbZEM?Ox*E zrc7`lCh$0ziS%SVLaD3;6QflmRtTM8%KZ>Y1zJPjaMM);aMwK);*t3`uLiYZfjPoy z-VJTqwMWKtR>OG>vfuf2U{q-4g89tz_ZR%A{a{dzca@8P&ql4~;q~mTY08GPCp^K& z$b`AJ*xPy^Gtg}56w(Z7DGUe*t@ad|NUVT)lQsp|6uB8(k92KfE@8Y= zjcFg|+sgdmanqJ--Ji$hesngoaWFq_pl}kpv;WUIPi!=uBbs{wkhE4Crf zjp`3|r^b6JV(e)zelPK_9#Fwq)J5z&66e+ozF@V?qx`)EAFCBRvm|W5xOr}zK+kRexz+r?6%0wm1cK$=@IN8=lmwW z0Z1yv-s#_-g6&ot85>dx!dXorJQvZJ*+_QagV{Gx4+)->*%HN30vulTOJdEs9biSg zd(G*s`{mD(!L@+LtB>o$QlmRNZ2&q+$xz>dVyi3nWIFl@9EZKp+FH%AE=1X-UDKb% zuQoI!jj1i82ij(8QRhz_CPDSnjAXX-koJ~g&bXg5k1>ByY0^`Co6 zA3T?f&@$vx{CzyAhg#&yVni;C2U)NC+zi4r$aYQ_D_8DJ*m_PENdDqdcy^DY3#Q8^TKGC~L4q5yjAct+ZHey$h(9IrRF!{L8pLgNotaWQ7wf|Q}ZE_a+3#fZB2 zzw*?lVv?+Z`U5=P)%~}P`92T68XFh<-&?>~K>2U=n}=Et{gjoMd~UFNPDN56xxRaP z)eU_HSV;m^Vdz24;yt1LvN4)zn#HHaO-g9Tmtz`2Z4z#8Ez)vZFbh Date: Sun, 17 May 2020 22:38:22 -0400 Subject: [PATCH 07/15] Update build docs. --- BUILD.md | 33 ++++++++++++++++++++++++++------- BUILD_WIN.md | 6 +++--- INSTALL.md | 2 +- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/BUILD.md b/BUILD.md index f441290c85..594fc973a6 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,6 +1,6 @@ # General Build Information -*Last Updated on December 21, 2019* +*Last Updated on May 17, 2020* ### OS Specific Build Guides @@ -36,7 +36,7 @@ These are not placed in your normal build tree when doing an out of source build #### CMake -Athena uses CMake to generate build files and project files for your platform. +Vircadia uses CMake to generate build files and project files for your platform. #### Qt CMake will download Qt 5.12.3 using vcpkg. @@ -49,9 +49,9 @@ This can either be entered directly into your shell session before you build or export QT_CMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.12.3/lib/cmake export QT_CMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake -#### Vcpkg +#### VCPKG -Athena uses vcpkg to download and build dependencies. +Vircadia uses vcpkg to download and build dependencies. You do not need to install vcpkg. Building the dependencies can be lengthy and the resulting files will be stored in your OS temp directory. @@ -61,7 +61,26 @@ export HIFI_VCPKG_BASE=/path/to/directory Where /path/to/directory is the path to a directory where you wish the build files to get stored. -#### Generating build files +#### Generating Build Files + +##### Possible Environment Variables + + CMAKE_BACKTRACE_URL + CMAKE_BACKTRACE_TOKEN + + RELEASE_NUMBER + BUILD_NUMBER + + RELEASE_TYPE=PRODUCTION|PR + RELEASE_BUILD=PRODUCTION|PR + + PRODUCTION_BUILD=0|1 + STABLE_BUILD=0|1 + + USE_STABLE_GLOBAL_SERVICES=1 + BUILD_GLOBAL_SERVICES=STABLE + +##### Generate Files Create a build directory in the root of your checkout and then run the CMake build from there. This will keep the rest of the directory clean. @@ -69,7 +88,7 @@ Create a build directory in the root of your checkout and then run the CMake bui cd build cmake .. -If cmake gives you the same error message repeatedly after the build fails, try removing `CMakeCache.txt`. +If CMake gives you the same error message repeatedly after the build fails, try removing `CMakeCache.txt`. #### Variables @@ -83,7 +102,7 @@ For example, to pass the QT_CMAKE_PREFIX_PATH variable (if not using the vcpkg'e The following applies for dependencies we do not grab via CMake ExternalProject (OpenSSL is an example), or for dependencies you have opted not to grab as a CMake ExternalProject (via -DUSE_LOCAL_$NAME=0). The list of dependencies we grab by default as external projects can be found in [the CMake External Project Dependencies section](#cmake-external-project-dependencies). -You can point our [Cmake find modules](cmake/modules/) to the correct version of dependencies by setting one of the three following variables to the location of the correct version of the dependency. +You can point our [CMake find modules](cmake/modules/) to the correct version of dependencies by setting one of the three following variables to the location of the correct version of the dependency. In the examples below the variable $NAME would be replaced by the name of the dependency in uppercase, and $name would be replaced by the name of the dependency in lowercase (ex: OPENSSL_ROOT_DIR, openssl). diff --git a/BUILD_WIN.md b/BUILD_WIN.md index 098553c761..0c4c0d3d25 100644 --- a/BUILD_WIN.md +++ b/BUILD_WIN.md @@ -1,6 +1,6 @@ # Build Windows -*Last Updated on April 7, 2020* +*Last Updated on May 17, 2020* This is a stand-alone guide for creating your first Vircadia build for Windows 64-bit. @@ -82,7 +82,7 @@ Where `%VIRCADIA_DIR%` is the directory for the Vircadia repository. ### Step 6. Making a Build -Open `%VIRCADIA_DIR%\build\athena.sln` using Visual Studio. +Open `%VIRCADIA_DIR%\build\vircadia.sln` using Visual Studio. Change the Solution Configuration (menu ribbon under the menu bar, next to the green play button) from "Debug" to "Release" for best performance. @@ -116,4 +116,4 @@ Remove `CMakeCache.txt` found in the `%VIRCADIA_DIR%\build` directory. #### CMake can't find OpenSSL -Remove `CMakeCache.txt` found in the `%VIRCADIA_DIR%\build` directory. Verify that your HIFI_VCPKG_BASE environment variable is set and pointing to the correct location. Verify that the file `${HIFI_VCPKG_BASE}/installed/x64-windows/include/openssl/ssl.h` exists. +Remove `CMakeCache.txt` found in the `%VIRCADIA_DIR%\build` directory. Verify that your HIFI_VCPKG_BASE environment variable is set and pointing to the correct location. Verify that the file `${HIFI_VCPKG_BASE}/installed/x64-windows/include/openssl/ssl.h` exists. diff --git a/INSTALL.md b/INSTALL.md index 10858200e7..fff8112607 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -60,7 +60,7 @@ To produce an executable installer on Windows, the following are required: 1. Install version 10.15.0 LTS 1. Perform a clean cmake from a new terminal. -1. Open the `athena.sln` solution and select the Release configuration. +1. Open the `vircadia.sln` solution and select the Release configuration. 1. Build the solution. 1. Build `packaged-server-console-npm-install` (found under **hidden/Server Console**) 1. Build `packaged-server-console` (found under **Server Console**) From 44933f0cc790c9b592d7bfbfcd3b63494a6f63a7 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Mon, 18 May 2020 15:17:40 -0400 Subject: [PATCH 08/15] Update CONTRIBUTING.md and README.md --- CONTRIBUTING.md | 4 ++-- README.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a62e4b2825..f3ab85351a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ Contributing ``` git remote add upstream https://github.com/kasenvr/project-athena - git pull upstream kasen/core + git pull upstream master ``` Resolve any conflicts that arise with this step. @@ -29,7 +29,7 @@ Contributing 7. Push to your fork ``` - git push origin kasen/core + git push origin master ``` 8. Submit a pull request diff --git a/README.md b/README.md index f61a60d431..e57063b499 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ Vircadia is a 3D social software project seeking to incrementally bring about a ### How to build the Interface -[For Windows](https://github.com/kasenvr/project-athena/blob/kasen/core/BUILD_WIN.md) +[For Windows](https://github.com/kasenvr/project-athena/blob/master/BUILD_WIN.md) -[For Linux](https://github.com/kasenvr/project-athena/blob/kasen/core/BUILD_LINUX.md) +[For Linux](https://github.com/kasenvr/project-athena/blob/master/BUILD_LINUX.md) -[For Linux - Athena Builder](https://github.com/daleglass/athena-builder) +[For Linux - Athena Builder](https://github.com/kasenvr/vircadia-builder) ### How to deploy a Server @@ -24,7 +24,7 @@ Vircadia is a 3D social software project seeking to incrementally bring about a ### How to build a Server -[For Linux - Athena Builder](https://github.com/daleglass/athena-builder) +[For Linux - Athena Builder](https://github.com/kasenvr/vircadia-builder) ### Boot to Metaverse: The Goal From e990e2d5bf711f018399be1feee9654df0e0492b Mon Sep 17 00:00:00 2001 From: kasenvr <52365539+kasenvr@users.noreply.github.com> Date: Wed, 20 May 2020 15:00:28 -0400 Subject: [PATCH 09/15] Update README_hifi.md Co-authored-by: David Rowe --- README_hifi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_hifi.md b/README_hifi.md index 004b43b706..325cba8d42 100644 --- a/README_hifi.md +++ b/README_hifi.md @@ -1,4 +1,4 @@ -# THIS IS AN OUTDATED DOCUMENT. +# THIS DOCUMENT IS OUTDATED High Fidelity (hifi) is an early-stage technology lab experimenting with Virtual Worlds and VR. From ce1a1faf79daeddabdeb3e86080740c30ef38c3f Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Wed, 20 May 2020 15:02:03 -0400 Subject: [PATCH 10/15] Fix copyright headers + some docs. --- BUILD_WIN.md | 2 +- CODING_STANDARD.md | 6 +++--- CONTRIBUTING.md | 2 +- INSTALL.md | 4 ++-- LICENSE | 2 +- interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml | 2 +- scripts/system/create/edit.js | 2 +- .../create/entityProperties/html/js/entityProperties.js | 2 +- scripts/system/html/css/edit-style.css | 2 +- unpublishedScripts/marketplace/record/html/record.html | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/BUILD_WIN.md b/BUILD_WIN.md index 0c4c0d3d25..c057d9ca5d 100644 --- a/BUILD_WIN.md +++ b/BUILD_WIN.md @@ -47,7 +47,7 @@ Download and install the latest version of CMake 3.15. Download the file named win64-x64 Installer from the [CMake Website](https://cmake.org/download/). You can access the installer on this [3.15 Version page](https://cmake.org/files/v3.15/). During installation, make sure to check "Add CMake to system PATH for all users" when prompted. ### Step 4. Create VCPKG environment variable -In the next step, you will use CMake to build Project Athena. By default, the CMake process builds dependency files in Windows' `%TEMP%` directory, which is periodically cleared by the operating system. To prevent you from having to re-build the dependencies in the event that Windows clears that directory, we recommend that you create a `HIFI_VCPKG_BASE` environment variable linked to a directory somewhere on your machine. That directory will contain all dependency files until you manually remove them. +In the next step, you will use CMake to build Vircadia. By default, the CMake process builds dependency files in Windows' `%TEMP%` directory, which is periodically cleared by the operating system. To prevent you from having to re-build the dependencies in the event that Windows clears that directory, we recommend that you create a `HIFI_VCPKG_BASE` environment variable linked to a directory somewhere on your machine. That directory will contain all dependency files until you manually remove them. To create this variable: * Naviagte to 'Edit the System Environment Variables' Through the start menu. diff --git a/CODING_STANDARD.md b/CODING_STANDARD.md index fd1843e981..63f24b5358 100644 --- a/CODING_STANDARD.md +++ b/CODING_STANDARD.md @@ -976,9 +976,9 @@ while (true) { #### [4.3.4] Source files (header and implementation) must include a boilerplate. -Boilerplates should include the filename, location, creator, copyright Project Athena contributors, and Apache 2.0 License +Boilerplates should include the filename, location, creator, copyright Vircadia contributors, and Apache 2.0 License information. This should be placed at the top of the file. If editing an existing file that is copyright High Fidelity, add a -second copyright line, copyright Project Athena contributors. +second copyright line, copyright Vircadia. ```cpp // @@ -987,7 +987,7 @@ second copyright line, copyright Project Athena contributors. // // Created by Stephen Birarda on 15 Feb 2013. // Copyright 2013 High Fidelity, Inc. -// Copyright 2020 Project Athena contributors. +// Copyright 2020 Vircadia // // This is where you could place an optional one line comment about the file. // diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f3ab85351a..aeb6f49280 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,7 +29,7 @@ Contributing 7. Push to your fork ``` - git push origin master + git push origin new_branch_name ``` 8. Submit a pull request diff --git a/INSTALL.md b/INSTALL.md index fff8112607..92a2ee0184 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,10 +1,10 @@ # Creating an Installer -Follow the [build guide](BUILD.md) to figure out how to build Project Athena for your platform. +Follow the [build guide](BUILD.md) to figure out how to build Vircadia for your platform. During generation, CMake should produce an `install` target and a `package` target. -The `install` target will copy the Project Athena targets and their dependencies to your `CMAKE_INSTALL_PREFIX`. +The `install` target will copy the Vircadia targets and their dependencies to your `CMAKE_INSTALL_PREFIX`. This variable is set by the `project(hifi)` command in `CMakeLists.txt` to `C:/Program Files/hifi` and stored in `build/CMakeCache.txt` ### Packaging diff --git a/LICENSE b/LICENSE index ab1ea16d6a..736e1d5ac5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ Copyright (c) 2013-2019, High Fidelity, Inc. -Copyright (c) 2019-2020, Project Athena Contributors. +Copyright (c) 2019-2020, Vircadia All rights reserved. https://vircadia.com diff --git a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml index 4214b956d8..d523fccccc 100644 --- a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml +++ b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml @@ -116,7 +116,7 @@ Rectangle { Item { height: 20; width: 1 } RalewayRegular { color: "white" - text: "© 2020 Vircadia." + text: "© 2020 Vircadia" size: 14 } RalewayRegular { diff --git a/scripts/system/create/edit.js b/scripts/system/create/edit.js index b728c8348f..d0cb6968e1 100644 --- a/scripts/system/create/edit.js +++ b/scripts/system/create/edit.js @@ -3,7 +3,7 @@ // Created by Brad Hefta-Gaub on 10/2/14. // Persist toolbar by HRS 6/11/15. // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors. +// Copyright 2020 Vircadia // // This script allows you to edit entities with a new UI/UX for mouse and trackpad based editing // diff --git a/scripts/system/create/entityProperties/html/js/entityProperties.js b/scripts/system/create/entityProperties/html/js/entityProperties.js index 182dddf817..88bb36bbf5 100644 --- a/scripts/system/create/entityProperties/html/js/entityProperties.js +++ b/scripts/system/create/entityProperties/html/js/entityProperties.js @@ -2,7 +2,7 @@ // // Created by Ryan Huffman on 13 Nov 2014 // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors. +// Copyright 2020 Vircadia // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/html/css/edit-style.css b/scripts/system/html/css/edit-style.css index c72456d414..6443547ee3 100644 --- a/scripts/system/html/css/edit-style.css +++ b/scripts/system/html/css/edit-style.css @@ -3,7 +3,7 @@ // // Created by Ryan Huffman on 13 Nov 2014 // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors. +// Copyright 2020 Vircadia // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/unpublishedScripts/marketplace/record/html/record.html b/unpublishedScripts/marketplace/record/html/record.html index 810238a580..899a3ade57 100644 --- a/unpublishedScripts/marketplace/record/html/record.html +++ b/unpublishedScripts/marketplace/record/html/record.html @@ -3,7 +3,7 @@ // // Created by David Rowe on 5 Apr 2017. // Copyright 2017 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors. +// Copyright 2020 Vircadia // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html From c9f6f866196ea84f8b8ae98f73091a3dd2d17f52 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Wed, 20 May 2020 15:08:18 -0400 Subject: [PATCH 11/15] Add descriptions, some still are TODO. --- BUILD.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/BUILD.md b/BUILD.md index 1b13eff614..b30160e7e4 100644 --- a/BUILD.md +++ b/BUILD.md @@ -22,7 +22,7 @@ These dependencies need not be installed manually. They are automatically downlo - [Bullet Physics Engine](https://github.com/bulletphysics/bullet3/releases): 2.83 - [glm](https://glm.g-truc.net/0.9.8/index.html): 0.9.8 - [Oculus SDK](https://developer.oculus.com/downloads/): 1.11 (Win32) / 0.5 (Mac) -- [OpenVR](https://github.com/ValveSoftware/openvr): 1.0.6 (Win32 only) +- [OpenVR](https://github.com/ValveSoftware/openvr): 1.11.11 (Win32 only) - [Polyvox](http://www.volumesoffun.com/): 0.2.1 - [QuaZip](https://sourceforge.net/projects/quazip/files/quazip/): 0.7.3 - [SDL2](https://www.libsdl.org/download-2.0.php): 2.0.3 @@ -67,18 +67,25 @@ Where /path/to/directory is the path to a directory where you wish the build fil ##### Possible Environment Variables + // The URL to post the dump to. CMAKE_BACKTRACE_URL + // The identifying tag of the release. CMAKE_BACKTRACE_TOKEN + // The release version. RELEASE_NUMBER + // The build commit. BUILD_NUMBER + // The type of release. RELEASE_TYPE=PRODUCTION|PR RELEASE_BUILD=PRODUCTION|PR + // TODO: What do these do? PRODUCTION_BUILD=0|1 STABLE_BUILD=0|1 + // TODO: What do these do? USE_STABLE_GLOBAL_SERVICES=1 BUILD_GLOBAL_SERVICES=STABLE From a4bf1c4d82c0b640e691eed7afe3fec605c42cd2 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Mon, 25 May 2020 15:59:43 -0400 Subject: [PATCH 12/15] Update copyright headers. --- CODING_STANDARD.md | 2 +- interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml | 4 ++-- libraries/render-utils/src/CullFace.slh | 2 +- scripts/system/create/edit.js | 2 +- .../system/create/entityProperties/html/entityProperties.html | 2 +- .../create/entityProperties/html/js/entityProperties.js | 2 +- scripts/system/html/css/edit-style.css | 2 +- scripts/system/html/css/tabs.css | 2 +- scripts/system/more/app-more.js | 2 +- scripts/system/more/css/styles.css | 2 +- scripts/system/more/more.html | 2 +- scripts/system/tablet-goto.js | 2 +- unpublishedScripts/marketplace/record/html/record.html | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CODING_STANDARD.md b/CODING_STANDARD.md index 63f24b5358..8900059665 100644 --- a/CODING_STANDARD.md +++ b/CODING_STANDARD.md @@ -987,7 +987,7 @@ second copyright line, copyright Vircadia. // // Created by Stephen Birarda on 15 Feb 2013. // Copyright 2013 High Fidelity, Inc. -// Copyright 2020 Vircadia +// Copyright 2020 Vircadia contributors // // This is where you could place an optional one line comment about the file. // diff --git a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml index d523fccccc..979eaa7324 100644 --- a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml +++ b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml @@ -116,12 +116,12 @@ Rectangle { Item { height: 20; width: 1 } RalewayRegular { color: "white" - text: "© 2020 Vircadia" + text: "© 2020 Vircadia contributors" size: 14 } RalewayRegular { color: "white" - text: "© 2019 - 2020 Project Athena Contributors." + text: "© 2019 - 2020 Vircadia contributors." size: 14 } RalewayRegular { diff --git a/libraries/render-utils/src/CullFace.slh b/libraries/render-utils/src/CullFace.slh index 61b76bb22f..d1041ae817 100644 --- a/libraries/render-utils/src/CullFace.slh +++ b/libraries/render-utils/src/CullFace.slh @@ -3,7 +3,7 @@ // libraries/render-utils/src // // Created by HifiExperiments on 4/16/2020. -// Copyright 2020 Vircadia +// Copyright 2020 Vircadia contributors // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/create/edit.js b/scripts/system/create/edit.js index d0cb6968e1..bf0bd77efd 100644 --- a/scripts/system/create/edit.js +++ b/scripts/system/create/edit.js @@ -3,7 +3,7 @@ // Created by Brad Hefta-Gaub on 10/2/14. // Persist toolbar by HRS 6/11/15. // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia +// Copyright 2020 Vircadia contributors // // This script allows you to edit entities with a new UI/UX for mouse and trackpad based editing // diff --git a/scripts/system/create/entityProperties/html/entityProperties.html b/scripts/system/create/entityProperties/html/entityProperties.html index 6eadf4d3c0..eef1c33829 100644 --- a/scripts/system/create/entityProperties/html/entityProperties.html +++ b/scripts/system/create/entityProperties/html/entityProperties.html @@ -4,7 +4,7 @@ // // Created by Ryan Huffman on 13 Nov 2014 // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Project Athena contributors. +// Copyright 2020 Vircadia contributors. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/create/entityProperties/html/js/entityProperties.js b/scripts/system/create/entityProperties/html/js/entityProperties.js index 88bb36bbf5..736c37abc8 100644 --- a/scripts/system/create/entityProperties/html/js/entityProperties.js +++ b/scripts/system/create/entityProperties/html/js/entityProperties.js @@ -2,7 +2,7 @@ // // Created by Ryan Huffman on 13 Nov 2014 // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia +// Copyright 2020 Vircadia contributors // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/html/css/edit-style.css b/scripts/system/html/css/edit-style.css index 6443547ee3..e92344daa7 100644 --- a/scripts/system/html/css/edit-style.css +++ b/scripts/system/html/css/edit-style.css @@ -3,7 +3,7 @@ // // Created by Ryan Huffman on 13 Nov 2014 // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia +// Copyright 2020 Vircadia contributors // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/html/css/tabs.css b/scripts/system/html/css/tabs.css index b2d63b5652..6abd910300 100644 --- a/scripts/system/html/css/tabs.css +++ b/scripts/system/html/css/tabs.css @@ -2,7 +2,7 @@ // tabs.css // // Created by Alezia Kurdis on 27 Feb 2020 -// Copyright 2020 Project Athena contributors. +// Copyright 2020 Vircadia contributors. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/more/app-more.js b/scripts/system/more/app-more.js index 1902ddf855..c4aabefe9c 100644 --- a/scripts/system/more/app-more.js +++ b/scripts/system/more/app-more.js @@ -4,7 +4,7 @@ // VERSION 1.0 // // Created by Keb Helion, February 2020. -// Copyright 2020 Project Athena and contributors. +// Copyright 2020 Vircadia contributors // // This script adds a "More Apps" selector to "Project Athena" to allow the user to add optional functionalities to the tablet. // This application has been designed to work directly from the Github repository. diff --git a/scripts/system/more/css/styles.css b/scripts/system/more/css/styles.css index 1f9aba0695..1772d56775 100644 --- a/scripts/system/more/css/styles.css +++ b/scripts/system/more/css/styles.css @@ -2,7 +2,7 @@ styles.css Created by Kalila L. on 23 Feb 2020. - Copyright 2020 Project Athena and contributors. + Copyright 2020 Vircadia contributors Distributed under the Apache License, Version 2.0. See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/more/more.html b/scripts/system/more/more.html index 218744969e..8fc2efc939 100644 --- a/scripts/system/more/more.html +++ b/scripts/system/more/more.html @@ -3,7 +3,7 @@ // more.html // // Created by Keb Helion, February 2020. -// Copyright 2020 Project Athena and contributors. +// Copyright 2020 Vircadia contributors // // App maintained in: https://github.com/kasenvr/community-apps // App copied to: https://github.com/kasenvr/project-athena diff --git a/scripts/system/tablet-goto.js b/scripts/system/tablet-goto.js index 8c048cc0cc..08c1f14e6d 100644 --- a/scripts/system/tablet-goto.js +++ b/scripts/system/tablet-goto.js @@ -9,7 +9,7 @@ // // Created by Dante Ruiz on 8 February 2017 // Copyright 2016 High Fidelity, Inc. -// Copyright 2020 Project Athena contributors. +// Copyright 2020 Vircadia contributors. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/unpublishedScripts/marketplace/record/html/record.html b/unpublishedScripts/marketplace/record/html/record.html index 899a3ade57..6f6bcd759e 100644 --- a/unpublishedScripts/marketplace/record/html/record.html +++ b/unpublishedScripts/marketplace/record/html/record.html @@ -3,7 +3,7 @@ // // Created by David Rowe on 5 Apr 2017. // Copyright 2017 High Fidelity, Inc. -// Copyright 2020 Vircadia +// Copyright 2020 Vircadia contributors // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html From 6c6a405020231c2ed0c4a2c565e379847a46c8b8 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Mon, 25 May 2020 16:41:16 -0400 Subject: [PATCH 13/15] Add periods and remove double copyright in tabletaboutdialog.qml --- CODING_STANDARD.md | 4 ++-- interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml | 7 +------ libraries/render-utils/src/CullFace.slh | 2 +- scripts/system/create/edit.js | 2 +- .../create/entityProperties/html/js/entityProperties.js | 2 +- scripts/system/html/css/edit-style.css | 2 +- scripts/system/more/app-more.js | 2 +- scripts/system/more/css/styles.css | 2 +- scripts/system/more/more.html | 2 +- unpublishedScripts/marketplace/record/html/record.html | 2 +- 10 files changed, 11 insertions(+), 16 deletions(-) diff --git a/CODING_STANDARD.md b/CODING_STANDARD.md index 8900059665..e582ac305f 100644 --- a/CODING_STANDARD.md +++ b/CODING_STANDARD.md @@ -978,7 +978,7 @@ while (true) { Boilerplates should include the filename, location, creator, copyright Vircadia contributors, and Apache 2.0 License information. This should be placed at the top of the file. If editing an existing file that is copyright High Fidelity, add a -second copyright line, copyright Vircadia. +second copyright line, copyright Vircadia contributors. ```cpp // @@ -987,7 +987,7 @@ second copyright line, copyright Vircadia. // // Created by Stephen Birarda on 15 Feb 2013. // Copyright 2013 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // This is where you could place an optional one line comment about the file. // diff --git a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml index 979eaa7324..3df22a8341 100644 --- a/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml +++ b/interface/resources/qml/hifi/dialogs/TabletAboutDialog.qml @@ -116,12 +116,7 @@ Rectangle { Item { height: 20; width: 1 } RalewayRegular { color: "white" - text: "© 2020 Vircadia contributors" - size: 14 - } - RalewayRegular { - color: "white" - text: "© 2019 - 2020 Vircadia contributors." + text: "© 2019-2020 Vircadia contributors." size: 14 } RalewayRegular { diff --git a/libraries/render-utils/src/CullFace.slh b/libraries/render-utils/src/CullFace.slh index d1041ae817..b077095fc7 100644 --- a/libraries/render-utils/src/CullFace.slh +++ b/libraries/render-utils/src/CullFace.slh @@ -3,7 +3,7 @@ // libraries/render-utils/src // // Created by HifiExperiments on 4/16/2020. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/create/edit.js b/scripts/system/create/edit.js index bf0bd77efd..b728c8348f 100644 --- a/scripts/system/create/edit.js +++ b/scripts/system/create/edit.js @@ -3,7 +3,7 @@ // Created by Brad Hefta-Gaub on 10/2/14. // Persist toolbar by HRS 6/11/15. // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // This script allows you to edit entities with a new UI/UX for mouse and trackpad based editing // diff --git a/scripts/system/create/entityProperties/html/js/entityProperties.js b/scripts/system/create/entityProperties/html/js/entityProperties.js index 736c37abc8..182dddf817 100644 --- a/scripts/system/create/entityProperties/html/js/entityProperties.js +++ b/scripts/system/create/entityProperties/html/js/entityProperties.js @@ -2,7 +2,7 @@ // // Created by Ryan Huffman on 13 Nov 2014 // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/html/css/edit-style.css b/scripts/system/html/css/edit-style.css index e92344daa7..c72456d414 100644 --- a/scripts/system/html/css/edit-style.css +++ b/scripts/system/html/css/edit-style.css @@ -3,7 +3,7 @@ // // Created by Ryan Huffman on 13 Nov 2014 // Copyright 2014 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/more/app-more.js b/scripts/system/more/app-more.js index c4aabefe9c..35a8d4b7a4 100644 --- a/scripts/system/more/app-more.js +++ b/scripts/system/more/app-more.js @@ -4,7 +4,7 @@ // VERSION 1.0 // // Created by Keb Helion, February 2020. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // This script adds a "More Apps" selector to "Project Athena" to allow the user to add optional functionalities to the tablet. // This application has been designed to work directly from the Github repository. diff --git a/scripts/system/more/css/styles.css b/scripts/system/more/css/styles.css index 1772d56775..e4e6bfba24 100644 --- a/scripts/system/more/css/styles.css +++ b/scripts/system/more/css/styles.css @@ -2,7 +2,7 @@ styles.css Created by Kalila L. on 23 Feb 2020. - Copyright 2020 Vircadia contributors + Copyright 2020 Vircadia contributors. Distributed under the Apache License, Version 2.0. See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/scripts/system/more/more.html b/scripts/system/more/more.html index 8fc2efc939..673684ae70 100644 --- a/scripts/system/more/more.html +++ b/scripts/system/more/more.html @@ -3,7 +3,7 @@ // more.html // // Created by Keb Helion, February 2020. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // App maintained in: https://github.com/kasenvr/community-apps // App copied to: https://github.com/kasenvr/project-athena diff --git a/unpublishedScripts/marketplace/record/html/record.html b/unpublishedScripts/marketplace/record/html/record.html index 6f6bcd759e..810238a580 100644 --- a/unpublishedScripts/marketplace/record/html/record.html +++ b/unpublishedScripts/marketplace/record/html/record.html @@ -3,7 +3,7 @@ // // Created by David Rowe on 5 Apr 2017. // Copyright 2017 High Fidelity, Inc. -// Copyright 2020 Vircadia contributors +// Copyright 2020 Vircadia contributors. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html From d2fdbe280a851aa6c969c37040a565f84b0f5af4 Mon Sep 17 00:00:00 2001 From: kasenvr <52365539+kasenvr@users.noreply.github.com> Date: Mon, 25 May 2020 16:41:38 -0400 Subject: [PATCH 14/15] Update LICENSE Co-authored-by: David Rowe --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 736e1d5ac5..8dfe384174 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ Copyright (c) 2013-2019, High Fidelity, Inc. -Copyright (c) 2019-2020, Vircadia +Copyright (c) 2019-2020, Vircadia contributors. All rights reserved. https://vircadia.com From 4f55bfe51291160262d4479c58562f9aa612b759 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Wed, 27 May 2020 18:09:01 -0400 Subject: [PATCH 15/15] Update window title. --- interface/src/Application.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 5c4dc56e76..e1e13b88b3 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1139,7 +1139,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo QFontDatabase::addApplicationFont(PathUtils::resourcesPath() + "fonts/Graphik-SemiBold.ttf"); QFontDatabase::addApplicationFont(PathUtils::resourcesPath() + "fonts/Graphik-Regular.ttf"); QFontDatabase::addApplicationFont(PathUtils::resourcesPath() + "fonts/Graphik-Medium.ttf"); - _window->setWindowTitle("Project Athena"); + _window->setWindowTitle("Vircadia"); Model::setAbstractViewStateInterface(this); // The model class will sometimes need to know view state details from us @@ -3166,7 +3166,7 @@ void Application::showLoginScreen() { QJsonObject loginData = {}; loginData["action"] = "login dialog popped up"; UserActivityLogger::getInstance().logAction("encourageLoginDialog", loginData); - _window->setWindowTitle("Project Athena"); + _window->setWindowTitle("Vircadia"); } else { resumeAfterLoginDialogActionTaken(); } @@ -7063,7 +7063,7 @@ void Application::updateWindowTitle() const { auto accountManager = DependencyManager::get(); auto isInErrorState = nodeList->getDomainHandler().isInErrorState(); - QString buildVersion = " - Project Athena v0.86.0 K2 - " + QString buildVersion = " - Vircadia - " + (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build")) + " " + applicationVersion();
ValueNameDescription
Invite Steam friends to join you in High Fidelity.Invite Steam friends to join you in Vircadia.Display the High Fidelity home page on the system tablet.Display the Vircadia home page on the system tablet.