From 750a314687e77ba548a793d043abe8b46cc05187 Mon Sep 17 00:00:00 2001 From: Chris Midkiff Date: Sun, 14 Oct 2018 23:33:23 -0400 Subject: [PATCH] Working experiment hooray --- Assets/FittsLawVR/Prefabs/Canvas.prefab | 1443 + Assets/FittsLawVR/Prefabs/Canvas.prefab.meta | 8 + .../GoogleVR/GVRVideoPlayer.unitypackage.meta | 3 +- .../InstantPreview/InstantPreview.apk.meta | 3 +- Assets/Oculus/AudioManager.meta | 9 + Assets/Oculus/AudioManager/Audio.meta | 9 + .../Oculus/AudioManager/Audio/TestSounds.meta | 9 + .../metal_sliding_door_close_01.wav | Bin 0 -> 40180 bytes .../metal_sliding_door_close_01.wav.meta | 22 + .../metal_sliding_door_close_01a.wav | Bin 0 -> 40178 bytes .../metal_sliding_door_close_01a.wav.meta | 22 + .../TestSounds/metal_sliding_door_open_01.wav | Bin 0 -> 47956 bytes .../metal_sliding_door_open_01.wav.meta | 22 + .../metal_sliding_door_open_01a.wav | Bin 0 -> 51014 bytes .../metal_sliding_door_open_01a.wav.meta | 22 + Assets/Oculus/AudioManager/Scenes.meta | 9 + .../Oculus/AudioManager/Scenes/Scripts.meta | 9 + .../AudioManager/Scenes/Scripts/TestScript.cs | 31 + .../Scenes/Scripts/TestScript.cs.meta | 12 + Assets/Oculus/AudioManager/Scenes/Test.unity | 434 + .../AudioManager/Scenes/Test.unity.meta | 8 + Assets/Oculus/AudioManager/Scripts.meta | 9 + Assets/Oculus/AudioManager/Scripts/Audio.meta | 9 + .../Scripts/Audio/AmbienceEmitter.cs | 113 + .../Scripts/Audio/AmbienceEmitter.cs.meta | 12 + .../Scripts/Audio/AudioManager.cs | 425 + .../Scripts/Audio/AudioManager.cs.meta | 8 + .../Scripts/Audio/AudioManager_Sound.cs | 782 + .../Scripts/Audio/AudioManager_Sound.cs.meta | 8 + .../AudioManager/Scripts/Audio/Editor.meta | 5 + .../Audio/Editor/AudioImportPostProcessor.cs | 41 + .../Editor/AudioImportPostProcessor.cs.meta | 12 + .../Audio/Editor/AudioManagerInspector.cs | 626 + .../Editor/AudioManagerInspector.cs.meta | 8 + .../Audio/Editor/MinMaxPropertyDrawer.cs | 61 + .../Audio/Editor/MinMaxPropertyDrawer.cs.meta | 8 + .../Editor/MixerSnapshotPropertyDrawer.cs | 45 + .../MixerSnapshotPropertyDrawer.cs.meta | 12 + .../Audio/Editor/OSPPropsPropertyDrawer.cs | 62 + .../Editor/OSPPropsPropertyDrawer.cs.meta | 8 + .../Audio/Editor/SoundFXPropertyDrawer.cs | 63 + .../Editor/SoundFXPropertyDrawer.cs.meta | 12 + .../Audio/Editor/SoundFXRefPropertyDrawer.cs | 58 + .../Editor/SoundFXRefPropertyDrawer.cs.meta | 8 + .../Scripts/Audio/MinMaxAttribute.cs | 21 + .../Scripts/Audio/MinMaxAttribute.cs.meta | 8 + .../Scripts/Audio/SoundEmitter.cs | 428 + .../Scripts/Audio/SoundEmitter.cs.meta | 8 + .../AudioManager/Scripts/Audio/SoundFX.cs | 306 + .../Scripts/Audio/SoundFX.cs.meta | 8 + .../AudioManager/Scripts/Audio/SoundFXRef.cs | 139 + .../Scripts/Audio/SoundFXRef.cs.meta | 8 + Assets/Oculus/AudioManager/Scripts/Utils.meta | 9 + .../AudioManager/Scripts/Utils/Editor.meta | 9 + .../Utils/Editor/DrawerInspectorNote.cs | 77 + .../Utils/Editor/DrawerInspectorNote.cs.meta | 8 + .../AudioManager/Scripts/Utils/FastList.cs | 283 + .../Scripts/Utils/FastList.cs.meta | 12 + .../Scripts/Utils/InspectorNoteAttribute.cs | 35 + .../Utils/InspectorNoteAttribute.cs.meta | 8 + Assets/Oculus/Avatar.meta | 9 + Assets/Oculus/Avatar/Content.meta | 9 + Assets/Oculus/Avatar/Content/Materials.meta | 9 + .../Materials/AvatarMaterialStateShader.cginc | 318 + .../AvatarMaterialStateShader.cginc.meta | 9 + .../Materials/AvatarSurfaceShader.shader | 141 + .../Materials/AvatarSurfaceShader.shader.meta | 9 + .../Materials/AvatarSurfaceShaderPBS.shader | 79 + .../AvatarSurfaceShaderPBS.shader.meta | 9 + .../Materials/AvatarSurfaceShaderPBSV2.shader | 39 + .../AvatarSurfaceShaderPBSV2.shader.meta | 9 + .../AvatarSurfaceShaderSelfOccluding.shader | 175 + ...atarSurfaceShaderSelfOccluding.shader.meta | 9 + Assets/Oculus/Avatar/Content/Prefabs.meta | 9 + .../Avatar/Content/Prefabs/LocalAvatar.prefab | 793 + .../Content/Prefabs/LocalAvatar.prefab.meta | 8 + .../Content/Prefabs/RemoteAvatar.prefab | 2830 ++ .../Content/Prefabs/RemoteAvatar.prefab.meta | 8 + Assets/Oculus/Avatar/Content/Textures.meta | 9 + .../fallback_diffuse_roughness_1024.png | Bin 0 -> 7159 bytes .../fallback_diffuse_roughness_1024.png.meta | 59 + .../fallback_diffuse_roughness_2048.png | Bin 0 -> 18737 bytes .../fallback_diffuse_roughness_2048.png.meta | 59 + .../fallback_diffuse_roughness_256.png | Bin 0 -> 2707 bytes .../fallback_diffuse_roughness_256.png.meta | 68 + .../Content/Textures/fallback_normal_1024.tif | Bin 0 -> 805996 bytes .../Textures/fallback_normal_1024.tif.meta | 59 + .../Content/Textures/fallback_normal_2048.png | Bin 0 -> 28319 bytes .../Textures/fallback_normal_2048.png.meta | 59 + .../Content/Textures/fallback_normal_256.png | Bin 0 -> 5739 bytes .../Textures/fallback_normal_256.png.meta | 68 + Assets/Oculus/Avatar/Editor.meta | 9 + .../Avatar/Editor/AvatarMaterialEditor.cs | 633 + .../Editor/AvatarMaterialEditor.cs.meta | 12 + Assets/Oculus/Avatar/Plugins.meta | 9 + Assets/Oculus/Avatar/Plugins/Android32.meta | 9 + .../Plugins/Android32/libovravatarloader.so | Bin 0 -> 157844 bytes .../Android32/libovravatarloader.so.meta | 25 + Assets/Oculus/Avatar/Resources.meta | 9 + Assets/Oculus/Avatar/Resources/Materials.meta | 9 + .../Materials/AvatarMaterialStateShader.cginc | 318 + .../AvatarMaterialStateShader.cginc.meta | 9 + .../Materials/AvatarSurfaceShader.shader | 141 + .../Materials/AvatarSurfaceShader.shader.meta | 9 + .../Materials/AvatarSurfaceShaderPBS.shader | 79 + .../AvatarSurfaceShaderPBS.shader.meta | 9 + .../Materials/AvatarSurfaceShaderPBSV2.shader | 39 + .../AvatarSurfaceShaderPBSV2.shader.meta | 9 + .../AvatarSurfaceShaderSelfOccluding.shader | 175 + ...atarSurfaceShaderSelfOccluding.shader.meta | 9 + .../Resources/Materials/Version1.5.meta | 9 + .../Avatar_Mobile_CombinedMesh.shader | 217 + .../Avatar_Mobile_CombinedMesh.shader.meta | 9 + .../Version1.5/Avatar_Mobile_Loader.shader | 165 + .../Avatar_Mobile_Loader.shader.meta | 9 + .../Avatar_Mobile_SingleComponent.shader | 204 + .../Avatar_Mobile_SingleComponent.shader.meta | 9 + .../Avatar_PC_SingleComponent.shader | 108 + .../Avatar_PC_SingleComponent.shader.meta | 9 + Assets/Oculus/Avatar/Samples.meta | 9 + Assets/Oculus/Avatar/Samples/Controllers.meta | 9 + .../Samples/Controllers/Controllers.unity | 1194 + .../Controllers/Controllers.unity.meta | 8 + .../Oculus/Avatar/Samples/CrossPlatform.meta | 9 + .../Samples/CrossPlatform/CrossPlatform.unity | 1138 + .../CrossPlatform/CrossPlatform.unity.meta | 8 + .../Avatar/Samples/CrossPlatform/Readme.txt | 41 + .../Samples/CrossPlatform/Readme.txt.meta | 8 + Assets/Oculus/Avatar/Samples/GripPoses.meta | 9 + .../Avatar/Samples/GripPoses/GripPoses.unity | 2756 ++ .../Samples/GripPoses/GripPoses.unity.meta | 8 + .../Avatar/Samples/GripPoses/Scripts.meta | 9 + .../GripPoses/Scripts/PoseEditHelper.cs | 31 + .../GripPoses/Scripts/PoseEditHelper.cs.meta | 12 + Assets/Oculus/Avatar/Samples/LocalAvatar.meta | 9 + .../Samples/LocalAvatar/LocalAvatar.unity | 501 + .../LocalAvatar/LocalAvatar.unity.meta | 8 + .../Oculus/Avatar/Samples/RemoteLoopback.meta | 9 + .../RemoteLoopback/RemoteLoopback.unity | 2920 ++ .../RemoteLoopback/RemoteLoopback.unity.meta | 8 + .../Samples/RemoteLoopback/Scripts.meta | 9 + .../Scripts/RemoteLoopbackManager.cs | 155 + .../Scripts/RemoteLoopbackManager.cs.meta | 12 + .../Oculus/Avatar/Samples/SocialStarter.meta | 9 + .../Avatar/Samples/SocialStarter/Assets.meta | 9 + .../SocialStarter/Assets/MainScene.unity | 771 + .../SocialStarter/Assets/MainScene.unity.meta | 8 + .../SocialStarter/Assets/Materials.meta | 9 + .../Assets/Materials/GearHelp.mat | 127 + .../Assets/Materials/GearHelp.mat.meta | 8 + .../SocialStarter/Assets/Materials/Help.mat | 127 + .../Assets/Materials/Help.mat.meta | 8 + .../Assets/Materials/Offline_Mat.mat | 127 + .../Assets/Materials/Offline_Mat.mat.meta | 8 + .../Assets/Materials/Plane_Mat.mat | 127 + .../Assets/Materials/Plane_Mat.mat.meta | 8 + .../Samples/SocialStarter/Assets/Scripts.meta | 9 + .../Assets/Scripts/P2PManager.cs | 231 + .../Assets/Scripts/P2PManager.cs.meta | 13 + .../Assets/Scripts/PlayerController.cs | 101 + .../Assets/Scripts/PlayerController.cs.meta | 13 + .../Assets/Scripts/RemotePlayer.cs | 32 + .../Assets/Scripts/RemotePlayer.cs.meta | 13 + .../Assets/Scripts/RoomManager.cs | 225 + .../Assets/Scripts/RoomManager.cs.meta | 13 + .../Assets/Scripts/SocialPlatformManager.cs | 556 + .../Scripts/SocialPlatformManager.cs.meta | 12 + .../Assets/Scripts/VoipManager.cs | 72 + .../Assets/Scripts/VoipManager.cs.meta | 13 + .../SocialStarter/Assets/Textures.meta | 9 + .../Assets/Textures/GearHelp.png | Bin 0 -> 17859 bytes .../Assets/Textures/GearHelp.png.meta | 58 + .../SocialStarter/Assets/Textures/Help.png | Bin 0 -> 20360 bytes .../Assets/Textures/Help.png.meta | 58 + .../Avatar/Samples/SocialStarter/README.txt | 29 + .../Samples/SocialStarter/README.txt.meta | 8 + Assets/Oculus/Avatar/Scripts.meta | 9 + Assets/Oculus/Avatar/Scripts/OvrAvatar.cs | 946 + .../Oculus/Avatar/Scripts/OvrAvatar.cs.meta | 12 + .../Oculus/Avatar/Scripts/OvrAvatarAsset.cs | 5 + .../Avatar/Scripts/OvrAvatarAsset.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarAssetMesh.cs | 219 + .../Avatar/Scripts/OvrAvatarAssetMesh.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarAssetTexture.cs | 58 + .../Scripts/OvrAvatarAssetTexture.cs.meta | 12 + Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs | 8 + .../Avatar/Scripts/OvrAvatarBase.cs.meta | 12 + Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs | 11 + .../Avatar/Scripts/OvrAvatarBody.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarComponent.cs | 153 + .../Avatar/Scripts/OvrAvatarComponent.cs.meta | 12 + .../Oculus/Avatar/Scripts/OvrAvatarDriver.cs | 103 + .../Avatar/Scripts/OvrAvatarDriver.cs.meta | 12 + Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs | 8 + .../Avatar/Scripts/OvrAvatarHand.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarLocalDriver.cs | 108 + .../Scripts/OvrAvatarLocalDriver.cs.meta | 12 + .../Oculus/Avatar/Scripts/OvrAvatarLogger.cs | 38 + .../Avatar/Scripts/OvrAvatarLogger.cs.meta | 12 + .../Scripts/OvrAvatarMaterialManager.cs | 354 + .../Scripts/OvrAvatarMaterialManager.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarMeshInstance.cs | 180 + .../Scripts/OvrAvatarMeshInstance.cs.meta | 12 + .../Oculus/Avatar/Scripts/OvrAvatarPacket.cs | 231 + .../Avatar/Scripts/OvrAvatarPacket.cs.meta | 12 + .../OvrAvatarProjectorRenderComponent.cs | 65 + .../OvrAvatarProjectorRenderComponent.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarRemoteDriver.cs | 121 + .../Scripts/OvrAvatarRemoteDriver.cs.meta | 12 + .../Scripts/OvrAvatarRenderComponent.cs | 109 + .../Scripts/OvrAvatarRenderComponent.cs.meta | 12 + .../Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs | 1059 + .../Avatar/Scripts/OvrAvatarSDKCAPI.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarSDKManager.cs | 243 + .../Scripts/OvrAvatarSDKManager.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarSettings.cs | 65 + .../Avatar/Scripts/OvrAvatarSettings.cs.meta | 12 + .../Avatar/Scripts/OvrAvatarSettingsEditor.cs | 44 + .../Scripts/OvrAvatarSettingsEditor.cs.meta | 12 + .../OvrAvatarSkinnedMeshRenderComponent.cs | 50 + ...vrAvatarSkinnedMeshRenderComponent.cs.meta | 12 + .../OvrAvatarSkinnedMeshRenderPBSComponent.cs | 30 + ...vatarSkinnedMeshRenderPBSComponent.cs.meta | 12 + ...vrAvatarSkinnedMeshRenderPBSV2Component.cs | 189 + ...tarSkinnedMeshRenderPBSV2Component.cs.meta | 12 + .../Scripts/OvrAvatarTextureCopyManager.cs | 130 + .../OvrAvatarTextureCopyManager.cs.meta | 12 + .../Scripts/OvrAvatarTouchController.cs | 7 + .../Scripts/OvrAvatarTouchController.cs.meta | 12 + Assets/Oculus/LipSync.meta | 9 + Assets/Oculus/LipSync/Audio.meta | 9 + Assets/Oculus/LipSync/Audio/vox_lp_01.wav | Bin 0 -> 3551236 bytes .../Oculus/LipSync/Audio/vox_lp_01.wav.meta | 24 + .../LipSync/Audio/vox_lp_01_lipSync.asset | 32885 ++++++++++++++++ .../Audio/vox_lp_01_lipSync.asset.meta | 9 + Assets/Oculus/LipSync/Editor.meta | 9 + .../Oculus/LipSync/Editor/OVRLipSyncTool.cs | 141 + .../LipSync/Editor/OVRLipSyncTool.cs.meta | 12 + .../Editor/OVRNamedArrayPropertyDrawer.cs | 38 + .../OVRNamedArrayPropertyDrawer.cs.meta | 12 + Assets/Oculus/LipSync/Models.meta | 9 + Assets/Oculus/LipSync/Models/Lips.meta | 9 + Assets/Oculus/LipSync/Models/Lips/Lips.prefab | 171 + .../LipSync/Models/Lips/Lips.prefab.meta | 8 + Assets/Oculus/LipSync/Models/Lips/Source.meta | 9 + .../Models/Lips/Source/Lips [Albedo].tga | Bin 0 -> 4194348 bytes .../Models/Lips/Source/Lips [Albedo].tga.meta | 56 + .../Models/Lips/Source/Lips [Emission].tga | Bin 0 -> 3145772 bytes .../Lips/Source/Lips [Emission].tga.meta | 56 + .../Models/Lips/Source/Lips [Normal].tga | Bin 0 -> 3145772 bytes .../Models/Lips/Source/Lips [Normal].tga.meta | 56 + .../Models/Lips/Source/Lips [Specular].tga | Bin 0 -> 4194348 bytes .../Lips/Source/Lips [Specular].tga.meta | 56 + .../LipSync/Models/Lips/Source/Lips.FBX | Bin 0 -> 208304 bytes .../LipSync/Models/Lips/Source/Lips.FBX.meta | 89 + .../LipSync/Models/Lips/Source/Materials.meta | 9 + .../Models/Lips/Source/Materials/Lips.mat | 149 + .../Lips/Source/Materials/Lips.mat.meta | 8 + .../Lips/Source/Materials/Lips_Alpha.mat | 150 + .../Lips/Source/Materials/Lips_Alpha.mat.meta | 8 + .../LipSync/Models/RobotHead_TextureFlip.meta | 9 + .../Models/RobotHead_TextureFlip/CH.png | Bin 0 -> 25451 bytes .../Models/RobotHead_TextureFlip/CH.png.meta | 56 + .../Models/RobotHead_TextureFlip/DD.png | Bin 0 -> 33552 bytes .../Models/RobotHead_TextureFlip/DD.png.meta | 56 + .../Models/RobotHead_TextureFlip/E.png | Bin 0 -> 35533 bytes .../Models/RobotHead_TextureFlip/E.png.meta | 56 + .../Models/RobotHead_TextureFlip/FF.png | Bin 0 -> 29052 bytes .../Models/RobotHead_TextureFlip/FF.png.meta | 56 + .../Models/RobotHead_TextureFlip/Head-2.png | Bin 0 -> 929032 bytes .../RobotHead_TextureFlip/Head-2.png.meta | 56 + .../RobotHead_TextureFlip/Materials.meta | 9 + .../Materials/Head-2.mat | 138 + .../Materials/Head-2.mat.meta | 8 + .../RobotHead_TextureFlip/Materials/sil.mat | 77 + .../Materials/sil.mat.meta | 8 + .../Models/RobotHead_TextureFlip/PP.png | Bin 0 -> 23424 bytes .../Models/RobotHead_TextureFlip/PP.png.meta | 56 + .../Models/RobotHead_TextureFlip/RR.png | Bin 0 -> 30364 bytes .../Models/RobotHead_TextureFlip/RR.png.meta | 56 + .../RobotHead_TextureFlip.FBX | Bin 0 -> 412016 bytes .../RobotHead_TextureFlip.FBX.meta | 118 + .../Models/RobotHead_TextureFlip/SS.png | Bin 0 -> 31078 bytes .../Models/RobotHead_TextureFlip/SS.png.meta | 56 + .../Models/RobotHead_TextureFlip/TH.png | Bin 0 -> 30408 bytes .../Models/RobotHead_TextureFlip/TH.png.meta | 56 + .../Models/RobotHead_TextureFlip/aa.png | Bin 0 -> 36059 bytes .../Models/RobotHead_TextureFlip/aa.png.meta | 56 + .../Models/RobotHead_TextureFlip/ih.png | Bin 0 -> 34404 bytes .../Models/RobotHead_TextureFlip/ih.png.meta | 56 + .../Models/RobotHead_TextureFlip/kk.png | Bin 0 -> 25451 bytes .../Models/RobotHead_TextureFlip/kk.png.meta | 56 + .../Models/RobotHead_TextureFlip/nn.png | Bin 0 -> 28771 bytes .../Models/RobotHead_TextureFlip/nn.png.meta | 56 + .../Models/RobotHead_TextureFlip/oh.png | Bin 0 -> 24218 bytes .../Models/RobotHead_TextureFlip/oh.png.meta | 56 + .../Models/RobotHead_TextureFlip/ou.png | Bin 0 -> 23355 bytes .../Models/RobotHead_TextureFlip/ou.png.meta | 56 + .../Models/RobotHead_TextureFlip/sil.png | Bin 0 -> 32716 bytes .../Models/RobotHead_TextureFlip/sil.png.meta | 56 + Assets/Oculus/LipSync/Plugins.meta | 7 + Assets/Oculus/LipSync/Plugins/Android32.meta | 9 + .../Plugins/Android32/libOVRLipSync.so | Bin 0 -> 26078528 bytes .../Plugins/Android32/libOVRLipSync.so.meta | 96 + Assets/Oculus/LipSync/Plugins/Android64.meta | 9 + .../Plugins/Android64/libOVRLipSync.so | Bin 0 -> 36160464 bytes .../Plugins/Android64/libOVRLipSync.so.meta | 96 + Assets/Oculus/LipSync/Plugins/MacOSX.meta | 9 + .../LipSync/Plugins/MacOSX/OVRLipSync.bundle | Bin 0 -> 19901124 bytes .../Plugins/MacOSX/OVRLipSync.bundle.meta | 130 + Assets/Oculus/LipSync/Plugins/Win64.meta | 9 + .../LipSync/Plugins/Win64/OVRLipSync.dll | Bin 0 -> 15172608 bytes .../LipSync/Plugins/Win64/OVRLipSync.dll.meta | 114 + Assets/Oculus/LipSync/Prefabs.meta | 9 + .../Prefabs/LipSyncDebugConsole.prefab | 231 + .../Prefabs/LipSyncDebugConsole.prefab.meta | 9 + .../LipSync/Prefabs/LipSyncInterface.prefab | 52 + .../Prefabs/LipSyncInterface.prefab.meta | 8 + .../Prefabs/LipSyncMorphTarget_Lips.prefab | 319 + .../LipSyncMorphTarget_Lips.prefab.meta | 8 + .../LipSyncTextureFlipTarget_Robot.prefab | 865 + ...LipSyncTextureFlipTarget_Robot.prefab.meta | 9 + Assets/Oculus/LipSync/Scenes.meta | 9 + .../Oculus/LipSync/Scenes/LipSync_Demo.unity | 3849 ++ .../LipSync/Scenes/LipSync_Demo.unity.meta | 8 + Assets/Oculus/LipSync/Scenes/Scripts.meta | 9 + .../LipSync/Scenes/Scripts/EnableSwitch.cs | 60 + .../Scenes/Scripts/EnableSwitch.cs.meta | 12 + .../Scenes/Scripts/LipSyncDemo_Control.cs | 88 + .../Scripts/LipSyncDemo_Control.cs.meta | 12 + .../Scripts/LipSyncDemo_SetCurrentTarget.cs | 149 + .../LipSyncDemo_SetCurrentTarget.cs.meta | 12 + Assets/Oculus/LipSync/Scripts.meta | 9 + Assets/Oculus/LipSync/Scripts/Helpers.meta | 9 + .../Scripts/Helpers/OVRLipSyncDebugConsole.cs | 224 + .../Helpers/OVRLipSyncDebugConsole.cs.meta | 12 + .../Scripts/Helpers/OVRNamedArrayAttribute.cs | 29 + .../Helpers/OVRNamedArrayAttribute.cs.meta | 12 + .../LipSync/Scripts/Helpers/OVRTouchpad.cs | 201 + .../Scripts/Helpers/OVRTouchpad.cs.meta | 13 + Assets/Oculus/LipSync/Scripts/OVRLipSync.cs | 377 + .../Oculus/LipSync/Scripts/OVRLipSync.cs.meta | 13 + .../LipSync/Scripts/OVRLipSyncContext.cs | 341 + .../LipSync/Scripts/OVRLipSyncContext.cs.meta | 13 + .../LipSync/Scripts/OVRLipSyncContextBase.cs | 208 + .../Scripts/OVRLipSyncContextBase.cs.meta | 12 + .../Scripts/OVRLipSyncContextCanned.cs | 51 + .../Scripts/OVRLipSyncContextCanned.cs.meta | 12 + .../Scripts/OVRLipSyncContextMorphTarget.cs | 229 + .../OVRLipSyncContextMorphTarget.cs.meta | 12 + .../Scripts/OVRLipSyncContextTextureFlip.cs | 150 + .../OVRLipSyncContextTextureFlip.cs.meta | 12 + .../LipSync/Scripts/OVRLipSyncMicInput.cs | 350 + .../Scripts/OVRLipSyncMicInput.cs.meta | 13 + .../LipSync/Scripts/OVRLipSyncSequence.cs | 132 + .../Scripts/OVRLipSyncSequence.cs.meta | 12 + Assets/Oculus/Platform.meta | 9 + Assets/Oculus/Platform/Editor.meta | 9 + Assets/Oculus/Platform/Editor/GUIHelper.cs | 45 + .../Oculus/Platform/Editor/GUIHelper.cs.meta | 12 + .../Editor/OculusPlatformSettingsEditor.cs | 251 + .../OculusPlatformSettingsEditor.cs.meta | 12 + .../OculusStandalonePlatformResponse.cs | 10 + .../OculusStandalonePlatformResponse.cs.meta | 12 + Assets/Oculus/Platform/Plugins.meta | 9 + Assets/Oculus/Platform/Plugins/Android32.meta | 9 + .../Plugins/Android32/libovrplatformloader.so | Bin 0 -> 628092 bytes .../Android32/libovrplatformloader.so.meta | 34 + Assets/Oculus/Platform/Plugins/MacOSX.meta | 9 + .../Plugins/MacOSX/ovrplatform.bundle.meta | 109 + .../MacOSX/ovrplatform.bundle/Contents.meta | 9 + .../ovrplatform.bundle/Contents/Info.plist | Bin 0 -> 791 bytes .../Contents/Info.plist.meta | 8 + .../ovrplatform.bundle/Contents/MacOS.meta | 9 + .../Contents/MacOS/ovrplatform | Bin 0 -> 10069056 bytes .../Contents/MacOS/ovrplatform.meta | 8 + .../ovrplatform.bundle/Contents/PkgInfo | 1 + .../ovrplatform.bundle/Contents/PkgInfo.meta | 8 + .../Contents/Resources.meta | 9 + .../Contents/Resources/darwin-x86_64.meta | 9 + .../darwin-x86_64/liboculus_p2p.dylib | Bin 0 -> 12153700 bytes .../darwin-x86_64/liboculus_p2p.dylib.meta | 8 + .../Contents/_CodeSignature.meta | 9 + .../Contents/_CodeSignature/CodeResources | 128 + .../_CodeSignature/CodeResources.meta | 8 + Assets/Oculus/Platform/Scripts.meta | 9 + .../Platform/Scripts/AbuseReportOptions.cs | 37 + .../Scripts/AbuseReportOptions.cs.meta | 12 + .../Platform/Scripts/AbuseReportType.cs | 21 + .../Platform/Scripts/AbuseReportType.cs.meta | 12 + .../Platform/Scripts/AchievementType.cs | 24 + .../Platform/Scripts/AchievementType.cs.meta | 12 + .../Platform/Scripts/AndroidPlatform.cs | 35 + .../Platform/Scripts/AndroidPlatform.cs.meta | 12 + .../Platform/Scripts/ApplicationOptions.cs | 33 + .../Scripts/ApplicationOptions.cs.meta | 12 + .../Platform/Scripts/BufferedAudioStream.cs | 126 + .../Scripts/BufferedAudioStream.cs.meta | 12 + Assets/Oculus/Platform/Scripts/CAPI.cs | 2930 ++ Assets/Oculus/Platform/Scripts/CAPI.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Callback.cs | 164 + .../Oculus/Platform/Scripts/Callback.cs.meta | 12 + .../Oculus/Platform/Scripts/CallbackRunner.cs | 38 + .../Platform/Scripts/CallbackRunner.cs.meta | 12 + .../Scripts/CloudStorageDataStatus.cs | 33 + .../Scripts/CloudStorageDataStatus.cs.meta | 12 + .../Scripts/CloudStorageUpdateStatus.cs | 24 + .../Scripts/CloudStorageUpdateStatus.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Decoder.cs | 45 + .../Oculus/Platform/Scripts/Decoder.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Encoder.cs | 45 + .../Oculus/Platform/Scripts/Encoder.cs.meta | 12 + Assets/Oculus/Platform/Scripts/IMicrophone.cs | 15 + .../Platform/Scripts/IMicrophone.cs.meta | 12 + .../Oculus/Platform/Scripts/IVoipPCMSource.cs | 13 + .../Platform/Scripts/IVoipPCMSource.cs.meta | 12 + .../Platform/Scripts/KeyValuePairType.cs | 24 + .../Platform/Scripts/KeyValuePairType.cs.meta | 12 + Assets/Oculus/Platform/Scripts/LaunchType.cs | 27 + .../Platform/Scripts/LaunchType.cs.meta | 12 + .../Platform/Scripts/LeaderboardFilterType.cs | 21 + .../Scripts/LeaderboardFilterType.cs.meta | 12 + .../Platform/Scripts/LeaderboardStartAt.cs | 24 + .../Scripts/LeaderboardStartAt.cs.meta | 12 + .../Platform/Scripts/LivestreamingAudience.cs | 24 + .../Scripts/LivestreamingAudience.cs.meta | 12 + .../Scripts/LivestreamingMicrophoneStatus.cs | 21 + .../LivestreamingMicrophoneStatus.cs.meta | 12 + .../Scripts/LivestreamingStartStatus.cs | 30 + .../Scripts/LivestreamingStartStatus.cs.meta | 12 + .../Scripts/MatchmakingCriterionImportance.cs | 27 + .../MatchmakingCriterionImportance.cs.meta | 12 + .../Platform/Scripts/MatchmakingOptions.cs | 77 + .../Scripts/MatchmakingOptions.cs.meta | 12 + .../Scripts/MatchmakingStatApproach.cs | 21 + .../Scripts/MatchmakingStatApproach.cs.meta | 12 + .../Platform/Scripts/MediaContentType.cs | 18 + .../Platform/Scripts/MediaContentType.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Message.cs | 1388 + .../Oculus/Platform/Scripts/Message.cs.meta | 12 + .../Platform/Scripts/MicrophoneInput.cs | 62 + .../Platform/Scripts/MicrophoneInput.cs.meta | 12 + .../Platform/Scripts/MicrophoneInputNative.cs | 50 + .../Scripts/MicrophoneInputNative.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Models.meta | 9 + .../Scripts/Models/AbuseReportRecording.cs | 22 + .../Models/AbuseReportRecording.cs.meta | 12 + .../Scripts/Models/AchievementDefinition.cs | 40 + .../Models/AchievementDefinition.cs.meta | 12 + .../Scripts/Models/AchievementProgress.cs | 42 + .../Models/AchievementProgress.cs.meta | 12 + .../Scripts/Models/AchievementUpdate.cs | 24 + .../Scripts/Models/AchievementUpdate.cs.meta | 12 + .../Scripts/Models/ApplicationVersion.cs | 28 + .../Scripts/Models/ApplicationVersion.cs.meta | 12 + .../Platform/Scripts/Models/AssetDetails.cs | 56 + .../Scripts/Models/AssetDetails.cs.meta | 12 + .../Scripts/Models/AssetFileDeleteResult.cs | 28 + .../Models/AssetFileDeleteResult.cs.meta | 12 + .../Models/AssetFileDownloadCancelResult.cs | 28 + .../AssetFileDownloadCancelResult.cs.meta | 12 + .../Scripts/Models/AssetFileDownloadResult.cs | 24 + .../Models/AssetFileDownloadResult.cs.meta | 12 + .../Scripts/Models/AssetFileDownloadUpdate.cs | 30 + .../Models/AssetFileDownloadUpdate.cs.meta | 12 + .../Models/CloudStorageConflictMetadata.cs | 24 + .../CloudStorageConflictMetadata.cs.meta | 12 + .../Scripts/Models/CloudStorageData.cs | 28 + .../Scripts/Models/CloudStorageData.cs.meta | 12 + .../Scripts/Models/CloudStorageMetadata.cs | 48 + .../Models/CloudStorageMetadata.cs.meta | 12 + .../Models/CloudStorageUpdateResponse.cs | 28 + .../Models/CloudStorageUpdateResponse.cs.meta | 12 + .../Scripts/Models/DeserializeableList.cs | 54 + .../Models/DeserializeableList.cs.meta | 12 + .../Oculus/Platform/Scripts/Models/Error.cs | 21 + .../Platform/Scripts/Models/Error.cs.meta | 12 + .../Scripts/Models/HttpTransferUpdate.cs | 28 + .../Scripts/Models/HttpTransferUpdate.cs.meta | 12 + .../Scripts/Models/InstalledApplication.cs | 41 + .../Models/InstalledApplication.cs.meta | 12 + .../Scripts/Models/LanguagePackInfo.cs | 26 + .../Scripts/Models/LanguagePackInfo.cs.meta | 12 + .../Scripts/Models/LaunchBlockFlowResult.cs | 24 + .../Models/LaunchBlockFlowResult.cs.meta | 12 + .../Platform/Scripts/Models/LaunchDetails.cs | 43 + .../Scripts/Models/LaunchDetails.cs.meta | 12 + .../Models/LaunchFriendRequestFlowResult.cs | 24 + .../LaunchFriendRequestFlowResult.cs.meta | 12 + .../Scripts/Models/LaunchUnblockFlowResult.cs | 24 + .../Models/LaunchUnblockFlowResult.cs.meta | 12 + .../Scripts/Models/LeaderboardEntry.cs | 45 + .../Scripts/Models/LeaderboardEntry.cs.meta | 12 + .../Platform/Scripts/Models/LinkedAccount.cs | 37 + .../Scripts/Models/LinkedAccount.cs.meta | 12 + .../Models/LivestreamingApplicationStatus.cs | 22 + .../LivestreamingApplicationStatus.cs.meta | 12 + .../Models/LivestreamingStartResult.cs | 22 + .../Models/LivestreamingStartResult.cs.meta | 12 + .../Scripts/Models/LivestreamingStatus.cs | 30 + .../Models/LivestreamingStatus.cs.meta | 12 + .../Scripts/Models/LivestreamingVideoStats.cs | 26 + .../Models/LivestreamingVideoStats.cs.meta | 12 + .../Models/MatchmakingAdminSnapshot.cs | 24 + .../Models/MatchmakingAdminSnapshot.cs.meta | 12 + .../MatchmakingAdminSnapshotCandidate.cs | 41 + .../MatchmakingAdminSnapshotCandidate.cs.meta | 12 + .../Scripts/Models/MatchmakingBrowseResult.cs | 24 + .../Models/MatchmakingBrowseResult.cs.meta | 12 + .../Models/MatchmakingEnqueueResult.cs | 47 + .../Models/MatchmakingEnqueueResult.cs.meta | 12 + .../Models/MatchmakingEnqueueResultAndRoom.cs | 24 + .../MatchmakingEnqueueResultAndRoom.cs.meta | 12 + .../Scripts/Models/MatchmakingEnqueuedUser.cs | 48 + .../Models/MatchmakingEnqueuedUser.cs.meta | 12 + .../Scripts/Models/MatchmakingStats.cs | 28 + .../Scripts/Models/MatchmakingStats.cs.meta | 12 + .../Platform/Scripts/Models/NetworkingPeer.cs | 17 + .../Scripts/Models/NetworkingPeer.cs.meta | 12 + .../Platform/Scripts/Models/OrgScopedID.cs | 22 + .../Scripts/Models/OrgScopedID.cs.meta | 12 + .../Oculus/Platform/Scripts/Models/Party.cs | 76 + .../Platform/Scripts/Models/Party.cs.meta | 12 + .../Oculus/Platform/Scripts/Models/PartyID.cs | 22 + .../Platform/Scripts/Models/PartyID.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Models/Pid.cs | 33 + .../Platform/Scripts/Models/Pid.cs.meta | 12 + .../Platform/Scripts/Models/PingResult.cs | 28 + .../Scripts/Models/PingResult.cs.meta | 12 + .../Scripts/Models/PlatformInitialize.cs | 22 + .../Scripts/Models/PlatformInitialize.cs.meta | 12 + .../Oculus/Platform/Scripts/Models/Product.cs | 40 + .../Platform/Scripts/Models/Product.cs.meta | 12 + .../Platform/Scripts/Models/Purchase.cs | 40 + .../Platform/Scripts/Models/Purchase.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Models/Room.cs | 108 + .../Platform/Scripts/Models/Room.cs.meta | 12 + .../Scripts/Models/RoomInviteNotification.cs | 40 + .../Models/RoomInviteNotification.cs.meta | 12 + .../Platform/Scripts/Models/SdkAccount.cs | 35 + .../Scripts/Models/SdkAccount.cs.meta | 12 + .../Scripts/Models/ShareMediaResult.cs | 22 + .../Scripts/Models/ShareMediaResult.cs.meta | 12 + .../Scripts/Models/SystemPermission.cs | 24 + .../Scripts/Models/SystemPermission.cs.meta | 12 + .../Scripts/Models/SystemVoipState.cs | 24 + .../Scripts/Models/SystemVoipState.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Models/User.cs | 46 + .../Platform/Scripts/Models/User.cs.meta | 12 + .../Platform/Scripts/Models/UserAndRoom.cs | 49 + .../Scripts/Models/UserAndRoom.cs.meta | 12 + .../Platform/Scripts/Models/UserProof.cs | 22 + .../Platform/Scripts/Models/UserProof.cs.meta | 12 + .../Platform/Scripts/Models/UserReportID.cs | 24 + .../Scripts/Models/UserReportID.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Packet.cs | 63 + Assets/Oculus/Platform/Scripts/Packet.cs.meta | 12 + .../Platform/Scripts/PeerConnectionState.cs | 31 + .../Scripts/PeerConnectionState.cs.meta | 12 + .../Platform/Scripts/PermissionGrantStatus.cs | 24 + .../Scripts/PermissionGrantStatus.cs.meta | 12 + .../Oculus/Platform/Scripts/PermissionType.cs | 21 + .../Platform/Scripts/PermissionType.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Platform.cs | 2396 ++ .../Oculus/Platform/Scripts/Platform.cs.meta | 12 + .../Scripts/PlatformInitializeResult.cs | 42 + .../Scripts/PlatformInitializeResult.cs.meta | 12 + .../Platform/Scripts/PlatformInternal.cs | 176 + .../Platform/Scripts/PlatformInternal.cs.meta | 12 + .../Platform/Scripts/PlatformSettings.cs | 84 + .../Platform/Scripts/PlatformSettings.cs.meta | 12 + Assets/Oculus/Platform/Scripts/Request.cs | 43 + .../Oculus/Platform/Scripts/Request.cs.meta | 12 + .../Oculus/Platform/Scripts/RoomJoinPolicy.cs | 30 + .../Platform/Scripts/RoomJoinPolicy.cs.meta | 12 + .../Platform/Scripts/RoomJoinability.cs | 33 + .../Platform/Scripts/RoomJoinability.cs.meta | 12 + .../Scripts/RoomMembershipLockStatus.cs | 21 + .../Scripts/RoomMembershipLockStatus.cs.meta | 12 + Assets/Oculus/Platform/Scripts/RoomOptions.cs | 61 + .../Platform/Scripts/RoomOptions.cs.meta | 12 + Assets/Oculus/Platform/Scripts/RoomType.cs | 27 + .../Oculus/Platform/Scripts/RoomType.cs.meta | 12 + .../Oculus/Platform/Scripts/SdkAccountType.cs | 21 + .../Platform/Scripts/SdkAccountType.cs.meta | 12 + Assets/Oculus/Platform/Scripts/SendPolicy.cs | 31 + .../Platform/Scripts/SendPolicy.cs.meta | 12 + .../Platform/Scripts/ServiceProvider.cs | 30 + .../Platform/Scripts/ServiceProvider.cs.meta | 12 + .../Platform/Scripts/ShareMediaStatus.cs | 21 + .../Platform/Scripts/ShareMediaStatus.cs.meta | 12 + .../Platform/Scripts/StandalonePlatform.cs | 40 + .../Scripts/StandalonePlatform.cs.meta | 12 + .../Scripts/StandalonePlatformSettings.cs | 77 + .../StandalonePlatformSettings.cs.meta | 12 + .../Platform/Scripts/SystemVoipStatus.cs | 24 + .../Platform/Scripts/SystemVoipStatus.cs.meta | 12 + Assets/Oculus/Platform/Scripts/TimeWindow.cs | 30 + .../Platform/Scripts/TimeWindow.cs.meta | 12 + Assets/Oculus/Platform/Scripts/UserOptions.cs | 45 + .../Platform/Scripts/UserOptions.cs.meta | 12 + .../Oculus/Platform/Scripts/UserOrdering.cs | 24 + .../Platform/Scripts/UserOrdering.cs.meta | 12 + .../Platform/Scripts/UserPresenceStatus.cs | 21 + .../Scripts/UserPresenceStatus.cs.meta | 12 + .../Platform/Scripts/VoipAudioSource.cs | 59 + .../Platform/Scripts/VoipAudioSource.cs.meta | 12 + .../Scripts/VoipAudioSourceHiLevel.cs | 152 + .../Scripts/VoipAudioSourceHiLevel.cs.meta | 12 + Assets/Oculus/Platform/Scripts/VoipBitrate.cs | 43 + .../Platform/Scripts/VoipBitrate.cs.meta | 12 + .../Oculus/Platform/Scripts/VoipDtxState.cs | 21 + .../Platform/Scripts/VoipDtxState.cs.meta | 12 + Assets/Oculus/Platform/Scripts/VoipInput.cs | 84 + .../Oculus/Platform/Scripts/VoipInput.cs.meta | 12 + .../Oculus/Platform/Scripts/VoipMuteState.cs | 21 + .../Platform/Scripts/VoipMuteState.cs.meta | 12 + Assets/Oculus/Platform/Scripts/VoipOptions.cs | 37 + .../Platform/Scripts/VoipOptions.cs.meta | 12 + .../Platform/Scripts/VoipPCMSourceNative.cs | 27 + .../Scripts/VoipPCMSourceNative.cs.meta | 12 + .../Oculus/Platform/Scripts/VoipSampleRate.cs | 24 + .../Platform/Scripts/VoipSampleRate.cs.meta | 12 + .../Platform/Scripts/WindowsPlatform.cs | 46 + .../Platform/Scripts/WindowsPlatform.cs.meta | 12 + Assets/Oculus/Spatializer.meta | 3 +- Assets/Oculus/Spatializer/Editor.meta | 7 + .../Editor/ONSPAudioSourceEditor.cs | 118 + .../Editor/ONSPAudioSourceEditor.cs.meta | 12 + .../Editor/ONSPReflectionCustomGUI.cs | 99 + .../Editor/ONSPReflectionCustomGUI.cs.meta | 12 + .../Oculus/Spatializer/Plugins/Android.meta | 9 + .../libAudioPluginOculusSpatializer.so | Bin 0 -> 9691096 bytes .../libAudioPluginOculusSpatializer.so.meta | 34 + .../AudioPluginOculusSpatializer.bundle.meta | 109 + .../Contents.meta | 9 + .../Contents/Info.plist | 36 + .../Contents/Info.plist.meta | 8 + .../Contents/MacOS.meta | 9 + .../MacOS/AudioPluginOculusSpatializer | Bin 0 -> 16520920 bytes .../MacOS/AudioPluginOculusSpatializer.meta | 8 + Assets/Oculus/Spatializer/Plugins/x86.meta | 9 + .../x86/AudioPluginOculusSpatializer.dll | Bin 0 -> 6084608 bytes .../x86/AudioPluginOculusSpatializer.dll.meta | 164 + Assets/Oculus/VoiceMod.meta | 9 + Assets/Oculus/VoiceMod/Audio.meta | 9 + Assets/Oculus/VoiceMod/Audio/vox_lp_01.wav | Bin 0 -> 4056028 bytes .../Oculus/VoiceMod/Audio/vox_lp_01.wav.meta | 22 + Assets/Oculus/VoiceMod/Plugins.meta | 9 + Assets/Oculus/VoiceMod/Plugins/Android32.meta | 9 + .../Plugins/Android32/libOVRVoiceMod.so | Bin 0 -> 1156780 bytes .../Plugins/Android32/libOVRVoiceMod.so.meta | 34 + Assets/Oculus/VoiceMod/Plugins/MacOSX.meta | 9 + .../Plugins/MacOSX/OVRVoiceMod.bundle.meta | 109 + .../MacOSX/OVRVoiceMod.bundle/Contents.meta | 9 + .../OVRVoiceMod.bundle/Contents/Info.plist | 36 + .../Contents/Info.plist.meta | 8 + .../OVRVoiceMod.bundle/Contents/MacOS.meta | 9 + .../Contents/MacOS/OVRVoiceMod | Bin 0 -> 132220 bytes .../Contents/MacOS/OVRVoiceMod.meta | 8 + Assets/Oculus/VoiceMod/Plugins/Win32.meta | 9 + .../VoiceMod/Plugins/Win32/OVRVoiceMod.dll | Bin 0 -> 644008 bytes .../Plugins/Win32/OVRVoiceMod.dll.meta | 130 + Assets/Oculus/VoiceMod/Plugins/Win64.meta | 9 + .../VoiceMod/Plugins/Win64/OVRVoiceMod.dll | Bin 0 -> 846248 bytes .../Plugins/Win64/OVRVoiceMod.dll.meta | 130 + Assets/Oculus/VoiceMod/Prefabs.meta | 9 + .../Prefabs/OVRCameraWithDebug.prefab | 332 + .../Prefabs/OVRCameraWithDebug.prefab.meta | 8 + .../VoiceMod/Prefabs/OVRDebugConsole.prefab | 54 + .../Prefabs/OVRDebugConsole.prefab.meta | 8 + .../Prefabs/OVRDebugConsoleOutput.prefab | 211 + .../Prefabs/OVRDebugConsoleOutput.prefab.meta | 8 + .../Prefabs/OVRVoiceModInterface.prefab | 52 + .../Prefabs/OVRVoiceModInterface.prefab.meta | 8 + Assets/Oculus/VoiceMod/Scenes.meta | 9 + Assets/Oculus/VoiceMod/Scenes/Materials.meta | 9 + .../VoiceMod/Scenes/Materials/Color.mat | 138 + .../VoiceMod/Scenes/Materials/Color.mat.meta | 8 + Assets/Oculus/VoiceMod/Scenes/Scripts.meta | 9 + .../Scenes/Scripts/VoiceModDemo_Logic.cs | 254 + .../Scenes/Scripts/VoiceModDemo_Logic.cs.meta | 12 + .../VoiceMod/Scenes/VoiceMod_Demo.unity | 740 + .../VoiceMod/Scenes/VoiceMod_Demo.unity.meta | 8 + Assets/Oculus/VoiceMod/Scripts.meta | 9 + Assets/Oculus/VoiceMod/Scripts/Helpers.meta | 9 + .../Scripts/Helpers/OVRDebugConsole.cs | 223 + .../Scripts/Helpers/OVRDebugConsole.cs.meta | 12 + .../VoiceMod/Scripts/Helpers/OVRMessenger.cs | 470 + .../Scripts/Helpers/OVRMessenger.cs.meta | 12 + .../VoiceMod/Scripts/Helpers/OVRMicInput.cs | 297 + .../Scripts/Helpers/OVRMicInput.cs.meta | 12 + Assets/Oculus/VoiceMod/Scripts/OVRVoiceMod.cs | 263 + .../VoiceMod/Scripts/OVRVoiceMod.cs.meta | 12 + .../VoiceMod/Scripts/OVRVoiceModContext.cs | 517 + .../Scripts/OVRVoiceModContext.cs.meta | 12 + Assets/Scenes/Experiment-Cardboard.unity | 1501 +- Assets/Scenes/Experiment-Oculus.unity | 1676 +- Assets/Scenes/Home-Cardboard.unity | 13 +- Assets/Scripts/ExperimentController.cs | 20 +- ProjectSettings/EditorBuildSettings.asset | 8 +- 701 files changed, 92677 insertions(+), 2218 deletions(-) create mode 100644 Assets/FittsLawVR/Prefabs/Canvas.prefab create mode 100644 Assets/FittsLawVR/Prefabs/Canvas.prefab.meta create mode 100644 Assets/Oculus/AudioManager.meta create mode 100644 Assets/Oculus/AudioManager/Audio.meta create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds.meta create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav.meta create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav.meta create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav.meta create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav create mode 100644 Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav.meta create mode 100644 Assets/Oculus/AudioManager/Scenes.meta create mode 100644 Assets/Oculus/AudioManager/Scenes/Scripts.meta create mode 100644 Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs create mode 100644 Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scenes/Test.unity create mode 100644 Assets/Oculus/AudioManager/Scenes/Test.unity.meta create mode 100644 Assets/Oculus/AudioManager/Scripts.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils/Editor.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs.meta create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs create mode 100644 Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs.meta create mode 100644 Assets/Oculus/Avatar.meta create mode 100644 Assets/Oculus/Avatar/Content.meta create mode 100644 Assets/Oculus/Avatar/Content/Materials.meta create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc.meta create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader.meta create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader.meta create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader.meta create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader create mode 100644 Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta create mode 100644 Assets/Oculus/Avatar/Content/Prefabs.meta create mode 100644 Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab create mode 100644 Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab.meta create mode 100644 Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab create mode 100644 Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab.meta create mode 100644 Assets/Oculus/Avatar/Content/Textures.meta create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png.meta create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_2048.png.meta create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png.meta create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif.meta create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_normal_2048.png.meta create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png create mode 100644 Assets/Oculus/Avatar/Content/Textures/fallback_normal_256.png.meta create mode 100644 Assets/Oculus/Avatar/Editor.meta create mode 100644 Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs create mode 100644 Assets/Oculus/Avatar/Editor/AvatarMaterialEditor.cs.meta create mode 100644 Assets/Oculus/Avatar/Plugins.meta create mode 100644 Assets/Oculus/Avatar/Plugins/Android32.meta create mode 100644 Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so create mode 100644 Assets/Oculus/Avatar/Plugins/Android32/libovravatarloader.so.meta create mode 100644 Assets/Oculus/Avatar/Resources.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarMaterialStateShader.cginc.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShader.shader.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBS.shader.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderPBSV2.shader.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_CombinedMesh.shader.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_Loader.shader.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader.meta create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader create mode 100644 Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_PC_SingleComponent.shader.meta create mode 100644 Assets/Oculus/Avatar/Samples.meta create mode 100644 Assets/Oculus/Avatar/Samples/Controllers.meta create mode 100644 Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity create mode 100644 Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity.meta create mode 100644 Assets/Oculus/Avatar/Samples/CrossPlatform.meta create mode 100644 Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity create mode 100644 Assets/Oculus/Avatar/Samples/CrossPlatform/CrossPlatform.unity.meta create mode 100644 Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt create mode 100644 Assets/Oculus/Avatar/Samples/CrossPlatform/Readme.txt.meta create mode 100644 Assets/Oculus/Avatar/Samples/GripPoses.meta create mode 100644 Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity create mode 100644 Assets/Oculus/Avatar/Samples/GripPoses/GripPoses.unity.meta create mode 100644 Assets/Oculus/Avatar/Samples/GripPoses/Scripts.meta create mode 100644 Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs create mode 100644 Assets/Oculus/Avatar/Samples/GripPoses/Scripts/PoseEditHelper.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/LocalAvatar.meta create mode 100644 Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity create mode 100644 Assets/Oculus/Avatar/Samples/LocalAvatar/LocalAvatar.unity.meta create mode 100644 Assets/Oculus/Avatar/Samples/RemoteLoopback.meta create mode 100644 Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity create mode 100644 Assets/Oculus/Avatar/Samples/RemoteLoopback/RemoteLoopback.unity.meta create mode 100644 Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts.meta create mode 100644 Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs create mode 100644 Assets/Oculus/Avatar/Samples/RemoteLoopback/Scripts/RemoteLoopbackManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/MainScene.unity.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/GearHelp.mat.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Help.mat.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Offline_Mat.mat.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Materials/Plane_Mat.mat.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/P2PManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/PlayerController.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RemotePlayer.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/RoomManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/SocialPlatformManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Scripts/VoipManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/GearHelp.png.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/Assets/Textures/Help.png.meta create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/README.txt create mode 100644 Assets/Oculus/Avatar/Samples/SocialStarter/README.txt.meta create mode 100644 Assets/Oculus/Avatar/Scripts.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatar.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatar.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarAsset.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarAssetMesh.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarAssetTexture.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarBase.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarBody.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarComponent.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarDriver.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarHand.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarLocalDriver.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarLogger.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarMaterialManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarMeshInstance.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarPacket.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarProjectorRenderComponent.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarRemoteDriver.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarRenderComponent.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSDKCAPI.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSDKManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSettings.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSettingsEditor.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderComponent.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSComponent.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarSkinnedMeshRenderPBSV2Component.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarTextureCopyManager.cs.meta create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs create mode 100644 Assets/Oculus/Avatar/Scripts/OvrAvatarTouchController.cs.meta create mode 100644 Assets/Oculus/LipSync.meta create mode 100644 Assets/Oculus/LipSync/Audio.meta create mode 100644 Assets/Oculus/LipSync/Audio/vox_lp_01.wav create mode 100644 Assets/Oculus/LipSync/Audio/vox_lp_01.wav.meta create mode 100644 Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset create mode 100644 Assets/Oculus/LipSync/Audio/vox_lp_01_lipSync.asset.meta create mode 100644 Assets/Oculus/LipSync/Editor.meta create mode 100644 Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs create mode 100644 Assets/Oculus/LipSync/Editor/OVRLipSyncTool.cs.meta create mode 100644 Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs create mode 100644 Assets/Oculus/LipSync/Editor/OVRNamedArrayPropertyDrawer.cs.meta create mode 100644 Assets/Oculus/LipSync/Models.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Lips.prefab create mode 100644 Assets/Oculus/LipSync/Models/Lips/Lips.prefab.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Albedo].tga.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Emission].tga.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Normal].tga.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips [Specular].tga.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Lips.FBX.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Materials.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips.mat.meta create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat create mode 100644 Assets/Oculus/LipSync/Models/Lips/Source/Materials/Lips_Alpha.mat.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/CH.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/DD.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/E.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/FF.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Head-2.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/Head-2.mat.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/Materials/sil.mat.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/PP.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RR.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/RobotHead_TextureFlip.FBX.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/SS.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/TH.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/aa.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ih.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/kk.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/nn.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/oh.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/ou.png.meta create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png create mode 100644 Assets/Oculus/LipSync/Models/RobotHead_TextureFlip/sil.png.meta create mode 100644 Assets/Oculus/LipSync/Plugins.meta create mode 100644 Assets/Oculus/LipSync/Plugins/Android32.meta create mode 100644 Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so create mode 100644 Assets/Oculus/LipSync/Plugins/Android32/libOVRLipSync.so.meta create mode 100644 Assets/Oculus/LipSync/Plugins/Android64.meta create mode 100644 Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so create mode 100644 Assets/Oculus/LipSync/Plugins/Android64/libOVRLipSync.so.meta create mode 100644 Assets/Oculus/LipSync/Plugins/MacOSX.meta create mode 100644 Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle create mode 100644 Assets/Oculus/LipSync/Plugins/MacOSX/OVRLipSync.bundle.meta create mode 100644 Assets/Oculus/LipSync/Plugins/Win64.meta create mode 100644 Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll create mode 100644 Assets/Oculus/LipSync/Plugins/Win64/OVRLipSync.dll.meta create mode 100644 Assets/Oculus/LipSync/Prefabs.meta create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncDebugConsole.prefab.meta create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab.meta create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncMorphTarget_Lips.prefab.meta create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab create mode 100644 Assets/Oculus/LipSync/Prefabs/LipSyncTextureFlipTarget_Robot.prefab.meta create mode 100644 Assets/Oculus/LipSync/Scenes.meta create mode 100644 Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity create mode 100644 Assets/Oculus/LipSync/Scenes/LipSync_Demo.unity.meta create mode 100644 Assets/Oculus/LipSync/Scenes/Scripts.meta create mode 100644 Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs create mode 100644 Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs.meta create mode 100644 Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs create mode 100644 Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs.meta create mode 100644 Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs create mode 100644 Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_SetCurrentTarget.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts.meta create mode 100644 Assets/Oculus/LipSync/Scripts/Helpers.meta create mode 100644 Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs create mode 100644 Assets/Oculus/LipSync/Scripts/Helpers/OVRLipSyncDebugConsole.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs create mode 100644 Assets/Oculus/LipSync/Scripts/Helpers/OVRNamedArrayAttribute.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs create mode 100644 Assets/Oculus/LipSync/Scripts/Helpers/OVRTouchpad.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSync.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSync.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContext.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextBase.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextCanned.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextMorphTarget.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncContextTextureFlip.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs.meta create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs create mode 100644 Assets/Oculus/LipSync/Scripts/OVRLipSyncSequence.cs.meta create mode 100644 Assets/Oculus/Platform.meta create mode 100644 Assets/Oculus/Platform/Editor.meta create mode 100644 Assets/Oculus/Platform/Editor/GUIHelper.cs create mode 100644 Assets/Oculus/Platform/Editor/GUIHelper.cs.meta create mode 100644 Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs create mode 100644 Assets/Oculus/Platform/Editor/OculusPlatformSettingsEditor.cs.meta create mode 100644 Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs create mode 100644 Assets/Oculus/Platform/Editor/OculusStandalonePlatformResponse.cs.meta create mode 100644 Assets/Oculus/Platform/Plugins.meta create mode 100644 Assets/Oculus/Platform/Plugins/Android32.meta create mode 100644 Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so create mode 100644 Assets/Oculus/Platform/Plugins/Android32/libovrplatformloader.so.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Info.plist.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/MacOS/ovrplatform.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/PkgInfo.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/Resources/darwin-x86_64/liboculus_p2p.dylib.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature.meta create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources create mode 100644 Assets/Oculus/Platform/Plugins/MacOSX/ovrplatform.bundle/Contents/_CodeSignature/CodeResources.meta create mode 100644 Assets/Oculus/Platform/Scripts.meta create mode 100644 Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs create mode 100644 Assets/Oculus/Platform/Scripts/AbuseReportOptions.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/AbuseReportType.cs create mode 100644 Assets/Oculus/Platform/Scripts/AbuseReportType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/AchievementType.cs create mode 100644 Assets/Oculus/Platform/Scripts/AchievementType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/AndroidPlatform.cs create mode 100644 Assets/Oculus/Platform/Scripts/AndroidPlatform.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/ApplicationOptions.cs create mode 100644 Assets/Oculus/Platform/Scripts/ApplicationOptions.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs create mode 100644 Assets/Oculus/Platform/Scripts/BufferedAudioStream.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/CAPI.cs create mode 100644 Assets/Oculus/Platform/Scripts/CAPI.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Callback.cs create mode 100644 Assets/Oculus/Platform/Scripts/Callback.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/CallbackRunner.cs create mode 100644 Assets/Oculus/Platform/Scripts/CallbackRunner.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/CloudStorageDataStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/CloudStorageUpdateStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Decoder.cs create mode 100644 Assets/Oculus/Platform/Scripts/Decoder.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Encoder.cs create mode 100644 Assets/Oculus/Platform/Scripts/Encoder.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/IMicrophone.cs create mode 100644 Assets/Oculus/Platform/Scripts/IMicrophone.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs create mode 100644 Assets/Oculus/Platform/Scripts/IVoipPCMSource.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/KeyValuePairType.cs create mode 100644 Assets/Oculus/Platform/Scripts/KeyValuePairType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/LaunchType.cs create mode 100644 Assets/Oculus/Platform/Scripts/LaunchType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs create mode 100644 Assets/Oculus/Platform/Scripts/LeaderboardFilterType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs create mode 100644 Assets/Oculus/Platform/Scripts/LeaderboardStartAt.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs create mode 100644 Assets/Oculus/Platform/Scripts/LivestreamingAudience.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/LivestreamingMicrophoneStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/LivestreamingStartStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs create mode 100644 Assets/Oculus/Platform/Scripts/MatchmakingCriterionImportance.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs create mode 100644 Assets/Oculus/Platform/Scripts/MatchmakingOptions.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs create mode 100644 Assets/Oculus/Platform/Scripts/MatchmakingStatApproach.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/MediaContentType.cs create mode 100644 Assets/Oculus/Platform/Scripts/MediaContentType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Message.cs create mode 100644 Assets/Oculus/Platform/Scripts/Message.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/MicrophoneInput.cs create mode 100644 Assets/Oculus/Platform/Scripts/MicrophoneInput.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/MicrophoneInputNative.cs create mode 100644 Assets/Oculus/Platform/Scripts/MicrophoneInputNative.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AbuseReportRecording.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AbuseReportRecording.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AchievementDefinition.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AchievementDefinition.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AchievementProgress.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AchievementProgress.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AchievementUpdate.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AchievementUpdate.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/ApplicationVersion.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/ApplicationVersion.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetDetails.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetDetails.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDeleteResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDeleteResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDownloadCancelResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDownloadCancelResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDownloadResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDownloadResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDownloadUpdate.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/AssetFileDownloadUpdate.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageConflictMetadata.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageConflictMetadata.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageData.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageData.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageMetadata.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageMetadata.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageUpdateResponse.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/CloudStorageUpdateResponse.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/DeserializeableList.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/DeserializeableList.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/Error.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/Error.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/HttpTransferUpdate.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/HttpTransferUpdate.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/InstalledApplication.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/InstalledApplication.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LanguagePackInfo.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LanguagePackInfo.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchBlockFlowResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchBlockFlowResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchDetails.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchDetails.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchFriendRequestFlowResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchFriendRequestFlowResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchUnblockFlowResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LaunchUnblockFlowResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LeaderboardEntry.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LeaderboardEntry.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LinkedAccount.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LinkedAccount.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingApplicationStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingApplicationStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingStartResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingStartResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingVideoStats.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/LivestreamingVideoStats.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingAdminSnapshot.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingAdminSnapshot.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingAdminSnapshotCandidate.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingAdminSnapshotCandidate.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingBrowseResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingBrowseResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingEnqueueResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingEnqueueResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingEnqueueResultAndRoom.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingEnqueueResultAndRoom.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingEnqueuedUser.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingEnqueuedUser.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingStats.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/MatchmakingStats.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/NetworkingPeer.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/NetworkingPeer.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/OrgScopedID.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/OrgScopedID.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/Party.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/Party.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/PartyID.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/PartyID.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/Pid.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/Pid.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/PingResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/PingResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/PlatformInitialize.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/PlatformInitialize.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/Product.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/Product.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/Purchase.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/Purchase.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/Room.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/Room.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/RoomInviteNotification.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/RoomInviteNotification.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/SdkAccount.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/SdkAccount.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/ShareMediaResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/ShareMediaResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/SystemPermission.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/SystemPermission.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/SystemVoipState.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/SystemVoipState.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/User.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/User.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/UserAndRoom.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/UserAndRoom.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/UserProof.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/UserProof.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Models/UserReportID.cs create mode 100644 Assets/Oculus/Platform/Scripts/Models/UserReportID.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Packet.cs create mode 100644 Assets/Oculus/Platform/Scripts/Packet.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/PeerConnectionState.cs create mode 100644 Assets/Oculus/Platform/Scripts/PeerConnectionState.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/PermissionGrantStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/PermissionGrantStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/PermissionType.cs create mode 100644 Assets/Oculus/Platform/Scripts/PermissionType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Platform.cs create mode 100644 Assets/Oculus/Platform/Scripts/Platform.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/PlatformInitializeResult.cs create mode 100644 Assets/Oculus/Platform/Scripts/PlatformInitializeResult.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/PlatformInternal.cs create mode 100644 Assets/Oculus/Platform/Scripts/PlatformInternal.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/PlatformSettings.cs create mode 100644 Assets/Oculus/Platform/Scripts/PlatformSettings.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/Request.cs create mode 100644 Assets/Oculus/Platform/Scripts/Request.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/RoomJoinPolicy.cs create mode 100644 Assets/Oculus/Platform/Scripts/RoomJoinPolicy.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/RoomJoinability.cs create mode 100644 Assets/Oculus/Platform/Scripts/RoomJoinability.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/RoomMembershipLockStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/RoomMembershipLockStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/RoomOptions.cs create mode 100644 Assets/Oculus/Platform/Scripts/RoomOptions.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/RoomType.cs create mode 100644 Assets/Oculus/Platform/Scripts/RoomType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/SdkAccountType.cs create mode 100644 Assets/Oculus/Platform/Scripts/SdkAccountType.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/SendPolicy.cs create mode 100644 Assets/Oculus/Platform/Scripts/SendPolicy.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/ServiceProvider.cs create mode 100644 Assets/Oculus/Platform/Scripts/ServiceProvider.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/ShareMediaStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/ShareMediaStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/StandalonePlatform.cs create mode 100644 Assets/Oculus/Platform/Scripts/StandalonePlatform.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/StandalonePlatformSettings.cs create mode 100644 Assets/Oculus/Platform/Scripts/StandalonePlatformSettings.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/SystemVoipStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/SystemVoipStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/TimeWindow.cs create mode 100644 Assets/Oculus/Platform/Scripts/TimeWindow.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/UserOptions.cs create mode 100644 Assets/Oculus/Platform/Scripts/UserOptions.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/UserOrdering.cs create mode 100644 Assets/Oculus/Platform/Scripts/UserOrdering.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/UserPresenceStatus.cs create mode 100644 Assets/Oculus/Platform/Scripts/UserPresenceStatus.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipAudioSource.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipAudioSource.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipAudioSourceHiLevel.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipAudioSourceHiLevel.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipBitrate.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipBitrate.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipDtxState.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipDtxState.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipInput.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipInput.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipMuteState.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipMuteState.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipOptions.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipOptions.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipPCMSourceNative.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipPCMSourceNative.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/VoipSampleRate.cs create mode 100644 Assets/Oculus/Platform/Scripts/VoipSampleRate.cs.meta create mode 100644 Assets/Oculus/Platform/Scripts/WindowsPlatform.cs create mode 100644 Assets/Oculus/Platform/Scripts/WindowsPlatform.cs.meta create mode 100644 Assets/Oculus/Spatializer/Editor.meta create mode 100644 Assets/Oculus/Spatializer/Editor/ONSPAudioSourceEditor.cs create mode 100644 Assets/Oculus/Spatializer/Editor/ONSPAudioSourceEditor.cs.meta create mode 100644 Assets/Oculus/Spatializer/Editor/ONSPReflectionCustomGUI.cs create mode 100644 Assets/Oculus/Spatializer/Editor/ONSPReflectionCustomGUI.cs.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/Android.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/Android/libAudioPluginOculusSpatializer.so create mode 100644 Assets/Oculus/Spatializer/Plugins/Android/libAudioPluginOculusSpatializer.so.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle/Contents.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle/Contents/Info.plist create mode 100644 Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle/Contents/Info.plist.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle/Contents/MacOS.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle/Contents/MacOS/AudioPluginOculusSpatializer create mode 100644 Assets/Oculus/Spatializer/Plugins/AudioPluginOculusSpatializer.bundle/Contents/MacOS/AudioPluginOculusSpatializer.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/x86.meta create mode 100644 Assets/Oculus/Spatializer/Plugins/x86/AudioPluginOculusSpatializer.dll create mode 100644 Assets/Oculus/Spatializer/Plugins/x86/AudioPluginOculusSpatializer.dll.meta create mode 100644 Assets/Oculus/VoiceMod.meta create mode 100644 Assets/Oculus/VoiceMod/Audio.meta create mode 100644 Assets/Oculus/VoiceMod/Audio/vox_lp_01.wav create mode 100644 Assets/Oculus/VoiceMod/Audio/vox_lp_01.wav.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/Android32.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/Android32/libOVRVoiceMod.so create mode 100644 Assets/Oculus/VoiceMod/Plugins/Android32/libOVRVoiceMod.so.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX/OVRVoiceMod.bundle.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX/OVRVoiceMod.bundle/Contents.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX/OVRVoiceMod.bundle/Contents/Info.plist create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX/OVRVoiceMod.bundle/Contents/Info.plist.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX/OVRVoiceMod.bundle/Contents/MacOS.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX/OVRVoiceMod.bundle/Contents/MacOS/OVRVoiceMod create mode 100644 Assets/Oculus/VoiceMod/Plugins/MacOSX/OVRVoiceMod.bundle/Contents/MacOS/OVRVoiceMod.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/Win32.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/Win32/OVRVoiceMod.dll create mode 100644 Assets/Oculus/VoiceMod/Plugins/Win32/OVRVoiceMod.dll.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/Win64.meta create mode 100644 Assets/Oculus/VoiceMod/Plugins/Win64/OVRVoiceMod.dll create mode 100644 Assets/Oculus/VoiceMod/Plugins/Win64/OVRVoiceMod.dll.meta create mode 100644 Assets/Oculus/VoiceMod/Prefabs.meta create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRCameraWithDebug.prefab create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRCameraWithDebug.prefab.meta create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRDebugConsole.prefab create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRDebugConsole.prefab.meta create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRDebugConsoleOutput.prefab create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRDebugConsoleOutput.prefab.meta create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRVoiceModInterface.prefab create mode 100644 Assets/Oculus/VoiceMod/Prefabs/OVRVoiceModInterface.prefab.meta create mode 100644 Assets/Oculus/VoiceMod/Scenes.meta create mode 100644 Assets/Oculus/VoiceMod/Scenes/Materials.meta create mode 100644 Assets/Oculus/VoiceMod/Scenes/Materials/Color.mat create mode 100644 Assets/Oculus/VoiceMod/Scenes/Materials/Color.mat.meta create mode 100644 Assets/Oculus/VoiceMod/Scenes/Scripts.meta create mode 100644 Assets/Oculus/VoiceMod/Scenes/Scripts/VoiceModDemo_Logic.cs create mode 100644 Assets/Oculus/VoiceMod/Scenes/Scripts/VoiceModDemo_Logic.cs.meta create mode 100644 Assets/Oculus/VoiceMod/Scenes/VoiceMod_Demo.unity create mode 100644 Assets/Oculus/VoiceMod/Scenes/VoiceMod_Demo.unity.meta create mode 100644 Assets/Oculus/VoiceMod/Scripts.meta create mode 100644 Assets/Oculus/VoiceMod/Scripts/Helpers.meta create mode 100644 Assets/Oculus/VoiceMod/Scripts/Helpers/OVRDebugConsole.cs create mode 100644 Assets/Oculus/VoiceMod/Scripts/Helpers/OVRDebugConsole.cs.meta create mode 100644 Assets/Oculus/VoiceMod/Scripts/Helpers/OVRMessenger.cs create mode 100644 Assets/Oculus/VoiceMod/Scripts/Helpers/OVRMessenger.cs.meta create mode 100644 Assets/Oculus/VoiceMod/Scripts/Helpers/OVRMicInput.cs create mode 100644 Assets/Oculus/VoiceMod/Scripts/Helpers/OVRMicInput.cs.meta create mode 100644 Assets/Oculus/VoiceMod/Scripts/OVRVoiceMod.cs create mode 100644 Assets/Oculus/VoiceMod/Scripts/OVRVoiceMod.cs.meta create mode 100644 Assets/Oculus/VoiceMod/Scripts/OVRVoiceModContext.cs create mode 100644 Assets/Oculus/VoiceMod/Scripts/OVRVoiceModContext.cs.meta diff --git a/Assets/FittsLawVR/Prefabs/Canvas.prefab b/Assets/FittsLawVR/Prefabs/Canvas.prefab new file mode 100644 index 0000000..1c32aa4 --- /dev/null +++ b/Assets/FittsLawVR/Prefabs/Canvas.prefab @@ -0,0 +1,1443 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 0} + m_RootGameObject: {fileID: 1222106366571780} + m_IsPrefabAsset: 1 +--- !u!1 &1222106366571780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224720632774813148} + - component: {fileID: 223347616292351244} + - component: {fileID: 114639884264124080} + - component: {fileID: 222089336008002674} + - component: {fileID: 114447187588060706} + - component: {fileID: 114563415417697918} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1300072793757438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224639637719138810} + - component: {fileID: 222662068579130324} + - component: {fileID: 114668791054170864} + - component: {fileID: 114718433689096176} + m_Layer: 0 + m_Name: LeftMedium + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1329926865618860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224578468027682140} + - component: {fileID: 222605649304683034} + - component: {fileID: 114661554634580074} + - component: {fileID: 114825931014251334} + m_Layer: 0 + m_Name: UpMedium + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1383124965769840 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224579954748257482} + - component: {fileID: 222346931513675838} + - component: {fileID: 114023655777658636} + - component: {fileID: 114086189665095470} + m_Layer: 0 + m_Name: LeftLong + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1540639740162224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224762053255112640} + - component: {fileID: 222596754781067234} + - component: {fileID: 114946456638147658} + - component: {fileID: 114531434077155296} + m_Layer: 0 + m_Name: RightShort + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1575352834805242 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224558075776258700} + - component: {fileID: 222421123630087756} + - component: {fileID: 114603194434061568} + - component: {fileID: 114912380756086876} + m_Layer: 0 + m_Name: UpLong + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1599297577028528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224999135438588286} + - component: {fileID: 222795952188418634} + - component: {fileID: 114308453952001826} + - component: {fileID: 114062093851758520} + m_Layer: 0 + m_Name: UpShort + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1679994978798384 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224209426894857326} + - component: {fileID: 222260903675769914} + - component: {fileID: 114822698690064214} + - component: {fileID: 114281474708013094} + m_Layer: 0 + m_Name: RightMedium + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1758508743825796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224266039085603778} + - component: {fileID: 114072125749358940} + - component: {fileID: 58377436786480712} + - component: {fileID: 222107215107398658} + - component: {fileID: 114362675667547644} + - component: {fileID: 114656590209892184} + m_Layer: 0 + m_Name: StartButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1797085077735110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224795365474473054} + - component: {fileID: 222927670478029134} + - component: {fileID: 114619505718955426} + - component: {fileID: 114620956565508940} + m_Layer: 0 + m_Name: LeftShort + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1814204617026824 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 6 + m_Component: + - component: {fileID: 224346185028377882} + - component: {fileID: 222491411221507294} + - component: {fileID: 114306143910496398} + - component: {fileID: 114935916494048452} + m_Layer: 0 + m_Name: RightLong + m_TagString: Dot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!58 &58377436786480712 +CircleCollider2D: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1758508743825796} + m_Enabled: 0 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: 0.1 +--- !u!114 &114023655777658636 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1383124965769840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114062093851758520 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1599297577028528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114308453952001826} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114072125749358940 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1758508743825796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 472cd28b041d447a4b0f2b5c603034aa, type: 3} + m_Name: + m_EditorClassIdentifier: + trackingSpace: {fileID: 0} + primaryButton: 8192 + secondaryButton: 1024 + excludeLayers: + serializedVersion: 2 + m_Bits: 0 + raycastDistance: 500 + onHoverEnter: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHoverExit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onHover: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+HoverCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onPrimarySelect: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: NextDot + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + onSecondarySelect: + m_PersistentCalls: + m_Calls: [] + m_TypeName: ControllerSelection.OVRRawRaycaster+SelectionCallback, Assembly-CSharp, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + activeController: 0 +--- !u!114 &114086189665095470 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1383124965769840} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114023655777658636} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114281474708013094 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1679994978798384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114822698690064214} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114306143910496398 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1814204617026824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114308453952001826 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1599297577028528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114362675667547644 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1758508743825796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114447187588060706 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1222106366571780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8745099, g: 0.8745099, b: 0.8745099, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!114 &114531434077155296 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1540639740162224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114946456638147658} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114563415417697918 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1222106366571780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aee672c7b0743724ea7d0d722d5e6aa2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114603194434061568 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1575352834805242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114619505718955426 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1797085077735110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114620956565508940 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1797085077735110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114619505718955426} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114639884264124080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1222106366571780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114656590209892184 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1758508743825796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114362675667547644} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: NextDot + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114661554634580074 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1329926865618860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114668791054170864 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1300072793757438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114718433689096176 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1300072793757438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114668791054170864} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114822698690064214 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1679994978798384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114825931014251334 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1329926865618860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114661554634580074} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114912380756086876 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1575352834805242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114603194434061568} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114935916494048452 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1814204617026824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114306143910496398} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: BackToStart + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114946456638147658 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1540639740162224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &222089336008002674 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1222106366571780} + m_CullTransparentMesh: 0 +--- !u!222 &222107215107398658 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1758508743825796} + m_CullTransparentMesh: 0 +--- !u!222 &222260903675769914 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1679994978798384} + m_CullTransparentMesh: 0 +--- !u!222 &222346931513675838 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1383124965769840} + m_CullTransparentMesh: 0 +--- !u!222 &222421123630087756 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1575352834805242} + m_CullTransparentMesh: 0 +--- !u!222 &222491411221507294 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1814204617026824} + m_CullTransparentMesh: 0 +--- !u!222 &222596754781067234 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1540639740162224} + m_CullTransparentMesh: 0 +--- !u!222 &222605649304683034 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1329926865618860} + m_CullTransparentMesh: 0 +--- !u!222 &222662068579130324 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1300072793757438} + m_CullTransparentMesh: 0 +--- !u!222 &222795952188418634 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1599297577028528} + m_CullTransparentMesh: 0 +--- !u!222 &222927670478029134 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1797085077735110} + m_CullTransparentMesh: 0 +--- !u!223 &223347616292351244 +Canvas: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1222106366571780} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 1 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224209426894857326 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1679994978798384} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1073.0001, y: 905} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224266039085603778 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1758508743825796} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -80.89978, y: 897.99994} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224346185028377882 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1814204617026824} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1573.0001, y: 905} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224558075776258700 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1575352834805242} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -73, y: 2404.9998} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224578468027682140 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1329926865618860} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -73, y: 1905} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224579954748257482 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1383124965769840} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1427.0001, y: 905} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224639637719138810 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1300072793757438} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 927.0001, y: 905} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224720632774813148 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1222106366571780} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 2.1} + m_LocalScale: {x: 0.0057666996, y: 0.0057666996, z: 0.0057666996} + m_Children: + - {fileID: 224266039085603778} + - {fileID: 224346185028377882} + - {fileID: 224209426894857326} + - {fileID: 224762053255112640} + - {fileID: 224579954748257482} + - {fileID: 224639637719138810} + - {fileID: 224795365474473054} + - {fileID: 224558075776258700} + - {fileID: 224578468027682140} + - {fileID: 224999135438588286} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -9.7, y: -19.2} + m_SizeDelta: {x: 3731.68, y: 5511.43} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224762053255112640 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1540639740162224} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -572.9999, y: 905} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224795365474473054 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1797085077735110} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 427.00012, y: 905} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224999135438588286 +RectTransform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1599297577028528} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 34.000015} + m_LocalScale: {x: 1000, y: 1000, z: 1000} + m_Children: [] + m_Father: {fileID: 224720632774813148} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -73, y: 1404.9998} + m_SizeDelta: {x: 0.2, y: 0.2} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/FittsLawVR/Prefabs/Canvas.prefab.meta b/Assets/FittsLawVR/Prefabs/Canvas.prefab.meta new file mode 100644 index 0000000..d8b5f57 --- /dev/null +++ b/Assets/FittsLawVR/Prefabs/Canvas.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49f39d13b583ef54c853f20f5179b584 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleVR/GVRVideoPlayer.unitypackage.meta b/Assets/GoogleVR/GVRVideoPlayer.unitypackage.meta index 7071b37..bced8d2 100644 --- a/Assets/GoogleVR/GVRVideoPlayer.unitypackage.meta +++ b/Assets/GoogleVR/GVRVideoPlayer.unitypackage.meta @@ -1,7 +1,8 @@ fileFormatVersion: 2 guid: 39850532bc74a4078a24832112e8aef3 +timeCreated: 1534545520 +licenseType: Pro DefaultImporter: - externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Assets/GoogleVR/Scripts/InstantPreview/InstantPreview.apk.meta b/Assets/GoogleVR/Scripts/InstantPreview/InstantPreview.apk.meta index 88dd0ac..a3dc343 100644 --- a/Assets/GoogleVR/Scripts/InstantPreview/InstantPreview.apk.meta +++ b/Assets/GoogleVR/Scripts/InstantPreview/InstantPreview.apk.meta @@ -1,7 +1,8 @@ fileFormatVersion: 2 guid: dc278786e6540af428ccbf7825495004 +timeCreated: 1500315262 +licenseType: Pro DefaultImporter: - externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Oculus/AudioManager.meta b/Assets/Oculus/AudioManager.meta new file mode 100644 index 0000000..a774a14 --- /dev/null +++ b/Assets/Oculus/AudioManager.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e8bd6fc3bb11b734ebab29d20ce38dbe +folderAsset: yes +timeCreated: 1538788975 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Audio.meta b/Assets/Oculus/AudioManager/Audio.meta new file mode 100644 index 0000000..9b8e75b --- /dev/null +++ b/Assets/Oculus/AudioManager/Audio.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 29ab7e927676ef74a93aeedf4146f1ac +folderAsset: yes +timeCreated: 1470780399 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds.meta b/Assets/Oculus/AudioManager/Audio/TestSounds.meta new file mode 100644 index 0000000..be98549 --- /dev/null +++ b/Assets/Oculus/AudioManager/Audio/TestSounds.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 180c8a539f95cce428f820b0ba392c1f +folderAsset: yes +timeCreated: 1468506676 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav new file mode 100644 index 0000000000000000000000000000000000000000..cf2a6e9125af08c3506e041fca4d2334060f6abd GIT binary patch literal 40180 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 I#>?IR0kqNewg3PC literal 0 HcmV?d00001 diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav.meta b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav.meta new file mode 100644 index 0000000..bd6540e --- /dev/null +++ b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 485ac48a563e2bf44bb4de7ead5a1f68 +timeCreated: 1461716881 +licenseType: Store +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_close_01a.wav new file mode 100644 index 0000000000000000000000000000000000000000..5202abdce1c6b63d0dc4f8cee523a6b87adda40a GIT binary patch literal 40178 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≈nUuB1W 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 Q!R6nSQCRbxfW_Va3$a{ElK=n! literal 0 HcmV?d00001 diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav.meta b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav.meta new file mode 100644 index 0000000..d45cc67 --- /dev/null +++ b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 7000b4d67a1320940b363f3cf891dfff +timeCreated: 1461716881 +licenseType: Store +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav new file mode 100644 index 0000000000000000000000000000000000000000..aa7e7d10d0c3d4417dec7a0813d92924e2b4b0ad GIT binary patch literal 51014 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 g|7PcZ)b($)^kMm0k9~05q32#{d8T literal 0 HcmV?d00001 diff --git a/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav.meta b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav.meta new file mode 100644 index 0000000..f9e7fdb --- /dev/null +++ b/Assets/Oculus/AudioManager/Audio/TestSounds/metal_sliding_door_open_01a.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 8198ccc08475a764daaf226b841a55f1 +timeCreated: 1461716882 +licenseType: Store +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scenes.meta b/Assets/Oculus/AudioManager/Scenes.meta new file mode 100644 index 0000000..9823fcc --- /dev/null +++ b/Assets/Oculus/AudioManager/Scenes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6d597fe114807b54a99033a3dae9ce0d +folderAsset: yes +timeCreated: 1470780399 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scenes/Scripts.meta b/Assets/Oculus/AudioManager/Scenes/Scripts.meta new file mode 100644 index 0000000..c1dd9fd --- /dev/null +++ b/Assets/Oculus/AudioManager/Scenes/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7ee6cbebddf12044c95f9d6eb6e40823 +folderAsset: yes +timeCreated: 1470780399 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs new file mode 100644 index 0000000..d644397 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs @@ -0,0 +1,31 @@ +using UnityEngine; +using System.Collections; + +public class TestScript : MonoBehaviour { + + [InspectorNote( "Sound Setup", "Press '1' to play testSound1 and '2' to play testSound2")] + + public SoundFXRef testSound1; + public SoundFXRef testSound2; + + // Use this for initialization + void Start () { + + } + + + // Update is called once per frame + void Update () + { + // use attached game object location + if ( Input.GetKeyDown( KeyCode.Alpha1 ) ) + { + testSound1.PlaySoundAt( transform.position ); + } + + // hard code information + if ( Input.GetKeyDown( KeyCode.Alpha2 ) ) { + testSound2.PlaySoundAt( new Vector3( 5.0f, 0.0f, 0.0f ) ); + } + } +} diff --git a/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs.meta b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs.meta new file mode 100644 index 0000000..e1faa97 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scenes/Scripts/TestScript.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cfae243ecd01edd49bd439c56a8b18cf +timeCreated: 1468506975 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scenes/Test.unity b/Assets/Oculus/AudioManager/Scenes/Test.unity new file mode 100644 index 0000000..a88e0f8 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scenes/Test.unity @@ -0,0 +1,434 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &767466533 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 767466535} + - component: {fileID: 767466534} + m_Layer: 0 + m_Name: AudioManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &767466534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 767466533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6d1d30b41806244fca035fdae2896fb7, type: 3} + m_Name: + m_EditorClassIdentifier: + makePersistent: 1 + enableSpatializedAudio: 1 + enableSpatializedFastOverride: 0 + audioMixer: {fileID: 0} + defaultMixerGroup: {fileID: 24300001, guid: 323417d454569d94fa01d511f6eb44d9, type: 2} + reservedMixerGroup: {fileID: 0} + voiceChatMixerGroup: {fileID: 0} + verboseLogging: 0 + maxSoundEmitters: 32 + volumeSoundFX: 1 + soundFxFadeSecs: 1 + audioMinFallOffDistance: 1 + audioMaxFallOffDistance: 25 + soundGroupings: + - name: Test Group + soundList: + - name: TestSound1 + playback: 0 + volume: 1 + pitchVariance: {x: 0.95, y: 1.05} + falloffDistance: {x: 1, y: 25} + falloffCurve: 2 + volumeFalloffCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1.0044228 + inSlope: -1.9459304 + outSlope: -1.9459304 + tangentMode: 0 + - serializedVersion: 2 + time: 0.27001944 + value: 0.24837627 + inSlope: -1.3226271 + outSlope: -1.3226271 + tangentMode: 0 + - serializedVersion: 2 + time: 0.99744946 + value: -0.0020017216 + inSlope: -0.42040923 + outSlope: -0.42040923 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + reverbZoneMix: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1.0044228 + inSlope: -1.9459304 + outSlope: -1.9459304 + tangentMode: 0 + - serializedVersion: 2 + time: 0.36357749 + value: 0.4567863 + inSlope: -1.3226271 + outSlope: -1.3226271 + tangentMode: 0 + - serializedVersion: 2 + time: 0.99594045 + value: 0.19572063 + inSlope: -0.107312 + outSlope: -0.107312 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + spread: 0 + pctChanceToPlay: 1 + priority: 0 + delay: {x: 0, y: 0} + looping: 0 + ospProps: + enableSpatialization: 1 + useFastOverride: 1 + gain: 0 + enableInvSquare: 1 + volumetric: 0 + invSquareFalloff: {x: 1, y: 250} + soundClips: + - {fileID: 8300000, guid: 7000b4d67a1320940b363f3cf891dfff, type: 3} + - {fileID: 8300000, guid: 8198ccc08475a764daaf226b841a55f1, type: 3} + visibilityToggle: 0 + - name: TestSound2 + playback: 0 + volume: 1 + pitchVariance: {x: 0.79999995, y: 1.25} + falloffDistance: {x: 1, y: 25} + falloffCurve: 1 + volumeFalloffCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMix: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spread: 0 + pctChanceToPlay: 1 + priority: 0 + delay: {x: 0, y: 0} + looping: 0 + ospProps: + enableSpatialization: 1 + useFastOverride: 0 + gain: 0 + enableInvSquare: 0 + volumetric: 0 + invSquareFalloff: {x: 1, y: 25} + soundClips: + - {fileID: 8300000, guid: 485ac48a563e2bf44bb4de7ead5a1f68, type: 3} + - {fileID: 8300000, guid: d3994560fb567c34a821fd9355c10eef, type: 3} + visibilityToggle: 0 + mixerGroup: {fileID: 24300001, guid: 1dd706bb85d8aef4e83a6229dbd62c36, type: 2} + maxPlayingSounds: 0 + preloadAudio: 0 + volumeOverride: 1 + playingSoundCount: 0 +--- !u!4 &767466535 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 767466533} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1050355579 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1050355581} + - component: {fileID: 1050355580} + m_Layer: 0 + m_Name: TestScript + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1050355580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1050355579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cfae243ecd01edd49bd439c56a8b18cf, type: 3} + m_Name: + m_EditorClassIdentifier: + testSound1: + soundFXName: TestSound1 + testSound2: + soundFXName: TestSound2 +--- !u!4 &1050355581 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1050355579} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2106254871 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2106254876} + - component: {fileID: 2106254875} + - component: {fileID: 2106254874} + - component: {fileID: 2106254873} + - component: {fileID: 2106254872} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &2106254872 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2106254871} + m_Enabled: 1 +--- !u!124 &2106254873 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2106254871} + m_Enabled: 1 +--- !u!92 &2106254874 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2106254871} + m_Enabled: 1 +--- !u!20 &2106254875 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2106254871} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &2106254876 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2106254871} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Oculus/AudioManager/Scenes/Test.unity.meta b/Assets/Oculus/AudioManager/Scenes/Test.unity.meta new file mode 100644 index 0000000..b8047e1 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scenes/Test.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 600e5d49b0a68254286400e32c53addc +timeCreated: 1468506358 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts.meta b/Assets/Oculus/AudioManager/Scripts.meta new file mode 100644 index 0000000..7c41c17 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 25be027379f7fce4d97ba2bcaf313019 +folderAsset: yes +timeCreated: 1470780399 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio.meta b/Assets/Oculus/AudioManager/Scripts/Audio.meta new file mode 100644 index 0000000..3a66e26 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b8c0d722519c64144a78f8fc99cd40b5 +folderAsset: yes +timeCreated: 1468505670 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs new file mode 100644 index 0000000..0017fbd --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs @@ -0,0 +1,113 @@ +using UnityEngine; +using System.Collections; + +/* +----------------------- + + AmbienceEmitter() + +----------------------- +*/ +public class AmbienceEmitter : MonoBehaviour { + + public SoundFXRef[] ambientSounds = new SoundFXRef[0]; + public bool autoActivate = true; + [Tooltip("Automatically play the sound randomly again when checked. Should be OFF for looping sounds")] + public bool autoRetrigger = true; + [MinMax( 2.0f, 4.0f, 0.1f, 10.0f )] + public Vector2 randomRetriggerDelaySecs = new Vector2( 2.0f, 4.0f ); + [Tooltip( "If defined, the sounds will randomly play from these transform positions, otherwise the sound will play from this transform" )] + public Transform[] playPositions = new Transform[0]; + private bool activated = false; + private int playingIdx = -1; + private float nextPlayTime = 0.0f; + private float fadeTime = 0.25f; + private int lastPosIdx = -1; + + /* + ----------------------- + Awake() + ----------------------- + */ + void Awake() { + if ( autoActivate ) { + activated = true; + nextPlayTime = Time.time + Random.Range( randomRetriggerDelaySecs.x, randomRetriggerDelaySecs.y ); + } + // verify all the play positions are valid + foreach ( Transform t in playPositions ) { + if ( t == null ) { + Debug.LogWarning( "[AmbienceEmitter] Invalid play positions in " + name ); + playPositions = new Transform[0]; + break; + } + } + } + + /* + ----------------------- + Update() + ----------------------- + */ + void Update() { + if ( activated ) { + if ( ( playingIdx == -1 ) || autoRetrigger ) { + if ( Time.time >= nextPlayTime ) { + Play(); + if ( !autoRetrigger ) { + activated = false; + } + } + } + } + } + + /* + ----------------------- + OnTriggerEnter() + ----------------------- + */ + public void OnTriggerEnter( Collider col ) { + activated = !activated; + } + + /* + ----------------------- + Play() + ----------------------- + */ + public void Play() { + Transform transformToPlayFrom = transform; + if ( playPositions.Length > 0 ) { + int idx = Random.Range( 0, playPositions.Length ); + while ( ( playPositions.Length > 1 ) && ( idx == lastPosIdx ) ) { + idx = Random.Range( 0, playPositions.Length ); + } + transformToPlayFrom = playPositions[idx]; + lastPosIdx = idx; + } + playingIdx = ambientSounds[Random.Range(0, ambientSounds.Length)].PlaySoundAt( transformToPlayFrom.position ); + if ( playingIdx != -1 ) { + AudioManager.FadeInSound( playingIdx, fadeTime ); + nextPlayTime = Time.time + Random.Range( randomRetriggerDelaySecs.x, randomRetriggerDelaySecs.y ); + } + } + + /* + ----------------------- + EnableEmitter() + ----------------------- + */ + public void EnableEmitter( bool enable ) { + activated = enable; + if ( enable ) { + Play(); + } else { + if ( playingIdx != -1 ) { + AudioManager.FadeOutSound( playingIdx, fadeTime ); + } + } + + } + +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs.meta new file mode 100644 index 0000000..e5ecd9b --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/AmbienceEmitter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c11944691f6b9cf44a391c95cb3f7dea +timeCreated: 1455050294 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs new file mode 100644 index 0000000..f77c3ea --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs @@ -0,0 +1,425 @@ +using UnityEngine; +using UnityEngine.Audio; +using System.Collections; +using System.Collections.Generic; +#if UNITY_EDITOR +using UnityEditor; +using System; +using System.Reflection; +#endif + +public enum PreloadSounds { + Default, // default unity behavior + Preload, // audio clips are forced to preload + ManualPreload, // audio clips are forced to not preload, preloading must be done manually +} + +public enum Fade +{ + In, + Out +} + +[System.Serializable] +public class SoundGroup { + public SoundGroup( string name ) { + this.name = name; + } + public SoundGroup() { + mixerGroup = null; + maxPlayingSounds = 0; + preloadAudio = PreloadSounds.Default; + volumeOverride = 1.0f; + } + public void IncrementPlayCount() { + playingSoundCount = Mathf.Clamp( ++playingSoundCount, 0, maxPlayingSounds ); + } + public void DecrementPlayCount() { + playingSoundCount = Mathf.Clamp( --playingSoundCount, 0, maxPlayingSounds ); + } + public bool CanPlaySound() { + return ( maxPlayingSounds == 0 ) || ( playingSoundCount < maxPlayingSounds ); + } + + public string name = string.Empty; + public SoundFX[] soundList = new SoundFX[0]; + public AudioMixerGroup mixerGroup = null; // default = AudioManager.defaultMixerGroup + [Range(0,64)] + public int maxPlayingSounds = 0; // default = 0, unlimited + // TODO: this preload behavior is not yet implemented + public PreloadSounds preloadAudio = PreloadSounds.Default; // default = true, audio clip data will be preloaded + public float volumeOverride = 1.0f; // default = 1.0 + + [HideInInspector] + public int playingSoundCount = 0; +} + +/* +----------------------- + + AudioManager + +----------------------- +*/ +public partial class AudioManager : MonoBehaviour { + + [Tooltip("Make the audio manager persistent across all scene loads")] + public bool makePersistent = true; // true = don't destroy on load + [Tooltip("Enable the OSP audio plugin features")] + public bool enableSpatializedAudio = true; // true = enable spatialized audio + [Tooltip("Always play spatialized sounds with no reflections (Default)")] + public bool enableSpatializedFastOverride = false; // true = disable spatialized reflections override + [Tooltip("The audio mixer asset used for snapshot blends, etc.")] + public AudioMixer audioMixer = null; + [Tooltip( "The audio mixer group used for the pooled emitters" )] + public AudioMixerGroup defaultMixerGroup = null; + [Tooltip( "The audio mixer group used for the reserved pool emitter" )] + public AudioMixerGroup reservedMixerGroup = null; + [Tooltip( "The audio mixer group used for voice chat" )] + public AudioMixerGroup voiceChatMixerGroup = null; + [Tooltip("Log all PlaySound calls to the Unity console")] + public bool verboseLogging = false; // true = log all PlaySounds + [Tooltip("Maximum sound emitters")] + public int maxSoundEmitters = 32; // total number of sound emitters created + [Tooltip("Default volume for all sounds modulated by individual sound FX volumes")] + public float volumeSoundFX = 1.0f; // user pref: volume of all sound FX + [Tooltip("Sound FX fade time")] + public float soundFxFadeSecs = 1.0f; // sound FX fade time + + public float audioMinFallOffDistance = 1.0f; // minimum falloff distance + public float audioMaxFallOffDistance = 25.0f; // maximum falloff distance + + public SoundGroup[] soundGroupings = new SoundGroup[0]; + + private Dictionary soundFXCache = null; + + static private AudioManager theAudioManager = null; + static private FastList names = new FastList(); + static private string[] defaultSound = new string[1] { "Default Sound" }; + static private SoundFX nullSound = new SoundFX(); + static private bool hideWarnings = false; + static public bool enableSpatialization { get { return ( theAudioManager !=null ) ? theAudioManager.enableSpatializedAudio : false; } } + + static public AudioManager Instance { get { return theAudioManager; } } + static public float NearFallOff { get { return theAudioManager.audioMinFallOffDistance; } } + static public float FarFallOff { get { return theAudioManager.audioMaxFallOffDistance; } } + static public AudioMixerGroup EmitterGroup { get { return theAudioManager.defaultMixerGroup; } } + static public AudioMixerGroup ReservedGroup { get { return theAudioManager.reservedMixerGroup; } } + static public AudioMixerGroup VoipGroup { get { return theAudioManager.voiceChatMixerGroup; } } + + /* + ----------------------- + Awake() + ----------------------- + */ + void Awake() { + Init(); + } + + /* + ----------------------- + OnDestroy() + ----------------------- + */ + void OnDestroy() { + // we only want the initialized audio manager instance cleaning up the sound emitters + if ( theAudioManager == this ) { + if ( soundEmitterParent != null ) { + Destroy( soundEmitterParent ); + } + } + ///TODO - if you change scenes you'll want to call OnPreSceneLoad to detach the sound emitters + ///from anything they might be parented to or they will get destroyed with that object + ///there should only be one instance of the AudioManager across the life of the game/app + ///GameManager.OnPreSceneLoad -= OnPreSceneLoad; + } + + /* + ----------------------- + Init() + ----------------------- + */ + void Init() { + if ( theAudioManager != null ) { + if ( Application.isPlaying && ( theAudioManager != this ) ) { + enabled = false; + } + return; + } + theAudioManager = this; + + ///TODO - if you change scenes you'll want to call OnPreSceneLoad to detach the sound emitters + ///from anything they might be parented to or they will get destroyed with that object + ///there should only be one instance of the AudioManager across the life of the game/app + ///GameManager.OnPreSceneLoad += OnPreSceneLoad; + + // make sure the first one is a null sound + nullSound.name = "Default Sound"; + + // build the sound FX cache + RebuildSoundFXCache(); + + // create the sound emitters + if ( Application.isPlaying ) { + InitializeSoundSystem(); + if ( makePersistent && ( transform.parent == null ) ) { + // don't destroy the audio manager on scene loads + DontDestroyOnLoad( gameObject ); + } + } + +#if UNITY_EDITOR + Debug.Log( "[AudioManager] Initialized..." ); +#endif + } + + /* + ----------------------- + Update() + ----------------------- + */ + void Update() { + // update the free and playing lists + UpdateFreeEmitters(); + } + + /* + ----------------------- + RebuildSoundFXCache() + ----------------------- + */ + void RebuildSoundFXCache() { + // build the SoundFX dictionary for quick name lookups + int count = 0; + for ( int group = 0; group < soundGroupings.Length; group++ ) { + count += soundGroupings[group].soundList.Length; + } + soundFXCache = new Dictionary( count + 1 ); + // add the null sound + soundFXCache.Add( nullSound.name, nullSound ); + // add the rest + for ( int group = 0; group < soundGroupings.Length; group++ ) { + for ( int i = 0; i < soundGroupings[group].soundList.Length; i++ ) { + if ( soundFXCache.ContainsKey( soundGroupings[group].soundList[i].name ) ) { + Debug.LogError( "ERROR: Duplicate Sound FX name in the audio manager: '" + soundGroupings[group].name + "' > '" + soundGroupings[group].soundList[i].name + "'" ); + } else { + soundGroupings[group].soundList[i].Group = soundGroupings[group]; + soundFXCache.Add( soundGroupings[group].soundList[i].name, soundGroupings[group].soundList[i] ); + } + } + soundGroupings[group].playingSoundCount = 0; + } + } + + /* + ----------------------- + FindSoundFX() + ----------------------- + */ + static public SoundFX FindSoundFX( string name, bool rebuildCache = false ) { +#if UNITY_EDITOR + if ( theAudioManager == null ) { + Debug.LogError( "ERROR: audio manager not yet initialized or created!" + " Time: " + Time.time ); + return null; + } +#endif + if ( string.IsNullOrEmpty( name ) ) { + return nullSound; + } + if ( rebuildCache ) { + theAudioManager.RebuildSoundFXCache(); + } + if ( !theAudioManager.soundFXCache.ContainsKey( name ) ) { +#if DEBUG_BUILD || UNITY_EDITOR + Debug.LogError( "WARNING: Missing Sound FX in cache: " + name ); +#endif + return nullSound; + } + return theAudioManager.soundFXCache[name]; + } + + /* + ----------------------- + FindAudioManager() + ----------------------- + */ + static private bool FindAudioManager() { + GameObject audioManagerObject = GameObject.Find( "AudioManager" ); + if ( ( audioManagerObject == null ) || ( audioManagerObject.GetComponent() == null ) ) { + if ( !hideWarnings ) { + Debug.LogError( "[ERROR] AudioManager object missing from hierarchy!" ); + hideWarnings = true; + } + return false; + } else { + audioManagerObject.GetComponent().Init(); + } + return true; + } + + /* + ----------------------- + GetGameObject() + ----------------------- + */ + static public GameObject GetGameObject() { + if ( theAudioManager == null ) { + if ( !FindAudioManager() ) { + return null; + } + } + return theAudioManager.gameObject; + } + + /* + ----------------------- + NameMinusGroup() + strip off the sound group from the inspector dropdown + ----------------------- + */ + static public string NameMinusGroup( string name ) { + if ( name.IndexOf( "/" ) > -1 ) { + return name.Substring( name.IndexOf( "/" ) + 1 ); + } + return name; + } + + /* + ----------------------- + GetSoundFXNames() + used by the inspector + ----------------------- + */ + static public string[] GetSoundFXNames( string currentValue, out int currentIdx ) { + currentIdx = 0; + names.Clear(); + if ( theAudioManager == null ) { + if ( !FindAudioManager() ) { + return defaultSound; + } + } + names.Add( nullSound.name ); + for ( int group = 0; group < theAudioManager.soundGroupings.Length; group++ ) { + for ( int i = 0; i < theAudioManager.soundGroupings[group].soundList.Length; i++ ) { + if ( string.Compare( currentValue, theAudioManager.soundGroupings[group].soundList[i].name, true ) == 0 ) { + currentIdx = names.Count; + } + names.Add( theAudioManager.soundGroupings[group].name + "/" + theAudioManager.soundGroupings[group].soundList[i].name ); + } + } + //names.Sort( delegate( string s1, string s2 ) { return s1.CompareTo( s2 ); } ); + return names.ToArray(); + + } +#if UNITY_EDITOR + /* + ----------------------- + OnPrefabReimported() + ----------------------- + */ + static public void OnPrefabReimported() { + if ( theAudioManager != null ) { + Debug.Log( "[AudioManager] Reimporting the sound FX cache." ); + theAudioManager.RebuildSoundFXCache(); + } + } + + /* + ----------------------- + PlaySound() + used in the editor + ----------------------- + */ + static public void PlaySound( string soundFxName ) { + if ( theAudioManager == null ) { + if ( !FindAudioManager() ) { + return; + } + } + SoundFX soundFX = FindSoundFX( soundFxName, true ); + if ( soundFX == null ) { + return; + } + AudioClip clip = soundFX.GetClip(); + if ( clip != null ) { + Assembly unityEditorAssembly = typeof(AudioImporter).Assembly; + Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil"); + MethodInfo method = audioUtilClass.GetMethod( + "PlayClip", + BindingFlags.Static | BindingFlags.Public, + null, + new System.Type[] { typeof(AudioClip) }, + null ); + method.Invoke( null, new object[] { clip } ); + } + } + + /* + ----------------------- + IsSoundPlaying() + used in the editor + ----------------------- + */ + static public bool IsSoundPlaying( string soundFxName ) { + if ( theAudioManager == null ) { + if ( !FindAudioManager() ) { + return false; + } + } + SoundFX soundFX = FindSoundFX( soundFxName, true ); + if ( soundFX == null ) { + return false; + } + AudioClip clip = soundFX.GetClip(); + if ( clip != null ) { + Assembly unityEditorAssembly = typeof(AudioImporter).Assembly; + Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil"); + MethodInfo method = audioUtilClass.GetMethod( + "IsClipPlaying", + BindingFlags.Static | BindingFlags.Public, + null, + new System.Type[] { typeof(AudioClip) }, + null ); + return Convert.ToBoolean( method.Invoke( null, new object[] { clip } ) ); + } + + return false; + } + + /* + ----------------------- + StopSound() + used in the editor + ----------------------- + */ + static public void StopSound(string soundFxName) + { + if (theAudioManager == null) + { + if (!FindAudioManager()) + { + return; + } + } + SoundFX soundFX = FindSoundFX(soundFxName, true); + if (soundFX == null) + { + return; + } + AudioClip clip = soundFX.GetClip(); + if (clip != null) + { + Assembly unityEditorAssembly = typeof(AudioImporter).Assembly; + Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil"); + MethodInfo method = audioUtilClass.GetMethod( + "StopClip", + BindingFlags.Static | BindingFlags.Public, + null, + new System.Type[] { typeof(AudioClip) }, + null); + method.Invoke(null, new object[] { clip }); + } + } +#endif +} + diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs.meta new file mode 100644 index 0000000..02c9d03 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d1d30b41806244fca035fdae2896fb7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs new file mode 100644 index 0000000..b8e8181 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs @@ -0,0 +1,782 @@ +using UnityEngine; +using UnityEngine.Audio; + +//------------------------------------------------------------------------- +// Types +//------------------------------------------------------------------------- + +public enum EmitterChannel { + None = -1, + Reserved = 0, // plays on the single reserved emitter + Any // queues to the next available emitter +} + +[System.Serializable] +public class MixerSnapshot { + public AudioMixerSnapshot snapshot = null; + public float transitionTime = 0.25f; +} + +/* +----------------------- + + GameManager Sound Routines + +----------------------- +*/ +public partial class AudioManager : MonoBehaviour { + + public enum Fade { + In, + Out + } + + private float audioMaxFallOffDistanceSqr = 25.0f * 25.0f; // past this distance, sounds are ignored for the local player + + private SoundEmitter[] soundEmitters = null; // pool of sound emitters to play sounds through + + private FastList playingEmitters = new FastList(); + private FastList nextFreeEmitters = new FastList(); + + private MixerSnapshot currentSnapshot = null; + + static private GameObject soundEmitterParent = null; // parent object for the sound emitters + static private Transform staticListenerPosition = null; // play position for regular 2D sounds + + static private bool showPlayingEmitterCount = false; + static private bool forceShowEmitterCount = false; + + static private bool soundEnabled = true; + static public bool SoundEnabled { get { return soundEnabled; } } + + static readonly AnimationCurve defaultReverbZoneMix = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } ); + + /* + ----------------------- + InitializeSoundSystem() + initialize persistent sound emitter objects that live across scene loads + ----------------------- + */ + void InitializeSoundSystem() { + + int bufferLength = 960; + int numBuffers = 4; + AudioSettings.GetDSPBufferSize( out bufferLength, out numBuffers ); + if ( Application.isPlaying ) { + Debug.Log( "[AudioManager] Audio Sample Rate: " + AudioSettings.outputSampleRate ); + Debug.Log( "[AudioManager] Audio Buffer Length: " + bufferLength + " Size: " + numBuffers ); + } + + // find the audio listener for playing regular 2D sounds + AudioListener audioListenerObject = GameObject.FindObjectOfType() as AudioListener; + if ( audioListenerObject == null ) { + Debug.LogError( "[AudioManager] Missing AudioListener object! Add one to the scene." ); + } else { + staticListenerPosition = audioListenerObject.transform; + } + + // we allocate maxSoundEmitters + reserved channels + soundEmitters = new SoundEmitter[maxSoundEmitters+(int)EmitterChannel.Any]; + + // see if the sound emitters have already been created, if so, nuke it, it shouldn't exist in the scene upon load + soundEmitterParent = GameObject.Find( "__SoundEmitters__" ); + if ( soundEmitterParent != null ) { + // delete any sound emitters hanging around + Destroy( soundEmitterParent ); + } + + // create them all + soundEmitterParent = new GameObject( "__SoundEmitters__" ); + for ( int i = 0; i < maxSoundEmitters + (int)EmitterChannel.Any; i++ ) { + GameObject emitterObject = new GameObject( "SoundEmitter_" + i ); + emitterObject.transform.parent = soundEmitterParent.transform; + emitterObject.transform.position = Vector3.zero; + // don't ever save this to the scene + emitterObject.hideFlags = HideFlags.DontSaveInEditor; + // add the sound emitter components + soundEmitters[i] = emitterObject.AddComponent(); + soundEmitters[i].SetDefaultParent( soundEmitterParent.transform ); + soundEmitters[i].SetChannel( i ); + soundEmitters[i].Stop(); + // save off the original index + soundEmitters[i].originalIdx = i; + } + // reset the free emitter lists + ResetFreeEmitters(); + soundEmitterParent.hideFlags = HideFlags.DontSaveInEditor; + + audioMaxFallOffDistanceSqr = audioMaxFallOffDistance * audioMaxFallOffDistance; + } + + /* + ----------------------- + UpdateFreeEmitters() + ----------------------- + */ + void UpdateFreeEmitters() { + if ( verboseLogging ) { + if ( Input.GetKeyDown( KeyCode.A ) ) { + forceShowEmitterCount = !forceShowEmitterCount; + } + if ( forceShowEmitterCount ) { + showPlayingEmitterCount = true; + } + } + // display playing emitter count when the sound system is overwhelmed + int total = 0, veryLow = 0, low = 0, def = 0, high = 0, veryHigh = 0; + + // find emitters that are done playing and add them to the nextFreeEmitters list + for ( int i = 0; i < playingEmitters.size; ) { + if ( playingEmitters[i] == null ) { + Debug.LogError( "[AudioManager] ERROR: playingEmitters list had a null emitter! Something nuked a sound emitter!!!" ); + playingEmitters.RemoveAtFast( i ); + return; + } + if ( !playingEmitters[i].IsPlaying() ) { + // add to the free list and remove from the playing list + if ( verboseLogging ) { + if ( nextFreeEmitters.Contains( playingEmitters[i] ) ) { + Debug.LogError( "[AudioManager] ERROR: playing sound emitter already in the free emitters list!" ); + } + } + playingEmitters[i].Stop(); + nextFreeEmitters.Add( playingEmitters[i] ); + playingEmitters.RemoveAtFast( i ); + continue; + } + // debugging/profiling + if ( verboseLogging && showPlayingEmitterCount ) { + total++; + switch ( playingEmitters[i].priority ) { + case SoundPriority.VeryLow: veryLow++; break; + case SoundPriority.Low: low++; break; + case SoundPriority.Default: def++; break; + case SoundPriority.High: high++; break; + case SoundPriority.VeryHigh: veryHigh++; break; + } + } + i++; + } + if ( verboseLogging && showPlayingEmitterCount ) { + Debug.LogWarning( string.Format( "[AudioManager] Playing sounds: Total {0} | VeryLow {1} | Low {2} | Default {3} | High {4} | VeryHigh {5} | Free {6}", Fmt( total ), Fmt( veryLow ), Fmt( low ), Fmt( def ), Fmt( high ), Fmt( veryHigh ), FmtFree( nextFreeEmitters.Count ) ) ); + showPlayingEmitterCount = false; + } + } + + /* + ----------------------- + Fmt() + ----------------------- + */ + string Fmt( int count ) { + float t = count / (float)theAudioManager.maxSoundEmitters; + if ( t < 0.5f ) { + return "" + count.ToString() + ""; + } else if ( t < 0.7 ) { + return "" + count.ToString() + ""; + } else { + return "" + count.ToString() + ""; + } + } + + /* + ----------------------- + FmtFree() + ----------------------- + */ + string FmtFree( int count ) { + float t = count / (float)theAudioManager.maxSoundEmitters; + if ( t < 0.2f ) { + return "" + count.ToString() + ""; + } else if ( t < 0.3 ) { + return "" + count.ToString() + ""; + } else { + return "" + count.ToString() + ""; + } + } + + /* + ----------------------- + OnPreSceneLoad() + ----------------------- + */ + void OnPreSceneLoad() { + // move any attached sounds back to the sound emitters parent before changing levels so they don't get destroyed + Debug.Log( "[AudioManager] OnPreSceneLoad cleanup" ); + for ( int i = 0; i < soundEmitters.Length; i++ ) { + soundEmitters[i].Stop(); + soundEmitters[i].ResetParent( soundEmitterParent.transform ); + } + // reset our emitter lists + ResetFreeEmitters(); + } + + /* + ----------------------- + ResetFreeEmitters() + ----------------------- + */ + void ResetFreeEmitters() { + nextFreeEmitters.Clear(); + playingEmitters.Clear(); + for ( int i = (int)EmitterChannel.Any; i < soundEmitters.Length; i++ ) { + nextFreeEmitters.Add( soundEmitters[i] ); + } + } + + /* + ----------------------- + FadeOutSoundChannel() + utility function to fade out a playing sound channel + ----------------------- + */ + static public void FadeOutSoundChannel( int channel, float delaySecs, float fadeTime ) { + theAudioManager.soundEmitters[channel].FadeOutDelayed( delaySecs, fadeTime ); + } + + /* + ----------------------- + StopSound() + ----------------------- + */ + static public bool StopSound( int idx, bool fadeOut = true, bool stopReserved = false ) { + if ( !stopReserved && ( idx == (int)EmitterChannel.Reserved ) ) { + return false; + } + if ( !fadeOut ) { + theAudioManager.soundEmitters[idx].Stop(); + } + else { + theAudioManager.soundEmitters[idx].FadeOut( theAudioManager.soundFxFadeSecs ); + } + + return true; + } + + /* + ----------------------- + FadeInSound() + ----------------------- + */ + public static void FadeInSound( int idx, float fadeTime, float volume ) { + theAudioManager.soundEmitters[idx].FadeIn( fadeTime, volume ); + } + + /* + ----------------------- + FadeInSound() + ----------------------- + */ + public static void FadeInSound( int idx, float fadeTime ) { + theAudioManager.soundEmitters[idx].FadeIn( fadeTime ); + } + + /* + ----------------------- + FadeOutSound() + ----------------------- + */ + public static void FadeOutSound( int idx, float fadeTime ) { + theAudioManager.soundEmitters[idx].FadeOut( fadeTime ); + } + + /* + ----------------------- + StopAllSounds() + ----------------------- + */ + public static void StopAllSounds( bool fadeOut, bool stopReserved = false ) { + for ( int i = 0; i < theAudioManager.soundEmitters.Length; i++ ) { + StopSound( i, fadeOut, stopReserved ); + } + } + + /* + ----------------------- + MuteAllSounds() + ----------------------- + */ + public void MuteAllSounds( bool mute, bool muteReserved = false ) { + for ( int i = 0; i < soundEmitters.Length; i++ ) { + if ( !muteReserved && ( i == (int)EmitterChannel.Reserved ) ) { + continue; + } + soundEmitters[i].audioSource.mute = true; + } + } + + /* + ----------------------- + UnMuteAllSounds() + ----------------------- + */ + public void UnMuteAllSounds( bool unmute, bool unmuteReserved = false ) { + for ( int i = 0; i < soundEmitters.Length; i++ ) { + if ( !unmuteReserved && ( i == (int)EmitterChannel.Reserved ) ) { + continue; + } + if ( soundEmitters[i].audioSource.isPlaying ) { + soundEmitters[i].audioSource.mute = false; + } + } + } + + /* + ----------------------- + GetEmitterEndTime() + ----------------------- + */ + static public float GetEmitterEndTime( int idx ) { + return theAudioManager.soundEmitters[idx].endPlayTime; + } + + /* + ----------------------- + SetEmitterTime() + ----------------------- + */ + static public float SetEmitterTime( int idx, float time ) { + return theAudioManager.soundEmitters[idx].time = time; + } + + /* + ----------------------- + PlaySound() + ----------------------- + */ + static public int PlaySound( AudioClip clip, float volume, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float pitchVariance = 1.0f, bool loop = false ) { + if ( !SoundEnabled ) { + return -1; + } + return PlaySoundAt( ( staticListenerPosition != null ) ? staticListenerPosition.position : Vector3.zero, clip, volume, src, delay, pitchVariance, loop ); + } + + /* + ----------------------- + FindFreeEmitter() + ----------------------- + */ + static private int FindFreeEmitter( EmitterChannel src, SoundPriority priority ) { + // default to the reserved emitter + SoundEmitter next = theAudioManager.soundEmitters[0]; + if ( src == EmitterChannel.Any ) { + // pull from the free emitter list if possible + if ( theAudioManager.nextFreeEmitters.size > 0 ) { + // return the first in the list + next = theAudioManager.nextFreeEmitters[0]; + // remove it from the free list + theAudioManager.nextFreeEmitters.RemoveAtFast( 0 ); + } else { + // no free emitters available so pull from the lowest priority sound + if ( priority == SoundPriority.VeryLow ) { + // skip low priority sounds + return -1; + } else { + // find a playing emitter that has a lower priority than what we're requesting + // TODO - we could first search for Very Low, then Low, etc ... TBD if it's worth the effort + next = theAudioManager.playingEmitters.Find( item => item != null && item.priority < priority ); + if ( next == null ) { + // last chance to find a free emitter + if ( priority < SoundPriority.Default ) { + // skip sounds less than the default priority + if ( theAudioManager.verboseLogging ) { + Debug.LogWarning( "[AudioManager] skipping sound " + priority ); + } + return -1; + } else { + // grab a default priority emitter so that we don't cannabalize a high priority sound + next = theAudioManager.playingEmitters.Find( item => item != null && item.priority <= SoundPriority.Default ); ; + } + } + if ( next != null ) { + if ( theAudioManager.verboseLogging ) { + Debug.LogWarning( "[AudioManager] cannabalizing " + next.originalIdx + " Time: " + Time.time ); + } + // remove it from the playing list + next.Stop(); + theAudioManager.playingEmitters.RemoveFast( next ); + } + } + } + } + if ( next == null ) { + Debug.LogError( "[AudioManager] ERROR - absolutely couldn't find a free emitter! Priority = " + priority + " TOO MANY PlaySound* calls!" ); + showPlayingEmitterCount = true; + return -1; + } + return next.originalIdx; + } + + /* + ----------------------- + PlaySound() + ----------------------- + */ + static public int PlaySound( SoundFX soundFX, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f ) { + if ( !SoundEnabled ) { + return -1; + } + return PlaySoundAt( ( staticListenerPosition != null ) ? staticListenerPosition.position : Vector3.zero, soundFX, src, delay ); + } + + /* + ----------------------- + PlaySoundAt() + ----------------------- + */ + static public int PlaySoundAt( Vector3 position, SoundFX soundFX, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float volumeOverride = 1.0f, float pitchMultiplier = 1.0f ) { + if ( !SoundEnabled ) { + return -1; + } + + AudioClip clip = soundFX.GetClip(); + if ( clip == null ) { + return -1; + } + + // check the distance from the local player and ignore sounds out of range + if ( staticListenerPosition != null ) { + float distFromListener = ( staticListenerPosition.position - position ).sqrMagnitude; + if ( distFromListener > theAudioManager.audioMaxFallOffDistanceSqr ) { + return -1; + } + if ( distFromListener > soundFX.MaxFalloffDistSquared ) { + return -1; + } + } + + // check max playing sounds + if ( soundFX.ReachedGroupPlayLimit() ) { + if ( theAudioManager.verboseLogging ) { + Debug.Log( "[AudioManager] PlaySoundAt() with " + soundFX.name + " skipped due to group play limit" ); + } + return -1; + } + + int idx = FindFreeEmitter( src, soundFX.priority ); + if ( idx == -1 ) { + // no free emitters - should only happen on very low priority sounds + return -1; + } + SoundEmitter emitter = theAudioManager.soundEmitters[idx]; + + // make sure to detach the emitter from a previous parent + emitter.ResetParent( soundEmitterParent.transform ); + emitter.gameObject.SetActive( true ); + + // set up the sound emitter + AudioSource audioSource = emitter.audioSource; + ONSPAudioSource osp = emitter.osp; + + audioSource.enabled = true; + audioSource.volume = Mathf.Clamp01( Mathf.Clamp01( theAudioManager.volumeSoundFX * soundFX.volume ) * volumeOverride * soundFX.GroupVolumeOverride ); + audioSource.pitch = soundFX.GetPitch() * pitchMultiplier; + audioSource.time = 0.0f; + audioSource.spatialBlend = 1.0f; + audioSource.rolloffMode = soundFX.falloffCurve; + if ( soundFX.falloffCurve == AudioRolloffMode.Custom ) { + audioSource.SetCustomCurve( AudioSourceCurveType.CustomRolloff, soundFX.volumeFalloffCurve ); + } + audioSource.SetCustomCurve( AudioSourceCurveType.ReverbZoneMix, soundFX.reverbZoneMix ); + audioSource.dopplerLevel = 0; + audioSource.clip = clip; + audioSource.spread = soundFX.spread; + audioSource.loop = soundFX.looping; + audioSource.mute = false; + audioSource.minDistance = soundFX.falloffDistance.x; + audioSource.maxDistance = soundFX.falloffDistance.y; + audioSource.outputAudioMixerGroup = soundFX.GetMixerGroup( AudioManager.EmitterGroup ); + // set the play time so we can check when sounds are done + emitter.endPlayTime = Time.time + clip.length + delay; + // cache the default volume for fading + emitter.defaultVolume = audioSource.volume; + // sound priority + emitter.priority = soundFX.priority; + // reset this + emitter.onFinished = null; + // update the sound group limits + emitter.SetPlayingSoundGroup( soundFX.Group ); + // add to the playing list + if ( src == EmitterChannel.Any ) { + theAudioManager.playingEmitters.AddUnique( emitter ); + } + + // OSP properties + if ( osp != null ) { + osp.EnableSpatialization = soundFX.ospProps.enableSpatialization; + osp.EnableRfl = theAudioManager.enableSpatializedFastOverride || soundFX.ospProps.useFastOverride ? true : false; + osp.Gain = soundFX.ospProps.gain; + osp.UseInvSqr = soundFX.ospProps.enableInvSquare; + osp.Near = soundFX.ospProps.invSquareFalloff.x; + osp.Far = soundFX.ospProps.invSquareFalloff.y; + audioSource.spatialBlend = (soundFX.ospProps.enableSpatialization) ? 1.0f : 0.8f; + + // make sure to set the properties in the audio source before playing + osp.SetParameters(ref audioSource); + } + + audioSource.transform.position = position; + + if ( theAudioManager.verboseLogging ) { + Debug.Log( "[AudioManager] PlaySoundAt() channel = " + idx + " soundFX = " + soundFX.name + " volume = " + emitter.volume + " Delay = " + delay + " time = " + Time.time + "\n" ); + } + + // play the sound + if ( delay > 0f ) { + audioSource.PlayDelayed( delay ); + } else { + audioSource.Play(); + } + + return idx; + } + + /* + ----------------------- + PlayRandomSoundAt() + ----------------------- + */ + static public int PlayRandomSoundAt( Vector3 position, AudioClip[] clips, float volume, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float pitch = 1.0f, bool loop = false ) { + if ( ( clips == null ) || ( clips.Length == 0 ) ) { + return -1; + } + int idx = Random.Range( 0, clips.Length ); + return PlaySoundAt( position, clips[idx], volume, src, delay, pitch, loop ); + } + + /* + ----------------------- + PlaySoundAt() + ----------------------- + */ + static public int PlaySoundAt( Vector3 position, AudioClip clip, float volume = 1.0f, EmitterChannel src = EmitterChannel.Any, float delay = 0.0f, float pitch = 1.0f, bool loop = false ) { + if ( !SoundEnabled ) { + return -1; + } + + if ( clip == null ) { + return -1; + } + + // check the distance from the local player and ignore sounds out of range + if ( staticListenerPosition != null ) { + if ( ( staticListenerPosition.position - position ).sqrMagnitude > theAudioManager.audioMaxFallOffDistanceSqr ) { + // no chance of being heard + return -1; + } + } + + int idx = FindFreeEmitter( src, 0 ); + if ( idx == -1 ) { + // no free emitters - should only happen on very low priority sounds + return -1; + } + SoundEmitter emitter = theAudioManager.soundEmitters[idx]; + + // make sure to detach the emitter from a previous parent + emitter.ResetParent( soundEmitterParent.transform ); + emitter.gameObject.SetActive( true ); + + // set up the sound emitter + AudioSource audioSource = emitter.audioSource; + ONSPAudioSource osp = emitter.osp; + + audioSource.enabled = true; + audioSource.volume = Mathf.Clamp01( theAudioManager.volumeSoundFX * volume ); + audioSource.pitch = pitch; + audioSource.spatialBlend = 0.8f; + audioSource.rolloffMode = AudioRolloffMode.Linear; + audioSource.SetCustomCurve( AudioSourceCurveType.ReverbZoneMix, defaultReverbZoneMix ); + audioSource.dopplerLevel = 0.0f; + audioSource.clip = clip; + audioSource.spread = 0.0f; + audioSource.loop = loop; + audioSource.mute = false; + audioSource.minDistance = theAudioManager.audioMinFallOffDistance; + audioSource.maxDistance = theAudioManager.audioMaxFallOffDistance; + audioSource.outputAudioMixerGroup = AudioManager.EmitterGroup; + // set the play time so we can check when sounds are done + emitter.endPlayTime = Time.time + clip.length + delay; + // cache the default volume for fading + emitter.defaultVolume = audioSource.volume; + // default priority + emitter.priority = 0; + // reset this + emitter.onFinished = null; + // update the sound group limits + emitter.SetPlayingSoundGroup( null ); + // add to the playing list + if ( src == EmitterChannel.Any ) { + theAudioManager.playingEmitters.AddUnique( emitter ); + } + + // disable spatialization (by default for regular AudioClips) + if ( osp != null ) { + osp.EnableSpatialization = false; + } + + audioSource.transform.position = position; + + if ( theAudioManager.verboseLogging ) { + Debug.Log( "[AudioManager] PlaySoundAt() channel = " + idx + " clip = " + clip.name + " volume = " + emitter.volume + " Delay = " + delay + " time = " + Time.time + "\n" ); + } + + // play the sound + if ( delay > 0f ) { + audioSource.PlayDelayed( delay ); + } else { + audioSource.Play(); + } + + return idx; + } + + /* + ----------------------- + SetOnFinished() + ----------------------- + */ + public static void SetOnFinished( int emitterIdx, System.Action onFinished ) { + if ( emitterIdx >= 0 && emitterIdx < theAudioManager.maxSoundEmitters ) { + theAudioManager.soundEmitters[emitterIdx].SetOnFinished( onFinished ); + } + } + + /* + ----------------------- + SetOnFinished() + ----------------------- + */ + public static void SetOnFinished( int emitterIdx, System.Action onFinished, object obj ) { + if ( emitterIdx >= 0 && emitterIdx < theAudioManager.maxSoundEmitters ) { + theAudioManager.soundEmitters[emitterIdx].SetOnFinished( onFinished, obj ); + } + } + + /* + ----------------------- + AttachSoundToParent() + ----------------------- + */ + public static void AttachSoundToParent( int idx, Transform parent ) { + if ( theAudioManager.verboseLogging ) { + string parentName = parent.name; + if ( parent.parent != null ) { + parentName = parent.parent.name + "/" + parentName; + } + Debug.Log( "[AudioManager] ATTACHING INDEX " + idx + " to " + parentName ); + } + theAudioManager.soundEmitters[idx].ParentTo( parent ); + } + + /* + ----------------------- + DetachSoundFromParent() + ----------------------- + */ + public static void DetachSoundFromParent( int idx ) { + if ( theAudioManager.verboseLogging ) { + Debug.Log( "[AudioManager] DETACHING INDEX " + idx ); + } + theAudioManager.soundEmitters[idx].DetachFromParent(); + } + + /* + ----------------------- + DetachSoundsFromParent() + ----------------------- + */ + public static void DetachSoundsFromParent( SoundEmitter[] emitters, bool stopSounds = true ) { + if ( emitters == null ) { + return; + } + foreach ( SoundEmitter emitter in emitters ) { + if ( emitter.defaultParent != null ) { + if ( stopSounds ) { + emitter.Stop(); + } + emitter.DetachFromParent(); + // make sure it's active + emitter.gameObject.SetActive( true ); + } else { + if ( stopSounds ) { + emitter.Stop(); + } + } + } + } + + /* + ----------------------- + SetEmitterMixerGroup() + ----------------------- + */ + public static void SetEmitterMixerGroup( int idx, AudioMixerGroup mixerGroup ) { + if ( ( theAudioManager != null ) && ( idx > -1 ) ) { + theAudioManager.soundEmitters[idx].SetAudioMixer( mixerGroup ); + } + } + + /* + ----------------------- + GetActiveSnapshot() + ----------------------- + */ + public static MixerSnapshot GetActiveSnapshot() { + return ( theAudioManager != null ) ? theAudioManager.currentSnapshot : null; + } + + /* + ----------------------- + SetCurrentSnapshot() + ----------------------- + */ + public static void SetCurrentSnapshot( MixerSnapshot mixerSnapshot ) { +#if UNITY_EDITOR + if ( mixerSnapshot == null || mixerSnapshot.snapshot == null ) { + Debug.LogError( "[AudioManager] ERROR setting empty mixer snapshot!" ); + } else { + Debug.Log( "[AudioManager] Setting audio mixer snapshot: " + ( ( mixerSnapshot != null && mixerSnapshot.snapshot != null ) ? mixerSnapshot.snapshot.name : "None" ) + " Time: " + Time.time ); + } +#endif + if ( theAudioManager != null ) { + if ( ( mixerSnapshot != null ) && ( mixerSnapshot.snapshot != null ) ) { + mixerSnapshot.snapshot.TransitionTo( mixerSnapshot.transitionTime ); + } else { + mixerSnapshot = null; + } + theAudioManager.currentSnapshot = mixerSnapshot; + } + } + + /* + ----------------------- + BlendWithCurrentSnapshot() + ----------------------- + */ + public static void BlendWithCurrentSnapshot( MixerSnapshot blendSnapshot, float weight, float blendTime = 0.0f ) { + if ( theAudioManager != null ) { + if ( theAudioManager.audioMixer == null ) { + Debug.LogWarning( "[AudioManager] can't call BlendWithCurrentSnapshot if the audio mixer is not set!" ); + return; + } + if ( blendTime == 0.0f ) { + blendTime = Time.deltaTime; + } + if ( ( theAudioManager.currentSnapshot != null ) && (theAudioManager.currentSnapshot.snapshot != null ) ) { + if ( ( blendSnapshot != null ) && ( blendSnapshot.snapshot != null ) ) { + weight = Mathf.Clamp01( weight ); + if ( weight == 0.0f ) { + // revert to the default snapshot + theAudioManager.currentSnapshot.snapshot.TransitionTo( blendTime ); + } else { + AudioMixerSnapshot[] snapshots = new AudioMixerSnapshot[] { theAudioManager.currentSnapshot.snapshot, blendSnapshot.snapshot }; + float[] weights = new float[] { 1.0f - weight, weight }; + theAudioManager.audioMixer.TransitionToSnapshots( snapshots, weights, blendTime ); + } + } + } + } + } + +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs.meta new file mode 100644 index 0000000..b819ea7 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/AudioManager_Sound.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41cb0f893e9a44e83b09a66c55bd7856 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor.meta new file mode 100644 index 0000000..28043d1 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor.meta @@ -0,0 +1,5 @@ +fileFormatVersion: 2 +guid: 02213405caaf04aeea7876974c06fa5a +folderAsset: yes +DefaultImporter: + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs new file mode 100644 index 0000000..c3a96f5 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using UnityEditor; + +/* +----------------------- +AudioImportPostProcessor() +----------------------- +*/ +public class AudioImportPostProcessor : AssetPostprocessor { + + static void OnPostprocessAllAssets( string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths ) { + AudioManager audioManager = AudioManager.Instance; + if ( audioManager != null ) { + // find the asset path to the loaded audio manager prefab +#if UNITY_2018_2_OR_NEWER + Object prefabObject = PrefabUtility.GetCorrespondingObjectFromSource( audioManager ); +#else + Object prefabObject = PrefabUtility.GetPrefabParent( audioManager ); +#endif + if ( prefabObject != null ) { + string path = AssetDatabase.GetAssetPath( prefabObject ); + // check to see if the AudioManager prefab has been reimported. + // if so, rebuild everything + foreach ( string asset in importedAssets ) { + if ( asset.ToLower() == path.ToLower() ) { + // in the event the audio manager is selected, deselect it first before reloading + Debug.Log( "[AudioManager] AudioManager prefab reloaded: " + path ); + Selection.objects = new Object[0] { }; + // unfortunately even saving the audio manager prefab will trigger this action + //string msg = "The Audio Manager was reloaded. If you are going to be making modifications to the Audio Manager, "; + //msg += "please verify you have the latest version before proceeding. If in doubt, restart Unity before making modifications."; + //EditorUtility.DisplayDialog( "Audio Manager Prefab Reloaded", msg, "OK" ); + // do the actual reload + AudioManager.OnPrefabReimported(); + break; + } + } + } + } + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs.meta new file mode 100644 index 0000000..95789e5 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioImportPostProcessor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 48902580b26e3554d992bad48087eee5 +timeCreated: 1471010515 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs new file mode 100644 index 0000000..89285de --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs @@ -0,0 +1,626 @@ +using UnityEngine; +using UnityEditor; +using System.Collections.Generic; + +/* +----------------------- + + AudioManagerInspector + +----------------------- +*/ +[CustomEditor(typeof(AudioManager))] +public class AudioManagerInspector : Editor { + + private AudioManager audioManager = null; + private string dragDropIdentifier = "MoveSoundFX"; + private GUIStyle customDividerStyle = null; + + /* + ----------------------- + OnInspectorGUI() + ----------------------- + */ + public override void OnInspectorGUI() { + + audioManager = target as AudioManager; + + Event e = Event.current; + + // draw the default properties + DrawDefaultProperties(); + + // draw the categories section + DrawCategories( e ); + + serializedObject.Update(); + + // draw the sound effects for the selected category + DrawSoundEffects( e ); + + serializedObject.ApplyModifiedProperties(); + + CreateStyles(); + } + + /* + ----------------------- + MarkDirty() + ----------------------- + */ + void MarkDirty() { + serializedObject.SetIsDifferentCacheDirty(); + EditorUtility.SetDirty( audioManager ); + } + + static private int selectedGroup = 0; + private int nextGroup = -1; + private int editGroup = -1; + private FastList soundGroups = new FastList(); + private FastList groups = new FastList(); + private Rect dropArea = new Rect(); + private bool addSound = false; + private int deleteSoundIdx = -1; + private int dupeSoundIdx = -1; + private bool sortSounds = false; + private bool moveQueued = false; + private int origGroup = -1; + private int origIndex = -1; + private int moveToGroup = -1; + + /* + ----------------------- + DrawDefaultProperties() + ----------------------- + */ + void DrawDefaultProperties() { + + BeginContents(); + if ( DrawHeader( "Default Properties", true ) ) { + EditorGUILayout.BeginVertical( GUI.skin.box ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "makePersistent" ), new GUIContent( "Don't Destroy on Load" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "enableSpatializedAudio" ), new GUIContent( "Enable Spatialized Audio" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "enableSpatializedFastOverride" ), new GUIContent( "Force Disable Reflections" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "audioMixer" ), new GUIContent( "Master Audio Mixer" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "defaultMixerGroup" ), new GUIContent( "Pooled Emitter Mixer Group" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "reservedMixerGroup" ), new GUIContent( "Reserved Emitter Mixer Group" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "voiceChatMixerGroup" ), new GUIContent( "Voice Chat Mixer Group" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "verboseLogging" ), new GUIContent( "Verbose Logging" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "maxSoundEmitters" ), new GUIContent( "Max Sound Emitters" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "volumeSoundFX" ), new GUIContent( "Default Volume" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "soundFxFadeSecs" ), new GUIContent( "Sound FX Fade Secs" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "audioMinFallOffDistance" ), new GUIContent( "Minimum Falloff Distance" ) ); + EditorGUILayout.PropertyField( serializedObject.FindProperty( "audioMaxFallOffDistance" ), new GUIContent( "Maximum Falloff Distance" ) ); + EditorGUILayout.EndVertical(); + serializedObject.ApplyModifiedProperties(); + } + EndContents(); + } + + /* + ----------------------- + DrawSoundGroupProperties() + ----------------------- + */ + void DrawSoundGroupProperties() { + if ( selectedGroup == -1 ) { + return; + } + + SerializedProperty soundGroupsArray = serializedObject.FindProperty( "soundGroupings" ); + if ( selectedGroup >= soundGroupsArray.arraySize ) { + return; + } + SerializedProperty soundGroup = soundGroupsArray.GetArrayElementAtIndex( selectedGroup ); + string soundGroupName = soundGroup.FindPropertyRelative( "name" ).stringValue; + if ( DrawHeader( string.Format( "{0} Properties", soundGroupName ), true ) ) { + EditorGUILayout.BeginVertical( GUI.skin.box ); + EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "mixerGroup" ), new GUIContent( "Override Mixer Group", "Leave empty to use the Audio Manager's default mixer group" ) ); + if ( !Application.isPlaying ) { + EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "maxPlayingSounds" ), new GUIContent( "Max Playing Sounds Limit", "Max playing sounds for this sound group, 0 = no limit" ) ); + } else { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "maxPlayingSounds" ), new GUIContent( "Max Playing Sounds Limit", "Max playing sounds for this sound group, 0 = no limit" ) ); + // cast to the actual object + int playingSounds = soundGroup.FindPropertyRelative( "playingSoundCount" ).intValue; + EditorGUILayout.LabelField( string.Format( "Playing: {0}", playingSounds ), GUILayout.Width( 80.0f ) ); + EditorGUILayout.EndHorizontal(); + } + EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "preloadAudio" ), new GUIContent( "Preload Audio Clips", "Default = No special preloading, Preload = Audio clips are set to 'Preload', Manual Preload = Audio clips are set to not 'Preload'" ) ); + EditorGUILayout.PropertyField( soundGroup.FindPropertyRelative( "volumeOverride" ), new GUIContent( "Volume Override", "All sounds played in this group will have volume scaled by this amount" ) ); + if ( soundGroup.FindPropertyRelative( "volumeOverride" ).floatValue == 0.0f ) { + EditorGUILayout.HelpBox( "With a volumeOverride of 0.0, these sounds will not play!", MessageType.Warning ); + } + EditorGUILayout.EndVertical(); + serializedObject.ApplyModifiedProperties(); + } + } + + /* + ----------------------- + DrawCategories() + ----------------------- + */ + void DrawCategories( Event e ) { + + // do any housework before we start drawing + if ( moveQueued ) { + // make a temp copy + List origSoundList = new List( audioManager.soundGroupings[origGroup].soundList ); + SoundFX temp = origSoundList[origIndex]; + List moveToSoundList = new List( audioManager.soundGroupings[moveToGroup].soundList ); + // add it to the move to group + moveToSoundList.Add( temp ); + audioManager.soundGroupings[moveToGroup].soundList = moveToSoundList.ToArray(); + // and finally, remove it from the original group + origSoundList.RemoveAt( origIndex ); + audioManager.soundGroupings[origGroup].soundList = origSoundList.ToArray(); + Debug.Log( "> Moved '" + temp.name + "' from " + "'" + audioManager.soundGroupings[origGroup].name + "' to '" + audioManager.soundGroupings[moveToGroup].name ); + MarkDirty(); + moveQueued = false; + } + // switch to the next group + if ( nextGroup > -1 ) { + selectedGroup = nextGroup; + nextGroup = -1; + } + // add a sound + if ( addSound ) { + List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList ); + SoundFX soundFX = new SoundFX(); + soundFX.name = audioManager.soundGroupings[selectedGroup].name.ToLower() + "_new_unnamed_sound_fx"; + soundList.Add( soundFX ); + audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray(); + MarkDirty(); + addSound = false; + } + // sort the sounds + if ( sortSounds ) { + List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList ); + soundList.Sort( delegate ( SoundFX sfx1, SoundFX sfx2 ) { return string.Compare( sfx1.name, sfx2.name ); } ); + audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray(); + MarkDirty(); + sortSounds = false; + } + // delete a sound + if ( deleteSoundIdx > -1 ) { + List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList ); + soundList.RemoveAt( deleteSoundIdx ); + audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray(); + MarkDirty(); + deleteSoundIdx = -1; + } + // duplicate a sound + if ( dupeSoundIdx > -1 ) { + List soundList = new List( audioManager.soundGroupings[selectedGroup].soundList ); + SoundFX origSoundFX = soundList[dupeSoundIdx]; + // clone this soundFX + string json = JsonUtility.ToJson( origSoundFX ); + SoundFX soundFX = JsonUtility.FromJson( json ); + soundFX.name += "_duplicated"; + soundList.Insert( dupeSoundIdx + 1, soundFX ); + audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray(); + MarkDirty(); + dupeSoundIdx = -1; + } + + if ( e.type == EventType.Repaint ) { + groups.Clear(); + } + + GUILayout.Space( 6f ); + + Color defaultColor = GUI.contentColor; + BeginContents(); + + if ( DrawHeader( "Sound FX Groups", true ) ) { + EditorGUILayout.BeginVertical( GUI.skin.box ); + soundGroups.Clear(); + for ( int i = 0; i < audioManager.soundGroupings.Length; i++ ) { + soundGroups.Add( audioManager.soundGroupings[i] ); + } + for ( int i = 0; i < soundGroups.size; i++ ) { + EditorGUILayout.BeginHorizontal(); + { + if ( i == selectedGroup ) { + GUI.contentColor = ( i == editGroup ) ? Color.white : Color.yellow; + } else { + GUI.contentColor = defaultColor; + } + if ( ( e.type == EventType.KeyDown ) && ( ( e.keyCode == KeyCode.Return ) || ( e.keyCode == KeyCode.KeypadEnter ) ) ) { + // toggle editing + if ( editGroup >= 0 ) { + editGroup = -1; + } + Event.current.Use(); + } + if ( i == editGroup ) { + soundGroups[i].name = GUILayout.TextField( soundGroups[i].name, GUILayout.MinWidth( Screen.width - 80f ) ); + } else { + GUILayout.Label( soundGroups[i].name, ( i == selectedGroup ) ? EditorStyles.whiteLabel : EditorStyles.label, GUILayout.ExpandWidth( true ) ); + } + GUILayout.FlexibleSpace(); + if ( GUILayout.Button( GUIContent.none, "OL Minus", GUILayout.Width(17f) ) ) { // minus button + if ( EditorUtility.DisplayDialog( "Delete '" + soundGroups[i].name + "'", "Are you sure you want to delete the selected sound group?", "Continue", "Cancel" ) ) { + soundGroups.RemoveAt( i ); + MarkDirty(); + } + } + } + EditorGUILayout.EndHorizontal(); + // build a list of items + Rect lastRect = GUILayoutUtility.GetLastRect(); + if ( e.type == EventType.Repaint ) { + groups.Add ( new ItemRect( i, lastRect, null ) ); + } + if ( ( e.type == EventType.MouseDown ) && lastRect.Contains( e.mousePosition ) ) { + if ( ( i != selectedGroup ) || ( e.clickCount == 2 ) ) { + nextGroup = i; + if ( e.clickCount == 2 ) { + editGroup = i; + } else if ( editGroup != nextGroup ) { + editGroup = -1; + } + Repaint(); + } + } + } + // add the final plus button + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if ( GUILayout.Button( GUIContent.none, "OL Plus", GUILayout.Width(17f) ) ) { // plus button + soundGroups.Add( new SoundGroup( "unnamed sound group" ) ); + selectedGroup = editGroup = soundGroups.size - 1; + MarkDirty(); + } + EditorGUILayout.EndHorizontal(); + EditorGUILayout.EndVertical(); + + // reset the color + GUI.contentColor = defaultColor; + + // the sort and import buttons + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if ( GUILayout.Button( "Sort", GUILayout.Width( 70f ) ) ) { + soundGroups.Sort( delegate( SoundGroup sg1, SoundGroup sg2 ) { return string.Compare( sg1.name, sg2.name ); } ); + MarkDirty(); + } + EditorGUILayout.EndHorizontal(); + + // draw a rect around the selected item + if ( ( selectedGroup >= 0 ) && ( selectedGroup < groups.size ) ) { + EditorGUI.DrawRect( groups[selectedGroup].rect, new Color( 1f, 1f, 1f, 0.06f ) ); + } + + // finally move the sound groups back into the audio manager + if ( soundGroups.size > 0 ) { + audioManager.soundGroupings = soundGroups.ToArray(); + } + + // calculate the drop area rect + if ( ( e.type == EventType.Repaint ) && ( groups.size > 0 ) ) { + dropArea.x = groups[0].rect.x; + dropArea.y = groups[0].rect.y; + dropArea.width = groups[0].rect.width; + dropArea.height = ( groups[groups.size-1].rect.y - groups[0].rect.y ) + groups[groups.size-1].rect.height; + } + } + // draw the sound group properties now + DrawSoundGroupProperties(); + + EndContents(); + + EditorGUILayout.HelpBox("Create and delete sound groups by clicking + and - respectively. Double click to rename sound groups. Drag and drop sounds from below to the groups above to move them.", MessageType.Info); + + } + + public class CustomDragData{ + public int originalGroupIndex; + public int originalIndex; + public SerializedProperty originalProperty; + } + + public class ItemRect { + public ItemRect( int index, Rect rect, SerializedProperty prop ) { + this.index = index; + this.rect = rect; + this.prop = prop; + } + public int index; + public Rect rect; + public SerializedProperty prop; + } + + private FastList items = new FastList(); + + /* + ----------------------- + CreateStyles() + ----------------------- + */ + void CreateStyles() { + if ( customDividerStyle == null ) { + customDividerStyle = new GUIStyle( EditorStyles.label ); + customDividerStyle.normal.background = MakeTex( 4, 4, new Color( 0.5f, 0.5f, 0.5f, 0.25f ) ); + customDividerStyle.margin.right -= 16; + } + } + + /* + ----------------------- + MakeTex() + ----------------------- + */ + private Texture2D MakeTex( int width, int height, Color col ) { + Color[] pix = new Color[width*height]; + + for ( int i = 0; i < pix.Length; i++ ) + pix[i] = col; + + Texture2D result = new Texture2D(width, height); + result.SetPixels( pix ); + result.Apply(); + + return result; + } + + /* + ----------------------- + DrawSoundEffects() + ----------------------- + */ + void DrawSoundEffects( Event e ) { + if ( ( selectedGroup < 0 ) || ( audioManager.soundGroupings.Length == 0 ) || ( selectedGroup >= audioManager.soundGroupings.Length ) ) { + return; + } + + if ( e.type == EventType.Repaint ) { + items.Clear(); + } else { + CheckStartDrag( e ); + } + + BeginContents(); + if ( DrawHeader( "Sound Effects", true ) ) { + GUILayout.Space(3f); + GUILayout.BeginVertical( GUI.skin.box ); + + SerializedProperty soundGroupsArray = serializedObject.FindProperty( "soundGroupings" ); + SerializedProperty soundGroup = soundGroupsArray.GetArrayElementAtIndex( selectedGroup ); + SerializedProperty soundList = soundGroup.FindPropertyRelative( "soundList" ); + + CreateStyles(); + + Rect prevRect = new Rect(); + if ( soundList.arraySize > 0 ) { + // show all the sounds + for ( int i = 0; i < soundList.arraySize; i++ ) { + EditorGUI.indentLevel = 1; + SerializedProperty soundFX = soundList.GetArrayElementAtIndex( i ); + SerializedProperty visToggle = soundFX.FindPropertyRelative( "visibilityToggle" ); + EditorGUILayout.BeginHorizontal( customDividerStyle ); + { + string soundFXName = soundFX.FindPropertyRelative( "name" ).stringValue; + // save the visibility state + visToggle.boolValue = EditorGUILayout.Foldout( visToggle.boolValue, soundFXName ); + + // play button + if ( GUILayout.Button( "\u25BA", GUILayout.Width( 17f ), GUILayout.Height( 16f ) ) ) { + if ( AudioManager.IsSoundPlaying( soundFXName ) ) { + AudioManager.StopSound( soundFXName ); + } else { + AudioManager.PlaySound( soundFXName ); + } + } + } + EditorGUILayout.EndHorizontal(); + if ( visToggle.boolValue ) { + EditorGUILayout.PropertyField( soundFX, true ); + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if ( GUILayout.Button( "Delete FX", GUILayout.Width( Screen.width / 3.0f ) ) ) { + if ( EditorUtility.DisplayDialog( "Delete " + soundFX.displayName, "Are you sure?", "Yes", "No!" ) ) { + deleteSoundIdx = i; + } + } + if ( GUILayout.Button( "Duplicate FX", GUILayout.Width( Screen.width / 3.0f ) ) ) { + dupeSoundIdx = i; + } + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + GUILayout.Space( 10.0f ); + } + if ( e.type == EventType.Repaint ) { + // GetLastRect() is now returning the last rect drawn in the property drawer, + // not the rect used for the entire SoundFX + Rect curRect = prevRect; + curRect.y = prevRect.y + EditorGUIUtility.singleLineHeight; + Rect lastRect = GUILayoutUtility.GetLastRect(); + curRect.height = ( lastRect.y + lastRect.height ) - curRect.y; + curRect.width = Screen.width; + items.Add( new ItemRect( i, curRect, soundFX ) ); + } + prevRect = GUILayoutUtility.GetLastRect(); + } + } else { + EditorGUILayout.LabelField( " " ); + } + GUILayout.EndVertical(); + GUILayout.Space(3f); + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if ( GUILayout.Button( "Add FX", GUILayout.Width( 70f ) ) ) { + //soundList.InsertArrayElementAtIndex( soundList.arraySize ); + //MarkDirty(); + addSound = true; + } + if ( GUILayout.Button( "Sort", GUILayout.Width( 70f ) ) ) { + sortSounds = true; + } + EditorGUILayout.EndHorizontal(); + + } + EndContents(); + + UpdateDrag( e ); + + } + + /* + ----------------------- + CheckStartDrag() + ----------------------- + */ + void CheckStartDrag( Event e ) { + + if ( ( e.type == EventType.MouseDrag ) && ( e.button == 0 ) ) { + for ( int i = 0; i < items.size; i++ ) { + if ( items[i].rect.Contains( e.mousePosition ) ) { + DragAndDrop.PrepareStartDrag();// reset data + + CustomDragData dragData = new CustomDragData(); + dragData.originalGroupIndex = selectedGroup; + dragData.originalIndex = items[i].index; + dragData.originalProperty = items[i].prop; + + DragAndDrop.SetGenericData( dragDropIdentifier, dragData ); + + DragAndDrop.objectReferences = new Object[0]; + + DragAndDrop.StartDrag( dragData.originalProperty.FindPropertyRelative( "name" ).stringValue ); + e.Use(); + } + } + } + } + + /* + ----------------------- + FindGroupIndex() + ----------------------- + */ + int FindGroupIndex( Event e ) { + for ( int i = 0; i < groups.size; i++ ) { + if ( groups[i].rect.Contains( e.mousePosition ) ) { + return i; + } + } + return -1; + } + + /* + ----------------------- + UpdateDrag() + ----------------------- + */ + void UpdateDrag( Event e ) { + + CustomDragData dragData = DragAndDrop.GetGenericData( dragDropIdentifier ) as CustomDragData; + if ( dragData == null ) { + return; + } + + int groupIndex = FindGroupIndex( e ); + + switch ( e.type ) { + case EventType.DragUpdated: + if ( ( groupIndex >= 0 ) && ( groupIndex != selectedGroup ) ) { + DragAndDrop.visualMode = DragAndDropVisualMode.Move; + } else { + DragAndDrop.visualMode = DragAndDropVisualMode.Rejected; + } + e.Use(); + break; + case EventType.Repaint: + if ( ( DragAndDrop.visualMode == DragAndDropVisualMode.None ) || + ( DragAndDrop.visualMode == DragAndDropVisualMode.Rejected ) ) { + break; + } + if ( groupIndex >= 0 && groupIndex < groups.size ) { + EditorGUI.DrawRect( groups[groupIndex].rect, new Color( 0f, 1f, 0f, 0.1f ) ); + } + break; + case EventType.DragPerform: + DragAndDrop.AcceptDrag(); + // queue the sound FX move + QueueSoundFXMove( dragData.originalGroupIndex, dragData.originalIndex, groupIndex ); + e.Use(); + break; + case EventType.MouseUp: + // in case MouseDrag never occurred: + DragAndDrop.PrepareStartDrag(); + break; + } + } + + /* + ----------------------- + QueueSoundFXMove() + ----------------------- + */ + void QueueSoundFXMove( int origGroupIndex, int origSoundIndex, int newGroupIndex ) { + moveQueued = true; + origGroup = origGroupIndex; + origIndex = origSoundIndex; + moveToGroup = newGroupIndex; + } + + /* + ----------------------- + DrawHeader() + ----------------------- + */ + static public bool DrawHeader (string text) { return DrawHeader(text, text, false); } + static public bool DrawHeader (string text, string key) { return DrawHeader(text, key, false); } + static public bool DrawHeader (string text, bool forceOn) { return DrawHeader(text, text, forceOn); } + static public bool DrawHeader( string text, string key, bool forceOn ) { + bool state = EditorPrefs.GetBool(key, true); + + GUILayout.Space(3f); + if (!forceOn && !state) GUI.backgroundColor = new Color(0.8f, 0.8f, 0.8f); + GUILayout.BeginHorizontal(); + GUILayout.Space(3f); + + GUI.changed = false; + text = "" + text + ""; + if (state) text = "\u25BC " + text; + else text = "\u25B6 " + text; + if (!GUILayout.Toggle(true, text, "dragtab", GUILayout.MinWidth(20f))) state = !state; + if (GUI.changed) EditorPrefs.SetBool(key, state); + + GUILayout.Space(2f); + GUILayout.EndHorizontal(); + GUI.backgroundColor = Color.white; + if (!forceOn && !state) GUILayout.Space(3f); + return state; + } + + /* + ----------------------- + BeginContents() + ----------------------- + */ + static public void BeginContents() { + GUILayout.BeginHorizontal(); + GUILayout.Space(4f); + EditorGUILayout.BeginHorizontal(GUILayout.MinHeight(10f)); + GUILayout.BeginVertical(); + GUILayout.Space(2f); + } + + /* + ----------------------- + EndContents() + ----------------------- + */ + static public void EndContents() { + GUILayout.Space(3f); + GUILayout.EndVertical(); + EditorGUILayout.EndHorizontal(); + GUILayout.Space(3f); + GUILayout.EndHorizontal(); + GUILayout.Space(3f); + } + +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs.meta new file mode 100644 index 0000000..b5a07f7 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/AudioManagerInspector.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f04a80514947486d9793cab0005447f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs new file mode 100644 index 0000000..528dcc1 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs @@ -0,0 +1,61 @@ +using UnityEditor; +using UnityEngine; + +/* +----------------------- + + MinMaxPropertyDrawer + +----------------------- +*/ +[CustomPropertyDrawer (typeof (MinMaxAttribute))] +public class MinMaxPropertyDrawer : PropertyDrawer { + + // Provide easy access to the MinMaxAttribute for reading information from it. + MinMaxAttribute minMax { get { return ((MinMaxAttribute)attribute); } } + + /* + ----------------------- + GetPropertyHeight() + ----------------------- + */ + public override float GetPropertyHeight( SerializedProperty prop, GUIContent label ) { + return base.GetPropertyHeight( prop, label ) * 2f; + } + + /* + ----------------------- + OnGUI() + ----------------------- + */ + public override void OnGUI( Rect position, SerializedProperty property, GUIContent label ) { + Rect sliderPosition = EditorGUI.PrefixLabel( position, label ); + SerializedProperty min = property.FindPropertyRelative( "x" ); + SerializedProperty max = property.FindPropertyRelative( "y" ); + + // draw the range and the reset button first so that the slider doesn't grab all the input + Rect rangePosition = sliderPosition; + rangePosition.y += rangePosition.height * 0.5f; + rangePosition.height *= 0.5f; + Rect contentPosition = rangePosition; + EditorGUI.indentLevel = 0; + EditorGUIUtility.labelWidth = 30f; + contentPosition.width *= 0.3f; + EditorGUI.PropertyField(contentPosition, min, new GUIContent( "Min" ) ); + contentPosition.x += contentPosition.width + 20f; + EditorGUI.PropertyField( contentPosition, max, new GUIContent( "Max" ) ); + contentPosition.x += contentPosition.width + 20f; + contentPosition.width = 50.0f; + if ( GUI.Button( contentPosition, "Reset" ) ) { + min.floatValue = minMax.minDefaultVal; + max.floatValue = minMax.maxDefaultVal; + } + float minValue = min.floatValue; + float maxValue = max.floatValue; + EditorGUI.MinMaxSlider( sliderPosition, GUIContent.none, ref minValue, ref maxValue, minMax.min, minMax.max ); + // round to readable values + min.floatValue = Mathf.Round( minValue / 0.01f ) * 0.01f; + max.floatValue = Mathf.Round( maxValue / 0.01f ) * 0.01f; + } + +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs.meta new file mode 100644 index 0000000..1114479 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MinMaxPropertyDrawer.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 225aed143a64c4a6a93f3a07656ac5cd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs new file mode 100644 index 0000000..743ba60 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs @@ -0,0 +1,45 @@ +using UnityEditor; +using UnityEngine; + +/* +----------------------- + + MixerSnapshotPropertyDrawer + +----------------------- +*/ +[CustomPropertyDrawer( typeof( MixerSnapshot ) )] +public class MixerSnapshotPropertyDrawer : PropertyDrawer { + + // Draw the property inside the given rect + public override void OnGUI( Rect position, SerializedProperty property, GUIContent label ) { + // Using BeginProperty / EndProperty on the parent property means that + // prefab override logic works on the entire property. + EditorGUI.BeginProperty( position, label, property ); + + // Draw label + position = EditorGUI.PrefixLabel( position, GUIUtility.GetControlID( FocusType.Passive ), label ); + + // Don't make child fields be indented + var indent = EditorGUI.indentLevel; + EditorGUI.indentLevel = 0; + EditorGUIUtility.labelWidth = 65; + + float width = ( position.width - 15.0f ) / 2.0f; + + // Calculate rects + var srcRect = new Rect( position.x, position.y, width + 20, position.height ); position.x += width + 25.0f; + var destRect = new Rect( position.x, position.y, width - 60, position.height ); position.x += width - 60.0f; + var secsRect = new Rect( position.x, position.y, 40, position.height ); + + // Draw fields - pass GUIContent.none to each so they are drawn without labels + EditorGUI.PropertyField( srcRect, property.FindPropertyRelative( "snapshot" ), GUIContent.none ); + EditorGUI.PropertyField( destRect, property.FindPropertyRelative( "transitionTime" ), new GUIContent( "Transition" ) ); + EditorGUI.LabelField( secsRect, new GUIContent( "sec(s)" ) ); + + // Set indent back to what it was + EditorGUI.indentLevel = indent; + + EditorGUI.EndProperty(); + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs.meta new file mode 100644 index 0000000..8116165 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/MixerSnapshotPropertyDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 82a91f30f2305c14dbfd2cc3c289dc59 +timeCreated: 1472247018 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs new file mode 100644 index 0000000..528fe4f --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs @@ -0,0 +1,62 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; + +/* +----------------------- + +OSPPropsPropertyDrawer + +----------------------- +*/ +[CustomPropertyDrawer(typeof(OSPProps))] +public class OSPPropsPropertyDrawer : PropertyDrawer { + + static float lineHeight = EditorGUIUtility.singleLineHeight + 2.0f; + static float indent = 32.0f; + // TODO - some day just enumerate these + static string[] props = new string[] { "useFastOverride", "gain", "enableInvSquare", "volumetric" , "invSquareFalloff" }; + static string[] names = new string[] { "Reflections Enabled", "Gain", "Enable Oculus Atten.", "Volumetric", "Range" }; + static int[] lines = new int[] { 1, 1, 1, 1, 2, 2 }; + /* + ----------------------- + OnGUI() + ----------------------- + */ + public override void OnGUI( Rect position, SerializedProperty prop, GUIContent label ) { + SerializedProperty playSpatializedProp = prop.FindPropertyRelative("enableSpatialization"); + position.height = lineHeight; + EditorGUI.PropertyField( position, playSpatializedProp ); + if ( playSpatializedProp.boolValue ) { + position.y += lineHeight + 4.0f; + Rect posLine = position; + posLine.x += indent; + posLine.width -= indent; + posLine.height = 1f; + GUI.Box( posLine, "" ); + position.y -= 10.0f; + for ( int i = 0; i < props.Length; i++ ) { + position.y += lineHeight; + position.height = ( lineHeight * lines[i] ); + SerializedProperty sibling = prop.FindPropertyRelative( props[i] ); + EditorGUI.PropertyField( position, sibling, new GUIContent( names[i] ) ); + } + } + } + + /* + ----------------------- + GetPropertyHeight() + ----------------------- + */ + public override float GetPropertyHeight (SerializedProperty prop, GUIContent label) { + SerializedProperty playSpatializedProp = prop.FindPropertyRelative("enableSpatialization"); + if ( !playSpatializedProp.boolValue ) { + return base.GetPropertyHeight( prop, label ); + } else { + return base.GetPropertyHeight( prop, label ) + ( lineHeight * ( props.Length + 1 ) ) + 16.0f; + } + } + +} + diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs.meta new file mode 100644 index 0000000..1f97341 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/OSPPropsPropertyDrawer.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9fc79251b168140d68851f1e8c283514 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs new file mode 100644 index 0000000..855ce1e --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs @@ -0,0 +1,63 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; + +/* +----------------------- + +SoundFXPropertyDrawer + +----------------------- +*/ +[CustomPropertyDrawer(typeof(SoundFX))] +public class SoundFXPropertyDrawer : PropertyDrawer { + + static float lineHeight = EditorGUIUtility.singleLineHeight + 2.0f; + + static string[] props = new string[] { "name", "playback", "volume", "pitchVariance", "falloffDistance", "falloffCurve", "reverbZoneMix", "spread", "pctChanceToPlay", "priority", "delay", "looping", "ospProps", "soundClips" }; + + /* + ----------------------- + OnGUI() + ----------------------- + */ + public override void OnGUI( Rect position, SerializedProperty prop, GUIContent label ) { + + EditorGUILayout.BeginVertical(); + for ( int i = 0; i < props.Length; i++ ) { + EditorGUI.indentLevel = 2; + SerializedProperty property = prop.FindPropertyRelative( props[i] ); + if ( props[i] == "reverbZoneMix" ) { + EditorGUILayout.BeginHorizontal(); + SerializedProperty reverbCurve = prop.FindPropertyRelative( "reverbZoneMix" ); + EditorGUILayout.PropertyField( reverbCurve, true, GUILayout.Width( Screen.width - 130.0f ) ); + if ( GUILayout.Button( "Reset", GUILayout.Width( 50.0f ) ) ) { + reverbCurve.animationCurveValue = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } ); + } + EditorGUILayout.EndHorizontal(); + } else { + EditorGUILayout.PropertyField( property, true, GUILayout.Width( Screen.width - 80.0f ) ); + position.y += lineHeight + 4.0f; + if ( props[i] == "falloffCurve" ) { + if ( property.enumValueIndex == (int)AudioRolloffMode.Custom ) { + EditorGUILayout.PropertyField( prop.FindPropertyRelative( "volumeFalloffCurve" ), true, GUILayout.Width( Screen.width - 80.0f ) ); + position.y += lineHeight + 4.0f; + } + } + } + } + EditorGUILayout.EndVertical(); + GUILayout.Space( 5.0f ); + } + + /* + ----------------------- + GetPropertyHeight() + ----------------------- + */ + public override float GetPropertyHeight (SerializedProperty prop, GUIContent label) { + return base.GetPropertyHeight( prop, label ); + } + +} + diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs.meta new file mode 100644 index 0000000..ba7613b --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXPropertyDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e791ce392b6937f47b1f7c90c6b402db +timeCreated: 1468857307 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs new file mode 100644 index 0000000..6b58785 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs @@ -0,0 +1,58 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; + +/* +----------------------- + +SoundFXRefPropertyDrawer + +----------------------- +*/ +[CustomPropertyDrawer(typeof(SoundFXRef))] +public class SoundFXRefPropertyDrawer : PropertyDrawer { + + static private GUIStyle disabledStyle = null; + + /* + ----------------------- + OnGUI() + ----------------------- + */ + public override void OnGUI( Rect position, SerializedProperty prop, GUIContent label ) { + int idx = 0; + Rect buttonPosition = position; + buttonPosition.x = position.x + position.width - 40f; + buttonPosition.width = 20f; + position.width = buttonPosition.x - position.x - 2f; + SerializedProperty nameProp = prop.FindPropertyRelative( "soundFXName" ); + if ( AudioManager.GetGameObject() == null ) { + if ( disabledStyle == null ) { + disabledStyle = new GUIStyle(); + disabledStyle.normal.textColor = Color.gray; + } + EditorGUI.LabelField(position, label.text, nameProp.stringValue, disabledStyle ); + } + else { + string[] soundFXNames = AudioManager.GetSoundFXNames( nameProp.stringValue, out idx ); + + idx = EditorGUI.Popup( position, label.text, idx, soundFXNames ); + nameProp.stringValue = AudioManager.NameMinusGroup( soundFXNames[idx] ); + // play button + if ( GUI.Button( buttonPosition, "\u25BA" ) ) { + if ( AudioManager.IsSoundPlaying( nameProp.stringValue ) ) { + AudioManager.StopSound( nameProp.stringValue ); + } else { + AudioManager.PlaySound( nameProp.stringValue ); + } + } + buttonPosition.x += 22.0f; + // select audio manager + if ( GUI.Button( buttonPosition, "\u2630" ) ) { + Selection.activeGameObject = AudioManager.GetGameObject(); + } + + } + } +} + diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs.meta new file mode 100644 index 0000000..a7af21a --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/Editor/SoundFXRefPropertyDrawer.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6204bcaba636340b48858c9f10ab9016 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs new file mode 100644 index 0000000..8992b7a --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +/* +----------------------- + + MinMaxAttribute + +----------------------- +*/ +public class MinMaxAttribute : PropertyAttribute { + public float minDefaultVal = 1.0f; + public float maxDefaultVal = 1.0f; + public float min = 0.0f; + public float max = 1.0f; + public MinMaxAttribute( float minDefaultVal, float maxDefaultVal, float min, float max ) { + this.minDefaultVal = minDefaultVal; + this.maxDefaultVal = maxDefaultVal; + this.min = min; + this.max = max; + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs.meta new file mode 100644 index 0000000..5739109 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/MinMaxAttribute.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15126f023faf44286a08bdb5bdbdb6e7 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs new file mode 100644 index 0000000..46ae4d3 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs @@ -0,0 +1,428 @@ +using UnityEngine; +using UnityEngine.Audio; +using System.Collections; + +/* +----------------------- + + SoundEmitter() + +----------------------- +*/ +public class SoundEmitter : MonoBehaviour { + public enum FadeState { + Null, + FadingIn, + FadingOut, + Ducking, + } + + // OPTIMIZE + + public float volume { get { return audioSource.volume; } set { audioSource.volume = value; } } + public float pitch { get { return audioSource.pitch; } set { audioSource.pitch = value; } } + public AudioClip clip { get { return audioSource.clip; } set { audioSource.clip = value; } } + public float time { get { return audioSource.time; } set { audioSource.time = value; } } + public float length { get { return ( audioSource.clip != null ) ? audioSource.clip.length : 0.0f; } } + public bool loop { get { return audioSource.loop; } set { audioSource.loop = value; } } + public bool mute { get { return audioSource.mute; } set { audioSource.mute = value; } } + public AudioVelocityUpdateMode velocityUpdateMode { get { return audioSource.velocityUpdateMode; } set { audioSource.velocityUpdateMode = value; } } + public bool isPlaying { get { return audioSource.isPlaying; } } + + public EmitterChannel channel = EmitterChannel.Reserved; + public bool disableSpatialization = false; + private FadeState state = FadeState.Null; + [System.NonSerialized] + [HideInInspector] + public AudioSource audioSource = null; + [System.NonSerialized] + [HideInInspector] + public SoundPriority priority = SoundPriority.Default; + [System.NonSerialized] + [HideInInspector] + public ONSPAudioSource osp = null; + [System.NonSerialized] + [HideInInspector] + public float endPlayTime = 0.0f; + private Transform lastParentTransform = null; + [System.NonSerialized] + [HideInInspector] + public float defaultVolume = 1.0f; + [System.NonSerialized] + [HideInInspector] + public Transform defaultParent = null; + [System.NonSerialized] + [HideInInspector] + public int originalIdx = -1; + [System.NonSerialized] + [HideInInspector] + public System.Action onFinished = null; + [System.NonSerialized] + [HideInInspector] + public System.Action onFinishedObject = null; + [System.NonSerialized] + [HideInInspector] + public object onFinishedParam; + [System.NonSerialized] + [HideInInspector] + public SoundGroup playingSoundGroup = null; + + /* + ----------------------- + Awake() + ----------------------- + */ + void Awake() { + // unity defaults to 'playOnAwake = true' + audioSource = GetComponent(); + if ( audioSource == null ) { + audioSource = gameObject.AddComponent(); + } + // is the spatialized audio enabled? + if ( AudioManager.enableSpatialization && !disableSpatialization ) { + osp = GetComponent(); + if ( osp == null ) { + osp = gameObject.AddComponent(); + } + } + audioSource.playOnAwake = false; + audioSource.Stop(); + } + + /* + ----------------------- + SetPlayingSoundGroup() + ----------------------- + */ + public void SetPlayingSoundGroup( SoundGroup soundGroup ) { + playingSoundGroup = soundGroup; + if ( soundGroup != null ) { + soundGroup.IncrementPlayCount(); + } + } + + /* + ----------------------- + SetOnFinished() + ----------------------- + */ + public void SetOnFinished( System.Action onFinished ) { + this.onFinished = onFinished; + } + + /* + ----------------------- + SetOnFinished() + ----------------------- + */ + public void SetOnFinished( System.Action onFinished, object obj ) { + onFinishedObject = onFinished; + onFinishedParam = obj; + } + + /* + ----------------------- + SetChannel() + ----------------------- + */ + public void SetChannel( int _channel ) { + channel = (EmitterChannel)_channel; + } + + /* + ----------------------- + SetDefaultParent() + ----------------------- + */ + public void SetDefaultParent( Transform parent ) { + defaultParent = parent; + } + + /* + ----------------------- + SetAudioMixer() + ----------------------- + */ + public void SetAudioMixer( AudioMixerGroup _mixer ) { + if ( audioSource != null ) { + audioSource.outputAudioMixerGroup = _mixer; + } + } + + /* + ----------------------- + IsPlaying() + ----------------------- + */ + public bool IsPlaying() { + if ( loop && audioSource.isPlaying ) { + return true; + } + return endPlayTime > Time.time; + } + + /* + ----------------------- + Play() + ----------------------- + */ + public void Play() { + // overrides everything + state = FadeState.Null; + endPlayTime = Time.time + length; + StopAllCoroutines(); + audioSource.Play(); + } + + /* + ----------------------- + Pause() + ----------------------- + */ + public void Pause() { + // overrides everything + state = FadeState.Null; + StopAllCoroutines(); + audioSource.Pause(); + } + + /* + ----------------------- + Stop() + ----------------------- + */ + public void Stop() { + // overrides everything + state = FadeState.Null; + StopAllCoroutines(); + if ( audioSource != null ) { + audioSource.Stop(); + } + if ( onFinished != null ) { + onFinished(); + onFinished = null; + } + if ( onFinishedObject != null ) { + onFinishedObject( onFinishedParam ); + onFinishedObject = null; + } + if ( playingSoundGroup != null ) { + playingSoundGroup.DecrementPlayCount(); + playingSoundGroup = null; + } + } + + /* + ----------------------- + GetSampleTime() + ----------------------- + */ + int GetSampleTime() { + return audioSource.clip.samples - audioSource.timeSamples; + } + + /* + ----------------------- + ParentTo() + ----------------------- + */ + public void ParentTo( Transform parent ) { + if ( lastParentTransform != null ) { + Debug.LogError( "[SoundEmitter] You must detach the sound emitter before parenting to another object!" ); + return; + } + lastParentTransform = transform.parent; + transform.parent = parent; + } + + /* + ----------------------- + DetachFromParent() + ----------------------- + */ + public void DetachFromParent() { + if ( lastParentTransform == null ) { + transform.parent = defaultParent; + return; + } + transform.parent = lastParentTransform; + lastParentTransform = null; + } + + /* + ----------------------- + ResetParent() + ----------------------- + */ + public void ResetParent( Transform parent ) { + transform.parent = parent; + lastParentTransform = null; + } + + /* + ----------------------- + SyncTo() + ----------------------- + */ + public void SyncTo( SoundEmitter other, float fadeTime, float toVolume ) { + StartCoroutine( DelayedSyncTo( other, fadeTime, toVolume ) ); + } + + /* + ----------------------- + DelayedSyncTo() + have to wait until the end of frame to do proper sync'ing + ----------------------- + */ + IEnumerator DelayedSyncTo( SoundEmitter other, float fadeTime, float toVolume ) { + yield return new WaitForEndOfFrame(); + //audio.timeSamples = other.GetSampleTime(); + //audio.time = Mathf.Min( Mathf.Max( 0.0f, other.time - other.length ), other.time ); + audioSource.time = other.time; + audioSource.Play(); + FadeTo( fadeTime, toVolume ); + } + + /* + ----------------------- + FadeTo() + ----------------------- + */ + public void FadeTo( float fadeTime, float toVolume ) { + //Log.Print( ">>> FADE TO: " + channel ); + + + // don't override a fade out + if ( state == FadeState.FadingOut ) { + //Log.Print( " ....ABORTED" ); + return; + } + state = FadeState.Ducking; + StopAllCoroutines(); + StartCoroutine( FadeSoundChannelTo( fadeTime, toVolume ) ); + } + + /* + ----------------------- + FadeIn() + ----------------------- + */ + public void FadeIn( float fadeTime, float defaultVolume ) { + + //Log.Print( ">>> FADE IN: " + channel ); + audioSource.volume = 0.0f; + state = FadeState.FadingIn; + StopAllCoroutines(); + StartCoroutine( FadeSoundChannel( 0.0f, fadeTime, Fade.In, defaultVolume ) ); + } + + /* + ----------------------- + FadeIn() + ----------------------- + */ + public void FadeIn( float fadeTime ) { + + //Log.Print( ">>> FADE IN: " + channel ); + audioSource.volume = 0.0f; + state = FadeState.FadingIn; + StopAllCoroutines(); + StartCoroutine( FadeSoundChannel( 0.0f, fadeTime, Fade.In, defaultVolume ) ); + } + + /* + ----------------------- + FadeOut() + ----------------------- + */ + public void FadeOut( float fadeTime ) { + //Log.Print( ">>> FADE OUT: " + channel ); + if ( !audioSource.isPlaying ) { + //Log.Print( " ... SKIPPING" ); + return; + } + state = FadeState.FadingOut; + StopAllCoroutines(); + StartCoroutine( FadeSoundChannel( 0.0f, fadeTime, Fade.Out, audioSource.volume ) ); + } + + /* + ----------------------- + FadeOutDelayed() + ----------------------- + */ + public void FadeOutDelayed( float delayedSecs, float fadeTime ) { + //Log.Print( ">>> FADE OUT DELAYED: " + channel ); + if ( !audioSource.isPlaying ) { + //Log.Print( " ... SKIPPING" ); + return; + } + state = FadeState.FadingOut; + StopAllCoroutines(); + StartCoroutine( FadeSoundChannel( delayedSecs, fadeTime, Fade.Out, audioSource.volume ) ); + } + + /* + ----------------------- + FadeSoundChannelTo() + ----------------------- + */ + IEnumerator FadeSoundChannelTo( float fadeTime, float toVolume ) { + float start = audioSource.volume; + float end = toVolume; + float startTime = Time.realtimeSinceStartup; + float elapsedTime = 0.0f; + + while ( elapsedTime < fadeTime ) { + elapsedTime = Time.realtimeSinceStartup - startTime; + float t = elapsedTime / fadeTime; + audioSource.volume = Mathf.Lerp( start, end, t ); + yield return 0; + } + state = FadeState.Null; + } + + /* + ----------------------- + FadeSoundChannel() + ----------------------- + */ + IEnumerator FadeSoundChannel( float delaySecs, float fadeTime, Fade fadeType, float defaultVolume ) { + if ( delaySecs > 0.0f ) { + yield return new WaitForSeconds( delaySecs ); + } + float start = ( fadeType == Fade.In ) ? 0.0f : defaultVolume; + float end = ( fadeType == Fade.In ) ? defaultVolume : 0.0f; + bool restartPlay = false; + + if ( fadeType == Fade.In ) { + if ( Time.time == 0.0f ) { + restartPlay = true; + } + audioSource.volume = 0.0f; + audioSource.Play(); + } + + float startTime = Time.realtimeSinceStartup; + float elapsedTime = 0.0f; + + while ( elapsedTime < fadeTime ) { + elapsedTime = Time.realtimeSinceStartup - startTime; + float t = elapsedTime / fadeTime; + audioSource.volume = Mathf.Lerp( start, end, t ); + yield return 0; + if ( restartPlay && ( Time.time > 0.0f ) ) { + audioSource.Play(); + restartPlay = false; + } + if ( !audioSource.isPlaying ) { + break; + } + } + + if ( fadeType == Fade.Out ) { + Stop(); + } + state = FadeState.Null; + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs.meta new file mode 100644 index 0000000..64b29f4 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundEmitter.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ecd24e91b27c645fc95f6c42115c13cc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs new file mode 100644 index 0000000..ee91090 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs @@ -0,0 +1,306 @@ +using UnityEngine; +using UnityEngine.Audio; + +public enum SoundFXNext { + Random = 0, + Sequential = 1, +} + +public enum FreqHint { + None = 0, + Wide = 1, + Narrow = 2, +} + +public enum SoundPriority { + VeryLow = -2, + Low = -1, + Default = 0, + High = 1, + VeryHigh = 2, +} + +[System.Serializable] +public class OSPProps { + public OSPProps() { + enableSpatialization = false; + useFastOverride = false; + gain = 0.0f; + enableInvSquare = false; + volumetric = 0.0f; + invSquareFalloff = new Vector2( 1.0f, 25.0f ); + } + + [Tooltip( "Set to true to play the sound FX spatialized with binaural HRTF, default = false")] + public bool enableSpatialization = false; + [Tooltip( "Play the sound FX with reflections, default = false")] + public bool useFastOverride = false; + [Tooltip( "Boost the gain on the spatialized sound FX, default = 0.0")] + [Range( 0.0f, 24.0f )] + public float gain = 0.0f; + [Tooltip("Enable Inverse Square attenuation curve, default = false")] + public bool enableInvSquare = false; + [Tooltip("Change the sound from point source (0.0f) to a spherical volume, default = 0.0")] + [Range(0.0f, 1000.0f)] + public float volumetric = 0.0f; + [Tooltip("Set the near and far falloff value for the OSP attenuation curve, default = 1.0")] + [MinMax ( 1.0f, 25.0f, 0.0f, 250.0f )] + public Vector2 invSquareFalloff = new Vector2( 1.0f, 25.0f ); +} + +/* +----------------------- + +SoundFX + +----------------------- +*/ +[System.Serializable] +public class SoundFX { + public SoundFX() { + playback = SoundFXNext.Random; + volume = 1.0f; + pitchVariance = Vector2.one; + falloffDistance = new Vector2( 1.0f, 25.0f ); + falloffCurve = AudioRolloffMode.Linear; + volumeFalloffCurve = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } ); + reverbZoneMix = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } ); + spread = 0.0f; + pctChanceToPlay = 1.0f; + priority = SoundPriority.Default; + delay = Vector2.zero; + looping = false; + ospProps = new OSPProps(); + } + + [Tooltip( "Each sound FX should have a unique name")] + public string name = string.Empty; + [Tooltip( "Sound diversity playback option when multiple audio clips are defined, default = Random")] + public SoundFXNext playback = SoundFXNext.Random; + [Tooltip( "Default volume for this sound FX, default = 1.0")] + [Range (0.0f, 1.0f)] + public float volume = 1.0f; + [Tooltip( "Random pitch variance each time a sound FX is played, default = 1.0 (none)")] + [MinMax ( 1.0f, 1.0f, 0.0f, 2.0f )] + public Vector2 pitchVariance = Vector2.one; + [Tooltip( "Falloff distance for the sound FX, default = 1m min to 25m max")] + [MinMax ( 1.0f, 25.0f, 0.0f, 250.0f )] + public Vector2 falloffDistance = new Vector2( 1.0f, 25.0f ); + [Tooltip( "Volume falloff curve - sets how the sound FX attenuates over distance, default = Linear")] + public AudioRolloffMode falloffCurve = AudioRolloffMode.Linear; + [Tooltip( "Defines the custom volume falloff curve")] + public AnimationCurve volumeFalloffCurve = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } ); + [Tooltip( "The amount by which the signal from the AudioSource will be mixed into the global reverb associated with the Reverb Zones | Valid range is 0.0 - 1.1, default = 1.0" )] + public AnimationCurve reverbZoneMix = new AnimationCurve( new Keyframe[2] { new Keyframe( 0f, 1.0f ), new Keyframe( 1f, 1f ) } ); + [Tooltip( "Sets the spread angle (in degrees) of a 3d stereo or multichannel sound in speaker space, default = 0")] + [Range (0.0f, 360.0f)] + public float spread = 0.0f; + [Tooltip( "The percentage chance that this sound FX will play | 0.0 = none, 1.0 = 100%, default = 1.0")] + [Range (0.0f, 1.0f)] + public float pctChanceToPlay = 1.0f; + [Tooltip( "Sets the priority for this sound to play and/or to override a currently playing sound FX, default = Default")] + public SoundPriority priority = SoundPriority.Default; + [Tooltip( "Specifies the default delay when this sound FX is played, default = 0.0 secs")] + [MinMax ( 0.0f, 0.0f, 0.0f, 2.0f )] + public Vector2 delay = Vector2.zero; // this overrides any delay passed into PlaySound() or PlaySoundAt() + [Tooltip( "Set to true for the sound to loop continuously, default = false")] + public bool looping = false; + public OSPProps ospProps = new OSPProps(); + [Tooltip( "List of the audio clips assigned to this sound FX")] + public AudioClip[] soundClips = new AudioClip[1]; + // editor only - unfortunately if we set it not to serialize, we can't query it from the editor + public bool visibilityToggle = false; + // runtime vars + [System.NonSerialized] + private SoundGroup soundGroup = null; + private int lastIdx = -1; + private int playingIdx = -1; + + public int Length { get { return soundClips.Length; } } + public bool IsValid { get { return ( ( soundClips.Length != 0 ) && ( soundClips[0] != null ) ); } } + public SoundGroup Group { get { return soundGroup; } set { soundGroup = value; } } + public float MaxFalloffDistSquared { get { return falloffDistance.y * falloffDistance.y; } } + public float GroupVolumeOverride { get { return ( soundGroup != null ) ? soundGroup.volumeOverride : 1.0f; } } + + /* + ----------------------- + GetClip() + ----------------------- + */ + public AudioClip GetClip() { + if ( soundClips.Length == 0 ) { + return null; + } else if ( soundClips.Length == 1 ) { + return soundClips[0]; + } + if ( playback == SoundFXNext.Random ) { + // random, but don't pick the last one + int idx = Random.Range( 0, soundClips.Length ); + while ( idx == lastIdx ) { + idx = Random.Range( 0, soundClips.Length ); + } + lastIdx = idx; + return soundClips[idx]; + } else { + // sequential + if ( ++lastIdx >= soundClips.Length ) { + lastIdx = 0; + } + return soundClips[lastIdx]; + } + } + + /* + ----------------------- + GetMixerGroup() + ----------------------- + */ + public AudioMixerGroup GetMixerGroup( AudioMixerGroup defaultMixerGroup ) { + if ( soundGroup != null ) { + return ( soundGroup.mixerGroup != null ) ? soundGroup.mixerGroup : defaultMixerGroup; + } + return defaultMixerGroup; + } + + /* + ----------------------- + ReachedGroupPlayLimit() + ----------------------- + */ + public bool ReachedGroupPlayLimit() { + if ( soundGroup != null ) { + return !soundGroup.CanPlaySound(); + } + return false; + } + + /* + ----------------------- + GetClipLength() + ----------------------- + */ + public float GetClipLength( int idx ) { + if ( ( idx == -1 ) || ( soundClips.Length == 0 ) || ( idx >= soundClips.Length ) || ( soundClips[idx] == null ) ) { + return 0.0f; + } else { + return soundClips[idx].length; + } + } + + /* + ----------------------- + GetPitch() + ----------------------- + */ + public float GetPitch() { + return Random.Range( pitchVariance.x, pitchVariance.y ); + } + + /* + ----------------------- + PlaySound() + ----------------------- + */ + public int PlaySound( float delaySecs = 0.0f ) { + playingIdx = -1; + + if ( !IsValid ) { + return playingIdx; + } + + // check the random chance to play here to save the function calls + if ( ( pctChanceToPlay > 0.99f ) || ( Random.value < pctChanceToPlay ) ) { + if ( delay.y > 0.0f ) { + delaySecs = Random.Range( delay.x, delay.y ); + } + playingIdx = AudioManager.PlaySound( this, EmitterChannel.Any, delaySecs ); + } + + return playingIdx; + } + + /* + ----------------------- + PlaySoundAt() + ----------------------- + */ + public int PlaySoundAt( Vector3 pos, float delaySecs = 0.0f, float volumeOverride = 1.0f, float pitchMultiplier = 1.0f ) { + playingIdx = -1; + + if ( !IsValid ) { + return playingIdx; + } + + // check the random chance to play here to save the function calls + if ( ( pctChanceToPlay > 0.99f ) || ( Random.value < pctChanceToPlay ) ) { + if ( delay.y > 0.0f ) { + delaySecs = Random.Range( delay.x, delay.y ); + } + playingIdx = AudioManager.PlaySoundAt( pos, this, EmitterChannel.Any, delaySecs, volumeOverride, pitchMultiplier ); + } + + return playingIdx; + } + + /* + ----------------------- + SetOnFinished() + get a callback when the sound is finished playing + ----------------------- + */ + public void SetOnFinished( System.Action onFinished ) { + if ( playingIdx > -1 ) { + AudioManager.SetOnFinished( playingIdx, onFinished ); + } + } + + /* + ----------------------- + SetOnFinished() + get a callback with an object parameter when the sound is finished playing + ----------------------- + */ + public void SetOnFinished( System.Action onFinished, object obj ) { + if ( playingIdx > -1 ) { + AudioManager.SetOnFinished( playingIdx, onFinished, obj ); + } + } + + /* + ----------------------- + StopSound() + ----------------------- + */ + public bool StopSound() { + bool stopped = false; + + if (playingIdx > -1){ + stopped = AudioManager.StopSound(playingIdx); + playingIdx = -1; + } + + return stopped; + } + + /* + ----------------------- + AttachToParent() + ----------------------- + */ + public void AttachToParent( Transform parent) { + if (playingIdx > -1) { + AudioManager.AttachSoundToParent(playingIdx, parent); + } + } + + /* + ----------------------- + DetachFromParent() + ----------------------- + */ + public void DetachFromParent() { + if (playingIdx > -1) { + AudioManager.DetachSoundFromParent(playingIdx); + } + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs.meta new file mode 100644 index 0000000..54131c1 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFX.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0a1e5e7b5cff46a187b02100f0e4a3c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs new file mode 100644 index 0000000..51f1dc4 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs @@ -0,0 +1,139 @@ +using UnityEngine; +using System.Collections; + +/* +----------------------- +SoundFXRef +just a references to a SoundFX.. all the SoundFX methods are called indirectly from here +----------------------- +*/ +[System.Serializable] +public class SoundFXRef { + + public string soundFXName = string.Empty; + + private bool initialized = false; + private SoundFX soundFXCached = null; + public SoundFX soundFX { + get { + if ( !initialized ) { + Init(); + } + return soundFXCached; + } + } + public string name { get { return soundFXName; } set { soundFXName = value; Init(); } } + + /* + ----------------------- + Init() + ----------------------- + */ + void Init() { + // look up the actual SoundFX object + soundFXCached = AudioManager.FindSoundFX( soundFXName ); + if ( soundFXCached == null ) { + soundFXCached = AudioManager.FindSoundFX( string.Empty ); + } + initialized = true; + } + + /* + ----------------------- + Length() + ----------------------- + */ + public int Length { get { return soundFX.Length; } } + + /* + ----------------------- + IsValid() + ----------------------- + */ + public bool IsValid { get { return soundFX.IsValid; } } + + /* + ----------------------- + GetClip() + ----------------------- + */ + public AudioClip GetClip() { + return soundFX.GetClip(); + } + + /* + ----------------------- + GetClipLength() + ----------------------- + */ + public float GetClipLength( int idx ) { + return soundFX.GetClipLength( idx ); + } + + /* + ----------------------- + PlaySound() + ----------------------- + */ + public int PlaySound( float delaySecs = 0.0f ) { + return soundFX.PlaySound( delaySecs ); + } + + /* + ----------------------- + PlaySoundAt() + ----------------------- + */ + public int PlaySoundAt( Vector3 pos, float delaySecs = 0.0f, float volume = 1.0f, float pitchMultiplier = 1.0f ) { + return soundFX.PlaySoundAt( pos, delaySecs, volume, pitchMultiplier ); + } + + /* + ----------------------- + SetOnFinished() + get a callback when the sound is finished playing + ----------------------- + */ + public void SetOnFinished( System.Action onFinished ) { + soundFX.SetOnFinished( onFinished ); + } + + /* + ----------------------- + SetOnFinished() + get a callback with an object parameter when the sound is finished playing + ----------------------- + */ + public void SetOnFinished( System.Action onFinished, object obj ) { + soundFX.SetOnFinished( onFinished, obj ); + } + + /* + ----------------------- + StopSound() + ----------------------- + */ + public bool StopSound() { + return soundFX.StopSound(); + } + + /* + ----------------------- + AttachToParent() + ----------------------- + */ + public void AttachToParent( Transform parent) + { + soundFX.AttachToParent( parent); + } + + /* + ----------------------- + DetachFromParent() + ----------------------- + */ + public void DetachFromParent() + { + soundFX.DetachFromParent(); + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs.meta b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs.meta new file mode 100644 index 0000000..f371711 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Audio/SoundFXRef.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48176edab546a48de9b146105d7c5f47 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Utils.meta b/Assets/Oculus/AudioManager/Scripts/Utils.meta new file mode 100644 index 0000000..5bc01f0 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 02268a883a27b9c4abac4ee978caec4d +folderAsset: yes +timeCreated: 1468506022 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/Editor.meta b/Assets/Oculus/AudioManager/Scripts/Utils/Editor.meta new file mode 100644 index 0000000..a7fb901 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b43e7f73d4ffc2545a17b938f63e6bc0 +folderAsset: yes +timeCreated: 1468507225 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs new file mode 100644 index 0000000..db94d65 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs @@ -0,0 +1,77 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; +using System.Collections.Generic; + +[CustomPropertyDrawer(typeof(InspectorNoteAttribute))] +public class DrawerInspectorNote : DecoratorDrawer +{ + public override void OnGUI( Rect position ) + { + InspectorNoteAttribute note = attribute as InspectorNoteAttribute; + + // our header is always present + Rect posLabel = position; + posLabel.y += 13; + posLabel.x -= 2; + posLabel.height += 13; + EditorGUI.LabelField(posLabel, note.header, EditorStyles.whiteLargeLabel); + + // do we have a message too? + if (!string.IsNullOrEmpty(note.message)) + { + Color color = GUI.color; + Color faded = color; + faded.a = 0.6f; + + Rect posExplain = posLabel; + posExplain.y += 15; + GUI.color = faded; + EditorGUI.LabelField(posExplain, note.message, EditorStyles.whiteMiniLabel); + GUI.color = color; + } + + Rect posLine = position; + posLine.y += string.IsNullOrEmpty(note.message) ? 30 : 42; + posLine.height = 1f; + GUI.Box(posLine, ""); + } + + public override float GetHeight() { + InspectorNoteAttribute note = attribute as InspectorNoteAttribute; + return string.IsNullOrEmpty( note.message ) ? 38 : 50; + } +} + +[CustomPropertyDrawer( typeof( InspectorCommentAttribute ) )] +public class DrawerInspectorComment : DecoratorDrawer { + public override void OnGUI( Rect position ) { + InspectorCommentAttribute comment = attribute as InspectorCommentAttribute; + + // our header is always present + Rect posLabel = position; + //posLabel.y += 13; + //posLabel.x -= 2; + //posLabel.height += 13; + //EditorGUI.LabelField( posLabel, comment.header, EditorStyles.whiteLargeLabel ); + + // do we have a message too? + if ( !string.IsNullOrEmpty( comment.message ) ) { + Color color = GUI.color; + Color faded = color; + faded.a = 0.6f; + + Rect posExplain = posLabel; + posExplain.y += 15; + GUI.color = faded; + EditorGUI.LabelField( posExplain, comment.message, EditorStyles.whiteMiniLabel ); + GUI.color = color; + } + + } + + public override float GetHeight() { + InspectorNoteAttribute note = attribute as InspectorNoteAttribute; + return string.IsNullOrEmpty( note.message ) ? 38 : 50; + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs.meta b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs.meta new file mode 100644 index 0000000..591e271 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils/Editor/DrawerInspectorNote.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f244e745a5bf8412d9d81d43dff35cf5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs new file mode 100644 index 0000000..601c393 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs @@ -0,0 +1,283 @@ +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; + +public class FastList { + + /// + /// Comparison function should return -1 if left is less than right, 1 if left is greater than right, and 0 if they match. + /// + public delegate int CompareFunc(T left, T right); + + + public T[] array = null; + public int size = 0; + + public FastList () { + } + + public FastList(int size) { + if (size > 0) { + this.size = 0; + array = new T[size]; + } + else { + this.size = 0; + } + } + + public int Count { + get { return size;} + set { } + } + + public T this[int i] { + get { return array[i];} + set { array[i] = value;} + } + + //Add item to end of list. + public void Add(T item) { + if (array == null || size == array.Length) { + Allocate(); + } + array[size] = item; + size++; + } + + //Add item to end of list if it is unique. + public void AddUnique( T item ) { + if ( array == null || size == array.Length ) { + Allocate(); + } + if ( !Contains( item ) ) { + array[size] = item; + size++; + } + } + + //Add items to the end of the list + public void AddRange( IEnumerable items ) { + foreach ( T item in items ) { + Add( item ); + } + } + + //Insert item at specified index + public void Insert(int index, T item) { + if (array == null || size == array.Length) { + Allocate(); + } + if (index < size) { + //move things back 1 + for (int i = size; i > index; i--) { + array[i] = array[i-1]; + } + array[index] = item; + size++; + } + else Add(item); + } + + //Removes specified item and keeps everything else in order + public bool Remove(T item) { + if (array != null) { + for (int i = 0; i < size; i++) { + if (item.Equals(array[i])) { //found it, push everything up + size--; + for (int j = i; j < size; j++) { + array[j] = array[j+1]; + } + array[size] = default(T); + return true; + } + } + } + return false; + } + + //Removes item at specified index while keeping everything else in order + //O(n) + public void RemoveAt(int index) { + if (array != null && size > 0 && index < size) { + size--; + for (int i = index; i < size; i++) { + array[i] = array[i+1]; + } + array[size] = default(T); + } + } + + //Removes the specified item from the list and replaces with last item. Return true if removed, false if not found. + public bool RemoveFast(T item) { + if (array != null) { + for (int i = 0; i < size; i++) { + if ( item.Equals( array[i] )) { //found + //Move last item here + if (i < (size - 1)) { + T lastItem = array[size-1]; + array[size-1] = default(T); + array[i] = lastItem; + } else { + array[i] = default(T); + } + size--; + return true; + } + } + } + return false; + } + + //Removes item at specified index and replace with last item. + public void RemoveAtFast(int index) { + if (array != null && index < size && index >= 0) { + //last element + if (index == size - 1) { + array[index] = default(T); + } + else { + T lastItem = array[size - 1]; + array[index] = lastItem; + array[size - 1] = default(T); + } + size--; + + } + } + + //Return whether an item is contained within the list + //O(n) + public bool Contains(T item) { + if (array == null || size <= 0 ) return false; + for (int i = 0; i < size; i++) { + if (array[i].Equals(item)) { return true;} + } + return false; + } + + //Returns index of specified item, or -1 if not found. + //O(n) + public int IndexOf(T item) { + if (size <= 0 || array == null) { return -1;} + for (int i = 0; i < size; i++) { + if (item.Equals(array[i])) { return i;} + } + return -1; + } + + public T Pop() { + if (array != null && size > 0) { + T lastItem = array[size-1]; + array[size-1] = default(T); + size--; + return lastItem; + } + + return default(T); + } + + public T[] ToArray() { + Trim(); + return array; + } + + public void Sort (CompareFunc comparer) { + int start = 0; + int end = size - 1; + bool changed = true; + + while (changed) { + changed = false; + + for (int i = start; i < end; i++) { + + if (comparer(array[i], array[i + 1]) > 0) { + T temp = array[i]; + array[i] = array[i+1]; + array[i+1] = temp; + changed = true; + } + else if (!changed) { + start = (i==0) ? 0 : i-1; + } + } + } + } + + public void InsertionSort(CompareFunc comparer) { + for (int i = 1; i < size; i++) { + T curr = array[i]; + int j = i; + while (j > 0 && comparer(array[j - 1], curr) > 0) { + array[j] = array[j-1]; + j--; + } + array[j] = curr; + } + } + + public IEnumerator GetEnumerator() { + if (array != null) { + for (int i = 0; i < size; i++) { + yield return array[i]; + } + } + } + + public T Find(Predicate match) { + if (match != null) { + if (array != null) { + for (int i = 0; i < size; i++) { + if (match(array[i])) { return array[i];} + } + } + } + return default(T); + } + + //Allocate more space to internal array. + void Allocate() { + T[] newArray; + if (array == null) { + newArray = new T[32]; + } + else { + newArray = new T[Mathf.Max(array.Length << 1, 32)]; + } + if (array != null && size > 0) { + array.CopyTo(newArray, 0); + } + + array = newArray; + } + + + void Trim() { + if (size > 0) { + T[] newArray = new T[size]; + for (int i = 0; i < size; i++) { + newArray[i] = array[i]; + } + array = newArray; + } + else { + array = null; + } + } + + //Set size to 0, does not delete array from memory + public void Clear() { + size = 0; + } + + //Delete array from memory + public void Release() { + Clear(); + array = null; + } + + + +} diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs.meta b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs.meta new file mode 100644 index 0000000..708d34f --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils/FastList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5ad95fb7eea735748bd34c963525ea21 +timeCreated: 1432749689 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs new file mode 100644 index 0000000..0c5db7b --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs @@ -0,0 +1,35 @@ +using UnityEngine; + +/* +----------------------- + + InspectorNoteAttribute() + +----------------------- +*/ +public class InspectorNoteAttribute : PropertyAttribute +{ + public readonly string header; + public readonly string message; + + public InspectorNoteAttribute(string header, string message = "") + { + this.header = header; + this.message = message; + } +} + +/* +----------------------- + + InspectorCommentAttribute() + +----------------------- +*/ +public class InspectorCommentAttribute : PropertyAttribute { + public readonly string message; + + public InspectorCommentAttribute( string message = "" ) { + this.message = message; + } +} diff --git a/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs.meta b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs.meta new file mode 100644 index 0000000..f6e86d6 --- /dev/null +++ b/Assets/Oculus/AudioManager/Scripts/Utils/InspectorNoteAttribute.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4616bbe65d311471f8d71174295f4986 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/Oculus/Avatar.meta b/Assets/Oculus/Avatar.meta new file mode 100644 index 0000000..8868f27 --- /dev/null +++ b/Assets/Oculus/Avatar.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9f086770200dde84c98766f2308b6877 +folderAsset: yes +timeCreated: 1538788975 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content.meta b/Assets/Oculus/Avatar/Content.meta new file mode 100644 index 0000000..6257510 --- /dev/null +++ b/Assets/Oculus/Avatar/Content.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b7b5af4818686f84f844c1ae9df0f700 +folderAsset: yes +timeCreated: 1466716731 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Materials.meta b/Assets/Oculus/Avatar/Content/Materials.meta new file mode 100644 index 0000000..ce02c64 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 03c5cda4272cb2746a668ce131f04c0f +folderAsset: yes +timeCreated: 1466717994 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc new file mode 100644 index 0000000..34c31b7 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc @@ -0,0 +1,318 @@ +#ifndef AVATAR_UTIL_CG_INCLUDED +#define AVATAR_UTIL_CG_INCLUDED + +#include "UnityCG.cginc" + +#define SAMPLE_MODE_COLOR 0 +#define SAMPLE_MODE_TEXTURE 1 +#define SAMPLE_MODE_TEXTURE_SINGLE_CHANNEL 2 +#define SAMPLE_MODE_PARALLAX 3 +#define SAMPLE_MODE_RSRM 4 + +#define MASK_TYPE_NONE 0 +#define MASK_TYPE_POSITIONAL 1 +#define MASK_TYPE_REFLECTION 2 +#define MASK_TYPE_FRESNEL 3 +#define MASK_TYPE_PULSE 4 + +#define BLEND_MODE_ADD 0 +#define BLEND_MODE_MULTIPLY 1 + +#ifdef LAYERS_1 +#define LAYER_COUNT 1 +#elif LAYERS_2 +#define LAYER_COUNT 2 +#elif LAYERS_3 +#define LAYER_COUNT 3 +#elif LAYERS_4 +#define LAYER_COUNT 4 +#elif LAYERS_5 +#define LAYER_COUNT 5 +#elif LAYERS_6 +#define LAYER_COUNT 6 +#elif LAYERS_7 +#define LAYER_COUNT 7 +#elif LAYERS_8 +#define LAYER_COUNT 8 +#endif + +#define DECLARE_LAYER_UNIFORMS(index) \ + int _LayerSampleMode##index; \ + int _LayerBlendMode##index; \ + int _LayerMaskType##index; \ + fixed4 _LayerColor##index; \ + sampler2D _LayerSurface##index; \ + float4 _LayerSurface##index##_ST; \ + float4 _LayerSampleParameters##index; \ + float4 _LayerMaskParameters##index; \ + float4 _LayerMaskAxis##index; + +DECLARE_LAYER_UNIFORMS(0) +DECLARE_LAYER_UNIFORMS(1) +DECLARE_LAYER_UNIFORMS(2) +DECLARE_LAYER_UNIFORMS(3) +DECLARE_LAYER_UNIFORMS(4) +DECLARE_LAYER_UNIFORMS(5) +DECLARE_LAYER_UNIFORMS(6) +DECLARE_LAYER_UNIFORMS(7) + +struct VertexOutput +{ + float4 pos : SV_POSITION; + float2 texcoord : TEXCOORD0; + float3 worldPos : TEXCOORD1; + float3 worldNormal : TEXCOORD2; + float3 viewDir : TEXCOORD3; + float4 vertColor : COLOR; + +#if NORMAL_MAP_ON || PARALLAX_ON + float3 worldTangent : TANGENT; + float3 worldBitangent : TEXCOORD5; +#endif +}; + +float _Alpha; +int _BaseMaskType; +float4 _BaseMaskParameters; +float4 _BaseMaskAxis; +fixed4 _DarkMultiplier; +fixed4 _BaseColor; +sampler2D _AlphaMask; +float4 _AlphaMask_ST; +sampler2D _AlphaMask2; +float4 _AlphaMask2_ST; +sampler2D _NormalMap; +float4 _NormalMap_ST; +sampler2D _ParallaxMap; +float4 _ParallaxMap_ST; +sampler2D _RoughnessMap; +float4 _RoughnessMap_ST; +float4x4 _ProjectorWorldToLocal; + +VertexOutput vert(appdata_full v) +{ + VertexOutput o; + UNITY_INITIALIZE_OUTPUT(VertexOutput, o); + + o.texcoord = v.texcoord.xy; + o.worldPos = mul(unity_ObjectToWorld, v.vertex); + o.vertColor = v.color; + o.viewDir = normalize(_WorldSpaceCameraPos.xyz - o.worldPos); + o.worldNormal = normalize(mul(unity_ObjectToWorld, float4(v.normal, 0.0)).xyz); + +#if NORMAL_MAP_ON || PARALLAX_ON + o.worldTangent = normalize(mul(unity_ObjectToWorld, float4(v.tangent.xyz, 0.0)).xyz); + o.worldBitangent = normalize(cross(o.worldNormal, o.worldTangent) * v.tangent.w); +#endif + + o.pos = UnityObjectToClipPos(v.vertex); + return o; +} + +#ifndef NORMAL_MAP_ON +#define COMPUTE_NORMAL IN.worldNormal +#else +#define COMPUTE_NORMAL normalize(mul(lerp(float3(0, 0, 1), surfaceNormal, normalMapStrength), tangentTransform)) +#endif + +float3 ComputeColor( + VertexOutput IN, + float2 uv, +#if PARALLAX_ON || NORMAL_MAP_ON + float3x3 tangentTransform, +#endif +#ifdef NORMAL_MAP_ON + float3 surfaceNormal, +#endif + sampler2D surface, + float4 surface_ST, + fixed4 color, + int sampleMode, + float4 sampleParameters +) { + if (sampleMode == SAMPLE_MODE_TEXTURE) { + float2 panning = _Time.g * sampleParameters.xy; + return tex2D(surface, (uv + panning) * surface_ST.xy + surface_ST.zw).rgb * color.rgb; + } + else if (sampleMode == SAMPLE_MODE_TEXTURE_SINGLE_CHANNEL) { + float4 channelMask = sampleParameters; + float4 channels = tex2D(surface, uv * surface_ST.xy + surface_ST.zw); + return dot(channels, channelMask) * color.rgb; + } +#ifdef PARALLAX_ON + else if (sampleMode == SAMPLE_MODE_PARALLAX) { + float parallaxMinHeight = sampleParameters.x; + float parallaxMaxHeight = sampleParameters.y; + float parallaxValue = tex2D(_ParallaxMap, TRANSFORM_TEX(uv, _ParallaxMap)).r; + float scaledHeight = lerp(parallaxMinHeight, parallaxMaxHeight, parallaxValue); + float2 parallaxUV = mul(tangentTransform, IN.viewDir).xy * scaledHeight; + return tex2D(surface, (uv * surface_ST.xy + surface_ST.zw) + parallaxUV).rgb * color.rgb; + } +#endif + else if (sampleMode == SAMPLE_MODE_RSRM) { + float roughnessMin = sampleParameters.x; + float roughnessMax = sampleParameters.y; +#ifdef ROUGHNESS_ON + float roughnessValue = tex2D(_RoughnessMap, TRANSFORM_TEX(uv, _RoughnessMap)).r; + float scaledRoughness = lerp(roughnessMin, roughnessMax, roughnessValue); +#else + float scaledRoughness = roughnessMin; +#endif + +#ifdef NORMAL_MAP_ON + float normalMapStrength = sampleParameters.z; +#endif + float3 viewReflect = reflect(-IN.viewDir, COMPUTE_NORMAL); + float viewAngle = viewReflect.y * 0.5 + 0.5; + return tex2D(surface, float2(scaledRoughness, viewAngle)).rgb * color.rgb; + } + return color.rgb; +} + +float ComputeMask( + VertexOutput IN, +#ifdef NORMAL_MAP_ON + float3x3 tangentTransform, + float3 surfaceNormal, +#endif + int maskType, + float4 layerParameters, + float3 maskAxis +) { + if (maskType == MASK_TYPE_POSITIONAL) { + float centerDistance = layerParameters.x; + float fadeAbove = layerParameters.y; + float fadeBelow = layerParameters.z; + float3 objPos = mul(unity_WorldToObject, float4(IN.worldPos, 1.0)).xyz; + float d = dot(objPos, maskAxis); + if (d > centerDistance) { + return saturate(1.0 - (d - centerDistance) / fadeAbove); + } + else { + return saturate(1.0 - (centerDistance - d) / fadeBelow); + } + } + else if (maskType == MASK_TYPE_REFLECTION) { + float fadeStart = layerParameters.x; + float fadeEnd = layerParameters.y; +#ifdef NORMAL_MAP_ON + float normalMapStrength = layerParameters.z; +#endif + float power = layerParameters.w; + float3 viewReflect = reflect(-IN.viewDir, COMPUTE_NORMAL); + float d = max(0.0, dot(viewReflect, maskAxis)); + return saturate(1.0 - (d - fadeStart) / (fadeEnd - fadeStart)); + } + else if (maskType == MASK_TYPE_FRESNEL) { + float power = layerParameters.x; + float fadeStart = layerParameters.y; + float fadeEnd = layerParameters.z; +#ifdef NORMAL_MAP_ON + float normalMapStrength = layerParameters.w; +#endif + float d = saturate(1.0 - max(0.0, dot(IN.viewDir, COMPUTE_NORMAL))); + float p = pow(d, power); + return saturate(lerp(fadeStart, fadeEnd, p)); + } + else if (maskType == MASK_TYPE_PULSE) { + float distance = layerParameters.x; + float speed = layerParameters.y; + float power = layerParameters.z; + float3 objPos = mul(unity_WorldToObject, float4(IN.worldPos, 1.0)).xyz; + float d = dot(objPos, maskAxis); + float theta = 6.2831 * frac((d - _Time.g * speed) / distance); + return saturate(pow((sin(theta) * 0.5 + 0.5), power)); + } + else { + return 1.0; + } +} + +float3 ComputeBlend(float3 source, float3 blend, float mask, int blendMode) { + if (blendMode == BLEND_MODE_MULTIPLY) { + return source * (blend * mask); + } + else { + return source + (blend * mask); + } +} + +float4 ComputeSurface(VertexOutput IN) +{ +#if PROJECTOR_ON + float3 projectorPos = mul(_ProjectorWorldToLocal, float4(IN.worldPos, 1.0)).xyz; + if (abs(projectorPos.x) > 1.0 || abs(projectorPos.y) > 1.0 || abs(projectorPos.z) > 1.0) + { + discard; + } + float2 uv = projectorPos.xy * 0.5 + 0.5; +#else + float2 uv = IN.texcoord.xy; +#endif + + fixed4 c = _BaseColor; + IN.worldNormal = normalize(IN.worldNormal); + +#if PARALLAX_ON || NORMAL_MAP_ON + float3x3 tangentTransform = float3x3(IN.worldTangent, IN.worldBitangent, IN.worldNormal); +#endif + +#ifdef NORMAL_MAP_ON + float3 surfaceNormal = UnpackNormal(tex2D(_NormalMap, TRANSFORM_TEX(uv, _NormalMap))); +#endif + +#if PARALLAX_ON || NORMAL_MAP_ON +#ifndef NORMAL_MAP_ON +#define COLOR_INPUTS IN, uv, tangentTransform +#define MASK_INPUTS IN +#else +#define COLOR_INPUTS IN, uv, tangentTransform, surfaceNormal +#define MASK_INPUTS IN, tangentTransform, surfaceNormal +#endif +#else +#define COLOR_INPUTS IN, uv +#define MASK_INPUTS IN +#endif + +#define LAYER_COLOR(index) ComputeColor(COLOR_INPUTS, _LayerSurface##index, _LayerSurface##index##_ST, _LayerColor##index, _LayerSampleMode##index, _LayerSampleParameters##index) +#define LAYER_MASK(index) ComputeMask(MASK_INPUTS, _LayerMaskType##index, _LayerMaskParameters##index, _LayerMaskAxis##index##.xyz) +#define LAYER_BLEND(index, c) ComputeBlend(c, LAYER_COLOR(index), LAYER_MASK(index), _LayerBlendMode##index) + + c.rgb = LAYER_BLEND(0, c.rgb); +#if LAYER_COUNT > 1 + c.rgb = LAYER_BLEND(1, c.rgb); +#endif +#if LAYER_COUNT > 2 + c.rgb = LAYER_BLEND(2, c.rgb); +#endif +#if LAYER_COUNT > 3 + c.rgb = LAYER_BLEND(3, c.rgb); +#endif +#if LAYER_COUNT > 4 + c.rgb = LAYER_BLEND(4, c.rgb); +#endif +#if LAYER_COUNT > 5 + c.rgb = LAYER_BLEND(5, c.rgb); +#endif +#if LAYER_COUNT > 6 + c.rgb = LAYER_BLEND(6, c.rgb); +#endif +#if LAYER_COUNT > 7 + c.rgb = LAYER_BLEND(7, c.rgb); +#endif + +#ifdef VERTALPHA_ON + float scaledValue = IN.vertColor.a * 2.0; + float alpha0weight = max(0.0, 1.0 - scaledValue); + float alpha2weight = max(0.0, scaledValue - 1.0); + float alpha1weight = 1.0 - alpha0weight - alpha2weight; + c.a = _Alpha * c.a * (tex2D(_AlphaMask, TRANSFORM_TEX(uv, _AlphaMask)).r * alpha1weight + tex2D(_AlphaMask2, TRANSFORM_TEX(uv, _AlphaMask2)).r * alpha2weight + alpha0weight) * ComputeMask(MASK_INPUTS, _BaseMaskType, _BaseMaskParameters, _BaseMaskAxis); +#else + c.a = _Alpha * c.a * tex2D(_AlphaMask, TRANSFORM_TEX(uv, _AlphaMask)).r * IN.vertColor.a * ComputeMask(MASK_INPUTS, _BaseMaskType, _BaseMaskParameters, _BaseMaskAxis); +#endif + c.rgb = lerp(c.rgb, c.rgb * _DarkMultiplier, IN.vertColor.r); + + return c; +} + +#endif diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc.meta new file mode 100644 index 0000000..1abee25 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 462c52c09cf9a244bbc11a016d763ea7 +timeCreated: 1443137462 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader new file mode 100644 index 0000000..eebfd1b --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader @@ -0,0 +1,141 @@ +Shader "OvrAvatar/AvatarSurfaceShader" { + Properties{ + // Global parameters + _Alpha("Alpha", Range(0.0, 1.0)) = 1.0 + _DarkMultiplier("Dark Multiplier", Color) = (0.6, 0.6, 0.6, 1.0) + _BaseColor("Base Color", Color) = (0.0, 0.0, 0.0, 0.0) + _BaseMaskType("Base Mask Type", Int) = 0 + _BaseMaskParameters("Base Mask Parameters", Vector) = (0, 0, 0, 0) + _BaseMaskAxis("Base Mask Axis", Vector) = (0, 1, 0, 0) + _AlphaMask("Alpha Mask", 2D) = "white" {} + _NormalMap("Normal Map", 2D) = "" {} + _ParallaxMap("Parallax Map", 2D) = "" {} + _RoughnessMap("Roughness Map", 2D) = "" {} + + // Layer 0 parameters + _LayerSampleMode0("Layer Sample Mode 0", Int) = 0 + _LayerBlendMode0("Layer Blend Mode 0", Int) = 0 + _LayerMaskType0("Layer Mask Type 0", Int) = 0 + _LayerColor0("Layer Color 0", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface0("Layer Surface 0", 2D) = "" {} + _LayerSampleParameters0("Layer Sample Parameters 0", Vector) = (0, 0, 0, 0) + _LayerMaskParameters0("Layer Mask Parameters 0", Vector) = (0, 0, 0, 0) + _LayerMaskAxis0("Layer Mask Axis 0", Vector) = (0, 1, 0, 0) + + // Layer 1 parameters + _LayerSampleMode1("Layer Sample Mode 1", Int) = 0 + _LayerBlendMode1("Layer Blend Mode 1", Int) = 0 + _LayerMaskType1("Layer Mask Type 1", Int) = 0 + _LayerColor1("Layer Color 1", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface1("Layer Surface 1", 2D) = "" {} + _LayerSampleParameters1("Layer Sample Parameters 1", Vector) = (0, 0, 0, 0) + _LayerMaskParameters1("Layer Mask Parameters 1", Vector) = (0, 0, 0, 0) + _LayerMaskAxis1("Layer Mask Axis 1", Vector) = (0, 1, 0, 0) + + // Layer 2 parameters + _LayerSampleMode2("Layer Sample Mode 2", Int) = 0 + _LayerBlendMode2("Layer Blend Mode 2", Int) = 0 + _LayerMaskType2("Layer Mask Type 2", Int) = 0 + _LayerColor2("Layer Color 2", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface2("Layer Surface 2", 2D) = "" {} + _LayerSampleParameters2("Layer Sample Parameters 2", Vector) = (0, 0, 0, 0) + _LayerMaskParameters2("Layer Mask Parameters 2", Vector) = (0, 0, 0, 0) + _LayerMaskAxis2("Layer Mask Axis 2", Vector) = (0, 1, 0, 0) + + // Layer 3 parameters + _LayerSampleMode3("Layer Sample Mode 3", Int) = 0 + _LayerBlendMode3("Layer Blend Mode 3", Int) = 0 + _LayerMaskType3("Layer Mask Type 3", Int) = 0 + _LayerColor3("Layer Color 3", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface3("Layer Surface 3", 2D) = "" {} + _LayerSampleParameters3("Layer Sample Parameters 3", Vector) = (0, 0, 0, 0) + _LayerMaskParameters3("Layer Mask Parameters 3", Vector) = (0, 0, 0, 0) + _LayerMaskAxis3("Layer Mask Axis 3", Vector) = (0, 1, 0, 0) + + // Layer 4 parameters + _LayerSampleMode4("Layer Sample Mode 4", Int) = 0 + _LayerBlendMode4("Layer Blend Mode 4", Int) = 0 + _LayerMaskType4("Layer Mask Type 4", Int) = 0 + _LayerColor4("Layer Color 4", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface4("Layer Surface 4", 2D) = "" {} + _LayerSampleParameters4("Layer Sample Parameters 4", Vector) = (0, 0, 0, 0) + _LayerMaskParameters4("Layer Mask Parameters 4", Vector) = (0, 0, 0, 0) + _LayerMaskAxis4("Layer Mask Axis 4", Vector) = (0, 1, 0, 0) + + // Layer 5 parameters + _LayerSampleMode5("Layer Sample Mode 5", Int) = 0 + _LayerBlendMode5("Layer Blend Mode 5", Int) = 0 + _LayerMaskType5("Layer Mask Type 5", Int) = 0 + _LayerColor5("Layer Color 5", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface5("Layer Surface 5", 2D) = "" {} + _LayerSampleParameters5("Layer Sample Parameters 5", Vector) = (0, 0, 0, 0) + _LayerMaskParameters5("Layer Mask Parameters 5", Vector) = (0, 0, 0, 0) + _LayerMaskAxis5("Layer Mask Axis 5", Vector) = (0, 1, 0, 0) + + // Layer 6 parameters + _LayerSampleMode6("Layer Sample Mode 6", Int) = 0 + _LayerBlendMode6("Layer Blend Mode 6", Int) = 0 + _LayerMaskType6("Layer Mask Type 6", Int) = 0 + _LayerColor6("Layer Color 6", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface6("Layer Surface 6", 2D) = "" {} + _LayerSampleParameters6("Layer Sample Parameters 6", Vector) = (0, 0, 0, 0) + _LayerMaskParameters6("Layer Mask Parameters 6", Vector) = (0, 0, 0, 0) + _LayerMaskAxis6("Layer Mask Axis 6", Vector) = (0, 1, 0, 0) + + // Layer 7 parameters + _LayerSampleMode7("Layer Sample Mode 7", Int) = 0 + _LayerBlendMode7("Layer Blend Mode 7", Int) = 0 + _LayerMaskType7("Layer Mask Type 7", Int) = 0 + _LayerColor7("Layer Color 7", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface7("Layer Surface 7", 2D) = "" {} + _LayerSampleParameters7("Layer Sample Parameters 7", Vector) = (0, 0, 0, 0) + _LayerMaskParameters7("Layer Mask Parameters 7", Vector) = (0, 0, 0, 0) + _LayerMaskAxis7("Layer Mask Axis 7", Vector) = (0, 1, 0, 0) + } + + SubShader + { + Tags + { + "Queue" = "Transparent" + "RenderType" = "Transparent" + } + + Blend SrcAlpha OneMinusSrcAlpha + ZWrite Off + LOD 200 + + Pass + { + Name "FORWARD" + Tags + { + "LightMode" = "ForwardBase" + } + + CGPROGRAM + #pragma only_renderers d3d11 gles3 gles + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + #pragma multi_compile PROJECTOR_OFF PROJECTOR_ON + #pragma multi_compile NORMAL_MAP_OFF NORMAL_MAP_ON + #pragma multi_compile PARALLAX_OFF PARALLAX_ON + #pragma multi_compile ROUGHNESS_OFF ROUGHNESS_ON + #pragma multi_compile VERTALPHA_OFF VERTALPHA_ON + #pragma multi_compile LAYERS_1 LAYERS_2 LAYERS_3 LAYERS_4 LAYERS_5 LAYERS_6 LAYERS_7 LAYERS_8 + + #include "Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc" + + float4 frag(VertexOutput IN) : COLOR + { + return ComputeSurface(IN); + } + + ENDCG + } + } + + FallBack "Diffuse" + CustomEditor "AvatarMaterialEditor" +} diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader.meta new file mode 100644 index 0000000..f0911d7 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d0f6e1942d3d1f946a96fd8a00175474 +timeCreated: 1470862124 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader new file mode 100644 index 0000000..b0bab0e --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader @@ -0,0 +1,79 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "OvrAvatar/AvatarSurfaceShaderPBS" { + Properties{ + // Global parameters + _Alpha("Alpha", Range(0.0, 1.0)) = 1.0 + _Albedo("Albedo (RGB)", 2D) = "" {} + _Surface("Metallic (R) Occlusion (G) and Smoothness (A)", 2D) = "" {} + } + SubShader{ + Tags { + "Queue" = "Transparent" + "RenderType" = "Transparent" + } + + Pass { + ZWrite On + Cull Off + ColorMask 0 + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + #include "UnityCG.cginc" + + struct v2f { + float4 position : SV_POSITION; + }; + v2f vert(appdata_full v) { + // Output + v2f output; + output.position = UnityObjectToClipPos(v.vertex); + return output; + } + + float4 frag(v2f input) : COLOR { + return 0; + } + ENDCG + } + + LOD 200 + + CGPROGRAM + +// Physically based Standard lighting model, and enable shadows on all light types +#pragma surface surf Standard vertex:vert nolightmap alpha noforwardadd + +float _Alpha; +sampler2D _Albedo; +float4 _Albedo_ST; +sampler2D _Surface; +float4 _Surface_ST; + +struct Input { + float2 texcoord; +}; + +void vert(inout appdata_full v, out Input o) { + UNITY_INITIALIZE_OUTPUT(Input, o); + o.texcoord = v.texcoord.xy; +} + +void surf (Input IN, inout SurfaceOutputStandard o) { + o.Albedo = tex2D(_Albedo, TRANSFORM_TEX(IN.texcoord, _Albedo)).rgb; + float4 surfaceParams = tex2D(_Surface, TRANSFORM_TEX(IN.texcoord, _Surface)); + o.Metallic = surfaceParams.r; + o.Occlusion = surfaceParams.g; + o.Smoothness = surfaceParams.a; + o.Alpha = _Alpha; +} + +#pragma only_renderers d3d11 gles3 gles + +ENDCG + } + FallBack "Diffuse" +} diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader.meta new file mode 100644 index 0000000..4625073 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBS.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d7662dbac0646464a9b4a48e93989adb +timeCreated: 1470862124 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader new file mode 100644 index 0000000..cf67a20 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader @@ -0,0 +1,39 @@ +Shader "OvrAvatar/AvatarSurfaceShaderPBSV2" { + Properties { + _AlbedoMultiplier ("Albedo Multiplier", Color) = (1,1,1,1) + _Albedo ("Albedo (RGB)", 2D) = "white" {} + _Metallicness("Metallicness", 2D) = "grey" {} + _GlossinessScale ("Glossiness Scale", Range(0,1)) = 0.5 + } + SubShader { + Tags { "RenderType"="Opaque" } + LOD 200 + + CGPROGRAM + // Physically based Standard lighting model, and enable shadows on all light types + #pragma surface surf Standard fullforwardshadows + + // Use shader model 3.0 target, to get nicer looking lighting + #pragma target 3.0 + + sampler2D _Albedo; + sampler2D _Metallicness; + + struct Input { + float2 uv_Albedo; + }; + + float _GlossinessScale; + float4 _AlbedoMultiplier; + + void surf (Input IN, inout SurfaceOutputStandard o) { + fixed4 c = tex2D (_Albedo, IN.uv_Albedo) * _AlbedoMultiplier; + o.Albedo = c.rgb; + o.Metallic = tex2D (_Metallicness, IN.uv_Albedo).r; + o.Smoothness = _GlossinessScale; + o.Alpha = 1.0; + } + ENDCG + } + FallBack "Diffuse" +} \ No newline at end of file diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader.meta new file mode 100644 index 0000000..414e4a6 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderPBSV2.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3934b2d879c6eb94eb26fa19814c7fcd +timeCreated: 1512064795 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader new file mode 100644 index 0000000..76ce51e --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader @@ -0,0 +1,175 @@ +Shader "OvrAvatar/AvatarSurfaceShaderSelfOccluding" { + Properties{ + // Global parameters + _Alpha("Alpha", Range(0.0, 1.0)) = 1.0 + _DarkMultiplier("Dark Multiplier", Color) = (0.6, 0.6, 0.6, 1.0) + _BaseColor("Base Color", Color) = (0.0, 0.0, 0.0, 0.0) + _BaseMaskType("Base Mask Type", Int) = 0 + _BaseMaskParameters("Base Mask Parameters", Vector) = (0, 0, 0, 0) + _BaseMaskAxis("Base Mask Axis", Vector) = (0, 1, 0, 0) + _AlphaMask("Alpha Mask", 2D) = "white" {} + _NormalMap("Normal Map", 2D) = "" {} + _ParallaxMap("Parallax Map", 2D) = "" {} + _RoughnessMap("Roughness Map", 2D) = "" {} + + // Layer 0 parameters + _LayerSampleMode0("Layer Sample Mode 0", Int) = 0 + _LayerBlendMode0("Layer Blend Mode 0", Int) = 0 + _LayerMaskType0("Layer Mask Type 0", Int) = 0 + _LayerColor0("Layer Color 0", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface0("Layer Surface 0", 2D) = "" {} + _LayerSampleParameters0("Layer Sample Parameters 0", Vector) = (0, 0, 0, 0) + _LayerMaskParameters0("Layer Mask Parameters 0", Vector) = (0, 0, 0, 0) + _LayerMaskAxis0("Layer Mask Axis 0", Vector) = (0, 1, 0, 0) + + // Layer 1 parameters + _LayerSampleMode1("Layer Sample Mode 1", Int) = 0 + _LayerBlendMode1("Layer Blend Mode 1", Int) = 0 + _LayerMaskType1("Layer Mask Type 1", Int) = 0 + _LayerColor1("Layer Color 1", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface1("Layer Surface 1", 2D) = "" {} + _LayerSampleParameters1("Layer Sample Parameters 1", Vector) = (0, 0, 0, 0) + _LayerMaskParameters1("Layer Mask Parameters 1", Vector) = (0, 0, 0, 0) + _LayerMaskAxis1("Layer Mask Axis 1", Vector) = (0, 1, 0, 0) + + // Layer 2 parameters + _LayerSampleMode2("Layer Sample Mode 2", Int) = 0 + _LayerBlendMode2("Layer Blend Mode 2", Int) = 0 + _LayerMaskType2("Layer Mask Type 2", Int) = 0 + _LayerColor2("Layer Color 2", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface2("Layer Surface 2", 2D) = "" {} + _LayerSampleParameters2("Layer Sample Parameters 2", Vector) = (0, 0, 0, 0) + _LayerMaskParameters2("Layer Mask Parameters 2", Vector) = (0, 0, 0, 0) + _LayerMaskAxis2("Layer Mask Axis 2", Vector) = (0, 1, 0, 0) + + // Layer 3 parameters + _LayerSampleMode3("Layer Sample Mode 3", Int) = 0 + _LayerBlendMode3("Layer Blend Mode 3", Int) = 0 + _LayerMaskType3("Layer Mask Type 3", Int) = 0 + _LayerColor3("Layer Color 3", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface3("Layer Surface 3", 2D) = "" {} + _LayerSampleParameters3("Layer Sample Parameters 3", Vector) = (0, 0, 0, 0) + _LayerMaskParameters3("Layer Mask Parameters 3", Vector) = (0, 0, 0, 0) + _LayerMaskAxis3("Layer Mask Axis 3", Vector) = (0, 1, 0, 0) + + // Layer 4 parameters + _LayerSampleMode4("Layer Sample Mode 4", Int) = 0 + _LayerBlendMode4("Layer Blend Mode 4", Int) = 0 + _LayerMaskType4("Layer Mask Type 4", Int) = 0 + _LayerColor4("Layer Color 4", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface4("Layer Surface 4", 2D) = "" {} + _LayerSampleParameters4("Layer Sample Parameters 4", Vector) = (0, 0, 0, 0) + _LayerMaskParameters4("Layer Mask Parameters 4", Vector) = (0, 0, 0, 0) + _LayerMaskAxis4("Layer Mask Axis 4", Vector) = (0, 1, 0, 0) + + // Layer 5 parameters + _LayerSampleMode5("Layer Sample Mode 5", Int) = 0 + _LayerBlendMode5("Layer Blend Mode 5", Int) = 0 + _LayerMaskType5("Layer Mask Type 5", Int) = 0 + _LayerColor5("Layer Color 5", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface5("Layer Surface 5", 2D) = "" {} + _LayerSampleParameters5("Layer Sample Parameters 5", Vector) = (0, 0, 0, 0) + _LayerMaskParameters5("Layer Mask Parameters 5", Vector) = (0, 0, 0, 0) + _LayerMaskAxis5("Layer Mask Axis 5", Vector) = (0, 1, 0, 0) + + // Layer 6 parameters + _LayerSampleMode6("Layer Sample Mode 6", Int) = 0 + _LayerBlendMode6("Layer Blend Mode 6", Int) = 0 + _LayerMaskType6("Layer Mask Type 6", Int) = 0 + _LayerColor6("Layer Color 6", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface6("Layer Surface 6", 2D) = "" {} + _LayerSampleParameters6("Layer Sample Parameters 6", Vector) = (0, 0, 0, 0) + _LayerMaskParameters6("Layer Mask Parameters 6", Vector) = (0, 0, 0, 0) + _LayerMaskAxis6("Layer Mask Axis 6", Vector) = (0, 1, 0, 0) + + // Layer 7 parameters + _LayerSampleMode7("Layer Sample Mode 7", Int) = 0 + _LayerBlendMode7("Layer Blend Mode 7", Int) = 0 + _LayerMaskType7("Layer Mask Type 7", Int) = 0 + _LayerColor7("Layer Color 7", Color) = (1.0, 1.0, 1.0, 1.0) + _LayerSurface7("Layer Surface 7", 2D) = "" {} + _LayerSampleParameters7("Layer Sample Parameters 7", Vector) = (0, 0, 0, 0) + _LayerMaskParameters7("Layer Mask Parameters 7", Vector) = (0, 0, 0, 0) + _LayerMaskAxis7("Layer Mask Axis 7", Vector) = (0, 1, 0, 0) + } + + SubShader + { + Tags + { + "Queue" = "Transparent" + "RenderType" = "Transparent" + } + + Pass + { + ZWrite On + Cull Off + ColorMask 0 + Offset 1, 1 + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + #include "UnityCG.cginc" + + struct v2f + { + float4 position : SV_POSITION; + }; + + v2f vert(appdata_full v) + { + // Output + v2f output; + output.position = UnityObjectToClipPos(v.vertex); + return output; + } + + float4 frag(v2f input) : COLOR + { + return 0; + } + + ENDCG + } + + Blend SrcAlpha OneMinusSrcAlpha + ZWrite Off + LOD 200 + + Pass + { + Name "FORWARD" + Tags + { + "LightMode" = "ForwardBase" + } + + CGPROGRAM + #pragma only_renderers d3d11 gles3 gles + #pragma vertex vert + #pragma fragment frag + #pragma target 3.0 + #pragma multi_compile PROJECTOR_OFF PROJECTOR_ON + #pragma multi_compile NORMAL_MAP_OFF NORMAL_MAP_ON + #pragma multi_compile PARALLAX_OFF PARALLAX_ON + #pragma multi_compile ROUGHNESS_OFF ROUGHNESS_ON + #pragma multi_compile VERTALPHA_OFF VERTALPHA_ON + #pragma multi_compile LAYERS_1 LAYERS_2 LAYERS_3 LAYERS_4 LAYERS_5 LAYERS_6 LAYERS_7 LAYERS_8 + + #include "Assets/Oculus/Avatar/Content/Materials/AvatarMaterialStateShader.cginc" + + float4 frag(VertexOutput IN) : SV_Target + { + return ComputeSurface(IN); + } + + ENDCG + } + } + + FallBack "Diffuse" + CustomEditor "AvatarMaterialEditor" +} diff --git a/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta new file mode 100644 index 0000000..1a00873 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Materials/AvatarSurfaceShaderSelfOccluding.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 10513ef587704324487f3061a7e6699d +timeCreated: 1470862124 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Prefabs.meta b/Assets/Oculus/Avatar/Content/Prefabs.meta new file mode 100644 index 0000000..a1f059c --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e2c4ef7503877e647b22a4089384f04f +folderAsset: yes +timeCreated: 1466717433 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab new file mode 100644 index 0000000..ea2dd46 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab @@ -0,0 +1,793 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &157742 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 448722} + - component: {fileID: 11477770} + m_Layer: 0 + m_Name: controller_right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &158226 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 463470} + - component: {fileID: 11437430} + - component: {fileID: 8254050} + - component: {fileID: 11441414} + m_Layer: 0 + m_Name: LocalAvatar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &184120 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 400938} + - component: {fileID: 11405130} + m_Layer: 0 + m_Name: controller_left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400938 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184120} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &448722 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 157742} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &463470 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158226} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010416372058} + - {fileID: 4000014100970646} + - {fileID: 4000013364346644} + - {fileID: 400938} + - {fileID: 4000011212216358} + - {fileID: 448722} + - {fileID: 4581494204247758} + - {fileID: 4468369968689664} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &8254050 +AudioSource: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158226} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 +--- !u!114 &11405130 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 184120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11437430 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3} + m_Name: + m_EditorClassIdentifier: + DefaultBodyMaterialManager: {fileID: 114949324920430652} + DefaultHandMaterialManager: {fileID: 114029231360713414} + Driver: {fileID: 11441414} + Base: {fileID: 114000010884708534} + Body: {fileID: 114000012186362028} + ControllerLeft: {fileID: 11405130} + ControllerRight: {fileID: 11477770} + HandLeft: {fileID: 114000011404857786} + HandRight: {fileID: 114000010372160784} + RecordPackets: 0 + UseSDKPackets: 1 + StartWithControllers: 0 + FirstPersonLayer: + layerIndex: 0 + ThirdPersonLayer: + layerIndex: 0 + ShowFirstPerson: 1 + ShowThirdPerson: 0 + Capabilities: -1 + SurfaceShader: {fileID: 4800000, guid: 73f67c4e7bf718b4385aa6b1f8a06591, type: 3} + SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 69f342b79d37541489919a19cfd8a924, + type: 3} + SurfaceShaderPBS: {fileID: 4800000, guid: 5e52aa58207bbf24d8eb8ec969e9ae88, type: 3} + SurfaceShaderPBSV2Single: {fileID: 4800000, guid: c26fc51e445dcfd4db09305d861dc11c, + type: 3} + SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 37d2b8298f61cd2469465fc36108675d, + type: 3} + SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 36b8b481cf607814a8cec318f0148d63, + type: 3} + SurfaceShaderPBSV2Loading: {fileID: 4800000, guid: 822f5e641dc5dd54ca9555b727b3277f, + type: 3} + oculusUserID: 0 + LeftHandCustomPose: {fileID: 0} + RightHandCustomPose: {fileID: 0} + PacketSettings: + UpdateRate: 0.033333335 + VoiceAmplitude: 0 + EnableMouthVertexAnimation: 0 +--- !u!114 &11441414 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 158226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac27124318cf8e84aa7350c2ac1cdb80, type: 3} + m_Name: + m_EditorClassIdentifier: + Mode: 0 +--- !u!114 &11477770 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 157742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 158226} + m_IsPrefabParent: 1 +--- !u!1 &1000010482306814 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011212216358} + - component: {fileID: 114000010372160784} + m_Layer: 0 + m_Name: hand_right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010910743596 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010416372058} + - component: {fileID: 114000010884708534} + m_Layer: 0 + m_Name: base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011125779090 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013364346644} + - component: {fileID: 114000011404857786} + m_Layer: 0 + m_Name: hand_left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012026592076 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014100970646} + - component: {fileID: 114000012186362028} + m_Layer: 0 + m_Name: body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1098047352992398 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4581494204247758} + - component: {fileID: 114949324920430652} + m_Layer: 0 + m_Name: DefaultBodyMaterialManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1231602751420816 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4468369968689664} + - component: {fileID: 114029231360713414} + m_Layer: 0 + m_Name: DefaultHandMaterialManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4000010416372058 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010910743596} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011212216358 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010482306814} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013364346644 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011125779090} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014100970646 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012026592076} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.6, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4468369968689664 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1231602751420816} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4581494204247758 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1098047352992398} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 463470} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &114000010372160784 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010482306814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114000010884708534 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010910743596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114000011404857786 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011125779090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114000012186362028 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012026592076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114029231360713414 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1231602751420816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3} + m_Name: + m_EditorClassIdentifier: + DiffuseFallbacks: + - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3} + NormalFallbacks: + - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3} + BodyColorTints: + - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1} + - {r: 1, g: 0.9529412, b: 0.92156863, a: 1} + - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1} + - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1} + - {r: 0.45490196, g: 0.1882353, b: 0, a: 1} + - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1} + LocalAvatarConfig: + ComponentMaterialProperties: [] + MaterialPropertyBlock: + Colors: [] + DiffuseIntensities: [] + RimIntensities: [] + BacklightIntensities: [] + ReflectionIntensities: [] + DefaultAvatarConfig: + ComponentMaterialProperties: + - TypeIndex: 0 + Color: {r: 1, g: 0.9529412, b: 0.92156863, a: 1} + Textures: [] + DiffuseIntensity: 0.301 + RimIntensity: 5 + BacklightIntensity: 1 + ReflectionIntensity: 0 + - TypeIndex: 1 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: [] + DiffuseIntensity: 0.1 + RimIntensity: 2 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.3 + - TypeIndex: 2 + Color: {r: 0.80784315, g: 0.80784315, b: 0.80784315, a: 1} + Textures: [] + DiffuseIntensity: 0 + RimIntensity: 2.84 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.4 + - TypeIndex: 3 + Color: {r: 0.22352941, g: 0.11372549, b: 0, a: 1} + Textures: [] + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + - TypeIndex: 4 + Color: {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1} + Textures: [] + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + MaterialPropertyBlock: + Colors: + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + DiffuseIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 + RimIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 + BacklightIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 + ReflectionIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 +--- !u!114 &114949324920430652 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1098047352992398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3} + m_Name: + m_EditorClassIdentifier: + DiffuseFallbacks: + - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3} + NormalFallbacks: + - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3} + BodyColorTints: + - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1} + - {r: 1, g: 0.9529412, b: 0.92156863, a: 1} + - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1} + - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1} + - {r: 0.45490196, g: 0.1882353, b: 0, a: 1} + - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1} + LocalAvatarConfig: + ComponentMaterialProperties: + - TypeIndex: 0 + Color: {r: 1, g: 0.86, b: 0.77, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.3 + RimIntensity: 5 + BacklightIntensity: 1 + ReflectionIntensity: 0 + - TypeIndex: 1 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.1 + RimIntensity: 2 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.3 + - TypeIndex: 2 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0 + RimIntensity: 2.84 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.4 + - TypeIndex: 3 + Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + - TypeIndex: 4 + Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34} + Textures: + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + MaterialPropertyBlock: + Colors: + - {x: 1, y: 0.86, z: 0.77, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1} + - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22} + DiffuseIntensities: + - 0.3 + - 0.1 + - 0 + - 0.15 + - 0.15 + RimIntensities: + - 5 + - 2 + - 2.84 + - 4 + - 4 + BacklightIntensities: + - 1 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + ReflectionIntensities: + - 0 + - 0.3 + - 0.4 + - 0 + - 0 + DefaultAvatarConfig: + ComponentMaterialProperties: + - TypeIndex: 0 + Color: {r: 1, g: 0.86, b: 0.77, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.3 + RimIntensity: 5 + BacklightIntensity: 1 + ReflectionIntensity: 0 + - TypeIndex: 1 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.1 + RimIntensity: 2 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.3 + - TypeIndex: 2 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0 + RimIntensity: 2.84 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.4 + - TypeIndex: 3 + Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + - TypeIndex: 4 + Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34} + Textures: + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + MaterialPropertyBlock: + Colors: + - {x: 1, y: 0.86, z: 0.77, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1} + - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22} + DiffuseIntensities: + - 0.3 + - 0.1 + - 0 + - 0.15 + - 0.15 + RimIntensities: + - 5 + - 2 + - 2.84 + - 4 + - 4 + BacklightIntensities: + - 1 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + ReflectionIntensities: + - 0 + - 0.3 + - 0.4 + - 0 + - 0 diff --git a/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab.meta b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab.meta new file mode 100644 index 0000000..4844c05 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Prefabs/LocalAvatar.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 84c8b8609f9bb434eaf5248f17ff1293 +timeCreated: 1466806466 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab new file mode 100644 index 0000000..575f84c --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab @@ -0,0 +1,2830 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &143252 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 496618} + - component: {fileID: 11464902} + - component: {fileID: 11461908} + m_Layer: 0 + m_Name: RemoteAvatar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &154294 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 489662} + - component: {fileID: 114000010091674760} + m_Layer: 0 + m_Name: hand_left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &165584 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 429728} + - component: {fileID: 114000012345544872} + m_Layer: 0 + m_Name: body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &166844 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 435882} + - component: {fileID: 11465430} + m_Layer: 0 + m_Name: controller_right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &178596 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 433868} + - component: {fileID: 11470276} + m_Layer: 0 + m_Name: controller_left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &188284 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 407044} + - component: {fileID: 114000012207304612} + m_Layer: 0 + m_Name: hand_right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &407044 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188284} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 496618} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &429728 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165584} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.6, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 496618} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &433868 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178596} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012540091686} + m_Father: {fileID: 496618} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &435882 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166844} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011967535116} + m_Father: {fileID: 496618} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &489662 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 154294} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.15, y: 1.221, z: 0.282} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 496618} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &496618 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143252} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011021225538} + - {fileID: 429728} + - {fileID: 489662} + - {fileID: 407044} + - {fileID: 433868} + - {fileID: 435882} + - {fileID: 4461464600332690} + - {fileID: 4823973753068400} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &11461908 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143252} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c198a42a3843ca04fa633b60f428ff51, type: 3} + m_Name: + m_EditorClassIdentifier: + Mode: 0 +--- !u!114 &11464902 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 143252} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 00f3402a2ea5bff4880c0313515240cd, type: 3} + m_Name: + m_EditorClassIdentifier: + DefaultBodyMaterialManager: {fileID: 114533516196804206} + DefaultHandMaterialManager: {fileID: 114144217084364882} + Driver: {fileID: 11461908} + Base: {fileID: 114000010148578704} + Body: {fileID: 114000012345544872} + ControllerLeft: {fileID: 11470276} + ControllerRight: {fileID: 11465430} + HandLeft: {fileID: 114000010091674760} + HandRight: {fileID: 114000012207304612} + RecordPackets: 0 + UseSDKPackets: 1 + StartWithControllers: 0 + FirstPersonLayer: + layerIndex: 0 + ThirdPersonLayer: + layerIndex: 0 + ShowFirstPerson: 0 + ShowThirdPerson: 1 + Capabilities: -1 + SurfaceShader: {fileID: 4800000, guid: 73f67c4e7bf718b4385aa6b1f8a06591, type: 3} + SurfaceShaderSelfOccluding: {fileID: 4800000, guid: 69f342b79d37541489919a19cfd8a924, + type: 3} + SurfaceShaderPBS: {fileID: 4800000, guid: 5e52aa58207bbf24d8eb8ec969e9ae88, type: 3} + SurfaceShaderPBSV2Single: {fileID: 4800000, guid: c26fc51e445dcfd4db09305d861dc11c, + type: 3} + SurfaceShaderPBSV2Combined: {fileID: 4800000, guid: 37d2b8298f61cd2469465fc36108675d, + type: 3} + SurfaceShaderPBSV2Simple: {fileID: 4800000, guid: 36b8b481cf607814a8cec318f0148d63, + type: 3} + SurfaceShaderPBSV2Loading: {fileID: 4800000, guid: 822f5e641dc5dd54ca9555b727b3277f, + type: 3} + oculusUserID: 0 + LeftHandCustomPose: {fileID: 0} + RightHandCustomPose: {fileID: 0} + PacketSettings: + UpdateRate: 0.033333335 + VoiceAmplitude: 0 + EnableMouthVertexAnimation: 0 +--- !u!114 &11465430 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11470276 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77e19ec58d4a9e844970103e5bd8946a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 143252} + m_IsPrefabParent: 1 +--- !u!1 &1000010176019332 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013053309248} + - component: {fileID: 137000012539278394} + m_Layer: 0 + m_Name: rctrl:a_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010186355062 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013448249666} + m_Layer: 0 + m_Name: rctrl:b_hold + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010353348604 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011939430368} + - component: {fileID: 137000012561251176} + m_Layer: 0 + m_Name: lctrl:ring_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010404229384 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011568184020} + - component: {fileID: 137000012327971406} + m_Layer: 0 + m_Name: lctrl:surface_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010462727460 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010715895894} + m_Layer: 0 + m_Name: rctrl:right_touch_controller_world + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010540851970 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012605354570} + - component: {fileID: 137000012577831356} + m_Layer: 0 + m_Name: rctrl:b_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010567967398 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012724529694} + m_Layer: 0 + m_Name: rctrl:b_trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010618960340 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012540091686} + - component: {fileID: 95000014191315040} + m_Layer: 0 + m_Name: left_touch_controller_model_skel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010732039748 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014027683858} + - component: {fileID: 137000014239696370} + m_Layer: 0 + m_Name: rctrl:o_button_decal_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010829465458 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013426853722} + m_Layer: 0 + m_Name: lctrl:geometry_null + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011032731176 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013724697446} + m_Layer: 0 + m_Name: rctrl:b_stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011186482016 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011967535116} + - component: {fileID: 95000011808594792} + m_Layer: 0 + m_Name: right_touch_controller_model_skel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011251501750 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012705674684} + - component: {fileID: 137000013198274284} + m_Layer: 0 + m_Name: rctrl:ring_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011296493708 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011540650158} + m_Layer: 0 + m_Name: lctrl:b_trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011598347302 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012705338176} + m_Layer: 0 + m_Name: rctrl:b_stick_IGNORE + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011605533530 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010811930704} + m_Layer: 0 + m_Name: lctrl:b_stick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011727251070 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012384171158} + m_Layer: 0 + m_Name: rctrl:b_button01 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011772014684 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011564629680} + - component: {fileID: 137000014119152936} + m_Layer: 0 + m_Name: rctrl:o_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011875671922 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013166053970} + - component: {fileID: 137000010724210166} + m_Layer: 0 + m_Name: rctrl:side_trigger_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011963518446 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012961726978} + - component: {fileID: 137000011963534174} + m_Layer: 0 + m_Name: lctrl:thumbstick_ball_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011996807892 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013876876732} + m_Layer: 0 + m_Name: rctrl:b_button02 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012054331002 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011636682892} + - component: {fileID: 137000013701477334} + m_Layer: 0 + m_Name: rctrl:thumbstick_ball_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012150430946 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012272704210} + - component: {fileID: 137000012107674410} + m_Layer: 0 + m_Name: lctrl:o_button_decal_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012196631598 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012842689428} + m_Layer: 0 + m_Name: lctrl:left_touch_controller_world + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012207203502 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011814646714} + m_Layer: 0 + m_Name: lctrl:b_stick_IGNORE + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012459128118 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010499556928} + - component: {fileID: 137000010692100556} + m_Layer: 0 + m_Name: lctrl:x_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012540503508 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010768823692} + m_Layer: 0 + m_Name: rctrl:b_button03 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012561114658 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011465109902} + - component: {fileID: 137000011798888872} + m_Layer: 0 + m_Name: lctrl:o_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012687583852 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012029189976} + m_Layer: 0 + m_Name: lctrl:b_button01 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012703596256 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010465752764} + - component: {fileID: 137000012369293346} + m_Layer: 0 + m_Name: rctrl:controller_body_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012739084852 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011697994020} + - component: {fileID: 137000012017572084} + m_Layer: 0 + m_Name: lctrl:main_trigger_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012820484798 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011581298260} + m_Layer: 0 + m_Name: rctrl:geometry_null + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012913350438 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011021225538} + - component: {fileID: 114000010148578704} + m_Layer: 0 + m_Name: base + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013039583002 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013285752372} + m_Layer: 0 + m_Name: lctrl:b_button03 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013068196432 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012208151102} + - component: {fileID: 137000011002884086} + m_Layer: 0 + m_Name: lctrl:controller_body_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013237565076 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012351109320} + - component: {fileID: 137000012071317434} + m_Layer: 0 + m_Name: rctrl:surface_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013362553720 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011208292394} + - component: {fileID: 137000010318330296} + m_Layer: 0 + m_Name: lctrl:side_trigger_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013632609248 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014115540756} + - component: {fileID: 137000010086889286} + m_Layer: 0 + m_Name: rctrl:main_trigger_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013724541018 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011684154134} + m_Layer: 0 + m_Name: lctrl:b_button02 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013773920210 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010076381212} + m_Layer: 0 + m_Name: lctrl:b_hold + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013783390420 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011937531554} + - component: {fileID: 137000010625253534} + m_Layer: 0 + m_Name: lctrl:y_button_PLY + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1387099181202896 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4461464600332690} + - component: {fileID: 114533516196804206} + m_Layer: 0 + m_Name: DefaultBodyMaterialManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1952448560374888 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4823973753068400} + - component: {fileID: 114144217084364882} + m_Layer: 0 + m_Name: DefaultHandMaterialManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4000010076381212 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013773920210} + m_LocalRotation: {x: -0.18065539, y: -0.13555649, z: -0.067166515, w: 0.97184193} + m_LocalPosition: {x: 0.013074442, y: -0.025639696, z: -0.027427113} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000012842689428} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010465752764 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012703596256} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010499556928 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012459128118} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010715895894 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010462727460} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0.7071068, w: -8.659561e-17} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012384171158} + - {fileID: 4000013876876732} + - {fileID: 4000010768823692} + - {fileID: 4000013448249666} + - {fileID: 4000013724697446} + - {fileID: 4000012724529694} + m_Father: {fileID: 4000011967535116} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010768823692 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012540503508} + m_LocalRotation: {x: 0.07876507, y: 0.01894126, z: 0.5343878, w: 0.8413483} + m_LocalPosition: {x: -0.012083728, y: -0.01402681, z: -0.0007126567} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010715895894} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010811930704 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011605533530} + m_LocalRotation: {x: 0.0027868259, y: 0.70437866, z: -0.0031505642, w: 0.7098119} + m_LocalPosition: {x: 0.010637393, y: 0.00497835, z: -0.009418557} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011814646714} + m_Father: {fileID: 4000012842689428} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011021225538 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012913350438} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 496618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011208292394 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013362553720} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011465109902 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012561114658} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011540650158 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011296493708} + m_LocalRotation: {x: -0.05795374, y: -0.05660452, z: 0.9967023, w: 0.0046757394} + m_LocalPosition: {x: -0.001420367, y: 0.021865888, z: -0.005495974} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000012842689428} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011564629680 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011772014684} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011568184020 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010404229384} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011581298260 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012820484798} + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013053309248} + - {fileID: 4000012605354570} + - {fileID: 4000010465752764} + - {fileID: 4000014115540756} + - {fileID: 4000014027683858} + - {fileID: 4000011564629680} + - {fileID: 4000012705674684} + - {fileID: 4000013166053970} + - {fileID: 4000012351109320} + - {fileID: 4000011636682892} + m_Father: {fileID: 4000011967535116} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011636682892 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012054331002} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011684154134 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013724541018} + m_LocalRotation: {x: 0.017080953, y: -0.07918932, z: 0.52647054, w: 0.84632504} + m_LocalPosition: {x: -0.0091353385, y: 0.005499125, z: -0.00011681918} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000012842689428} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011697994020 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012739084852} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011814646714 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012207203502} + m_LocalRotation: {x: 0, y: -0.70108956, z: -0, w: 0.71307325} + m_LocalPosition: {x: -0.019321036, y: 0, z: 9.992007e-18} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010811930704} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011937531554 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013783390420} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011939430368 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010353348604} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011967535116 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011186482016} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011581298260} + - {fileID: 4000010715895894} + m_Father: {fileID: 435882} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012029189976 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012687583852} + m_LocalRotation: {x: 0.05660452, y: -0.05795374, z: -0.0046757394, w: 0.9967023} + m_LocalPosition: {x: -0.0019170768, y: -0.0073837424, z: -0.00091214647} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000012842689428} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012208151102 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013068196432} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012272704210 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012150430946} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012351109320 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013237565076} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012384171158 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011727251070} + m_LocalRotation: {x: 0.056604527, y: 0.05795374, z: 0.004675739, w: 0.9967023} + m_LocalPosition: {x: 0.0019170768, y: -0.0073837424, z: -0.00091214647} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010715895894} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012540091686 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010618960340} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013426853722} + - {fileID: 4000012842689428} + m_Father: {fileID: 433868} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012605354570 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010540851970} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012705338176 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011598347302} + m_LocalRotation: {x: -4.5059287e-17, y: -0.70108956, z: -6.5911624e-17, w: 0.71307325} + m_LocalPosition: {x: -0.019321036, y: 0, z: 9.992007e-18} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013724697446} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012705674684 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011251501750} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012724529694 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010567967398} + m_LocalRotation: {x: 0.056604527, y: 0.05795374, z: 0.004675739, w: 0.9967023} + m_LocalPosition: {x: 0.001420367, y: 0.021865888, z: -0.005495974} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010715895894} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012842689428 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012196631598} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0.7071068, w: -8.659561e-17} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012029189976} + - {fileID: 4000011684154134} + - {fileID: 4000013285752372} + - {fileID: 4000010076381212} + - {fileID: 4000010811930704} + - {fileID: 4000011540650158} + m_Father: {fileID: 4000012540091686} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012961726978 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011963518446} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000013426853722} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013053309248 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010176019332} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013166053970 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011875671922} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013285752372 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013039583002} + m_LocalRotation: {x: 0.05660452, y: -0.05795374, z: -0.0046757394, w: 0.9967023} + m_LocalPosition: {x: 0.012083728, y: -0.01402681, z: -0.0007126567} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000012842689428} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013426853722 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010829465458} + m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012208151102} + - {fileID: 4000011697994020} + - {fileID: 4000012272704210} + - {fileID: 4000011465109902} + - {fileID: 4000011939430368} + - {fileID: 4000011208292394} + - {fileID: 4000011568184020} + - {fileID: 4000012961726978} + - {fileID: 4000010499556928} + - {fileID: 4000011937531554} + m_Father: {fileID: 4000012540091686} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013448249666 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010186355062} + m_LocalRotation: {x: -0.17913595, y: 0.14914332, z: 0.022661837, w: 0.97218984} + m_LocalPosition: {x: -0.013074442, y: -0.025639696, z: -0.027427113} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010715895894} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013724697446 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011032731176} + m_LocalRotation: {x: -0.003149668, y: 0.7098123, z: 0.002783398, w: 0.7043784} + m_LocalPosition: {x: -0.010637393, y: 0.00497835, z: -0.009418557} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012705338176} + m_Father: {fileID: 4000010715895894} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013876876732 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011996807892} + m_LocalRotation: {x: 0.07876507, y: 0.01894126, z: 0.5343878, w: 0.8413483} + m_LocalPosition: {x: 0.009152712, y: 0.0054823146, z: 0.000030916483} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010715895894} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014027683858 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010732039748} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014115540756 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013632609248} + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000011581298260} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4461464600332690 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1387099181202896} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 496618} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4823973753068400 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1952448560374888} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 496618} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &95000011808594792 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011186482016} + m_Enabled: 1 + m_Avatar: {fileID: 9000000, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Controller: {fileID: 0} + m_CullingMode: 1 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 +--- !u!95 &95000014191315040 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010618960340} + m_Enabled: 1 + m_Avatar: {fileID: 9000000, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Controller: {fileID: 0} + m_CullingMode: 1 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 +--- !u!114 &114000010091674760 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 154294} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114000010148578704 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012913350438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a0e33623ec5372748b5703f61a4df82d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114000012207304612 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 188284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e53b07ad62d980a4da9fffff0b05fd2e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114000012345544872 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eb7a6650b6cb46545967d3b380b7396c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114144217084364882 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1952448560374888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3} + m_Name: + m_EditorClassIdentifier: + DiffuseFallbacks: + - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3} + NormalFallbacks: + - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3} + BodyColorTints: + - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1} + - {r: 1, g: 0.9529412, b: 0.92156863, a: 1} + - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1} + - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1} + - {r: 0.45490196, g: 0.1882353, b: 0, a: 1} + - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1} + LocalAvatarConfig: + ComponentMaterialProperties: [] + MaterialPropertyBlock: + Colors: [] + DiffuseIntensities: [] + RimIntensities: [] + BacklightIntensities: [] + ReflectionIntensities: [] + DefaultAvatarConfig: + ComponentMaterialProperties: + - TypeIndex: 0 + Color: {r: 1, g: 0.9529412, b: 0.92156863, a: 1} + Textures: [] + DiffuseIntensity: 0.301 + RimIntensity: 5 + BacklightIntensity: 1 + ReflectionIntensity: 0 + - TypeIndex: 1 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: [] + DiffuseIntensity: 0.1 + RimIntensity: 2 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.3 + - TypeIndex: 2 + Color: {r: 0.80784315, g: 0.80784315, b: 0.80784315, a: 1} + Textures: [] + DiffuseIntensity: 0 + RimIntensity: 2.84 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.4 + - TypeIndex: 3 + Color: {r: 0.22352941, g: 0.11372549, b: 0, a: 1} + Textures: [] + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + - TypeIndex: 4 + Color: {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1} + Textures: [] + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + MaterialPropertyBlock: + Colors: + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + - {x: 0, y: 0, z: 0, w: 0} + DiffuseIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 + RimIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 + BacklightIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 + ReflectionIntensities: + - 0 + - 0 + - 0 + - 0 + - 0 +--- !u!114 &114533516196804206 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1387099181202896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a139d83bf6796734db220df8a5bfacbd, type: 3} + m_Name: + m_EditorClassIdentifier: + DiffuseFallbacks: + - {fileID: 2800000, guid: 7d8da3d06466cc04da8c020819170a59, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: b3e87b1024f5fa8408d004b398e7b0c0, type: 3} + NormalFallbacks: + - {fileID: 2800000, guid: 93a54b3b63bcc6d49b16f6bdb655b940, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 22a046c12fc7f3c4d98a98add109fa96, type: 3} + BodyColorTints: + - {r: 0.9764706, g: 0.8509804, b: 0.6862745, a: 1} + - {r: 1, g: 0.9529412, b: 0.92156863, a: 1} + - {r: 0.9764706, g: 0.9019608, b: 0.6745098, a: 1} + - {r: 0.7647059, g: 0.6039216, b: 0.2509804, a: 1} + - {r: 0.45490196, g: 0.1882353, b: 0, a: 1} + - {r: 0.22352941, g: 0.023529412, b: 0.011764706, a: 1} + LocalAvatarConfig: + ComponentMaterialProperties: + - TypeIndex: 0 + Color: {r: 1, g: 0.86, b: 0.77, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.3 + RimIntensity: 5 + BacklightIntensity: 1 + ReflectionIntensity: 0 + - TypeIndex: 1 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.1 + RimIntensity: 2 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.3 + - TypeIndex: 2 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0 + RimIntensity: 2.84 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.4 + - TypeIndex: 3 + Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + - TypeIndex: 4 + Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34} + Textures: + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + MaterialPropertyBlock: + Colors: + - {x: 1, y: 0.86, z: 0.77, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1} + - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22} + DiffuseIntensities: + - 0.3 + - 0.1 + - 0 + - 0.15 + - 0.15 + RimIntensities: + - 5 + - 2 + - 2.84 + - 4 + - 4 + BacklightIntensities: + - 1 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + ReflectionIntensities: + - 0 + - 0.3 + - 0.4 + - 0 + - 0 + DefaultAvatarConfig: + ComponentMaterialProperties: + - TypeIndex: 0 + Color: {r: 1, g: 0.86, b: 0.77, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.3 + RimIntensity: 5 + BacklightIntensity: 1 + ReflectionIntensity: 0 + - TypeIndex: 1 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.1 + RimIntensity: 2 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.3 + - TypeIndex: 2 + Color: {r: 1, g: 1, b: 1, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0 + RimIntensity: 2.84 + BacklightIntensity: 0.7 + ReflectionIntensity: 0.4 + - TypeIndex: 3 + Color: {r: 0.6235, g: 0.4627, b: 0.3412, a: 1} + Textures: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + - TypeIndex: 4 + Color: {r: -5.3487954e+9, g: 771.1758, b: -5.6686517e+23, a: 4.9667446e-34} + Textures: + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + - {fileID: 2800000, guid: 9fb4a3be60417d043865e457a9d51e63, type: 3} + - {fileID: 2800000, guid: 502d438d2584976448c3cdb146ed836d, type: 3} + DiffuseIntensity: 0.15 + RimIntensity: 4 + BacklightIntensity: 0.7 + ReflectionIntensity: 0 + MaterialPropertyBlock: + Colors: + - {x: 1, y: 0.86, z: 0.77, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 1, y: 1, z: 1, w: 1} + - {x: 0.6235, y: 0.4627, z: 0.3412, w: 1} + - {x: -0.025753247, y: -2.0311036e-13, z: -6.2685677e-31, w: -2.0021067e+22} + DiffuseIntensities: + - 0.3 + - 0.1 + - 0 + - 0.15 + - 0.15 + RimIntensities: + - 5 + - 2 + - 2.84 + - 4 + - 4 + BacklightIntensities: + - 1 + - 0.7 + - 0.7 + - 0.7 + - 0.7 + ReflectionIntensities: + - 0 + - 0.3 + - 0.4 + - 0 + - 0 +--- !u!137 &137000010086889286 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013632609248} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300000, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000012724529694} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000012724529694} + m_AABB: + m_Center: {x: -0.00066094473, y: -0.0013324618, z: -0.013972076} + m_Extent: {x: 0.014561898, y: 0.009363493, z: 0.013364943} + m_DirtyAABB: 0 +--- !u!137 &137000010318330296 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013362553720} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300004, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000010076381212} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000010076381212} + m_AABB: + m_Center: {x: -0.015075567, y: -0.000016345643, z: 0.0018507377} + m_Extent: {x: 0.0069265487, y: 0.01454833, z: 0.0073075653} + m_DirtyAABB: 0 +--- !u!137 &137000010625253534 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013783390420} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300014, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000011684154134} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000011684154134} + m_AABB: + m_Center: {x: 0.000002396293, y: -0.000002480112, z: 0.0004961204} + m_Extent: {x: 0.0050600627, y: 0.005023708, z: 0.0025072547} + m_DirtyAABB: 0 +--- !u!137 &137000010692100556 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012459128118} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300012, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000012029189976} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000012029189976} + m_AABB: + m_Center: {x: -0.0000007278286, y: 0.000013420358, z: 0.00049956236} + m_Extent: {x: 0.0050891, y: 0.0051111123, z: 0.0025754925} + m_DirtyAABB: 0 +--- !u!137 &137000010724210166 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011875671922} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300002, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000013448249666} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000013448249666} + m_AABB: + m_Center: {x: 0.015085924, y: 0.00079575554, z: 0.0022845878} + m_Extent: {x: 0.007514255, y: 0.01456238, z: 0.0074783214} + m_DirtyAABB: 0 +--- !u!137 &137000011002884086 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013068196432} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300000, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000012842689428} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000012842689428} + m_AABB: + m_Center: {x: 0.0012377053, y: -0.019060574, z: -0.031179674} + m_Extent: {x: 0.030484837, y: 0.051344864, z: 0.03589142} + m_DirtyAABB: 0 +--- !u!137 &137000011798888872 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012561114658} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300018, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000013285752372} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000013285752372} + m_AABB: + m_Center: {x: 0.00000036275014, y: 0.0000008731149, z: 0.00057195796} + m_Extent: {x: 0.004508081, y: 0.0045095203, z: 0.0007474726} + m_DirtyAABB: 0 +--- !u!137 &137000011963534174 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011963518446} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300006, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000012842689428} + - {fileID: 4000010811930704} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000012842689428} + m_AABB: + m_Center: {x: 0.010604473, y: 0.0049807066, z: 0.0022465445} + m_Extent: {x: 0.01075476, y: 0.010751982, z: 0.007853846} + m_DirtyAABB: 0 +--- !u!137 &137000012017572084 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012739084852} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300002, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000011540650158} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000011540650158} + m_AABB: + m_Center: {x: -0.00066094473, y: 0.00133246, z: -0.01397207} + m_Extent: {x: 0.014561897, y: 0.009363488, z: 0.013364941} + m_DirtyAABB: 0 +--- !u!137 &137000012071317434 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013237565076} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300008, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000010715895894} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000010715895894} + m_AABB: + m_Center: {x: -0.00016466528, y: 0.00024955347, z: -0.0010734652} + m_Extent: {x: 0.028195847, y: 0.028275441, z: 0.0059699165} + m_DirtyAABB: 0 +--- !u!137 &137000012107674410 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012150430946} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300016, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000013285752372} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000013285752372} + m_AABB: + m_Center: {x: 0.000017444137, y: -0.000100485515, z: 0.0012767066} + m_Extent: {x: 0.0021195891, y: 0.0016280017, z: 0.000015275204} + m_DirtyAABB: 0 +--- !u!137 &137000012327971406 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010404229384} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300010, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000012842689428} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000012842689428} + m_AABB: + m_Center: {x: 0.00016466528, y: 0.00024955347, z: -0.0010734657} + m_Extent: {x: 0.028195847, y: 0.028275441, z: 0.0059699193} + m_DirtyAABB: 0 +--- !u!137 &137000012369293346 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012703596256} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300010, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000010715895894} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000010715895894} + m_AABB: + m_Center: {x: -0.0012377053, y: -0.019060578, z: -0.031160343} + m_Extent: {x: 0.030484837, y: 0.051344868, z: 0.035910744} + m_DirtyAABB: 0 +--- !u!137 &137000012539278394 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010176019332} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300014, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000012384171158} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000012384171158} + m_AABB: + m_Center: {x: 0.0000007287599, y: 0.000013418961, z: 0.0005103166} + m_Extent: {x: 0.0050891, y: 0.005111113, z: 0.0025862462} + m_DirtyAABB: 0 +--- !u!137 &137000012561251176 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010353348604} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300008, guid: 111c043191ef2d44a8ff0233d087d59e, type: 3} + m_Bones: + - {fileID: 4000012842689428} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000012842689428} + m_AABB: + m_Center: {x: 0.016699273, y: 0.010818437, z: -0.03636413} + m_Extent: {x: 0.05463389, y: 0.021678235, z: 0.05022069} + m_DirtyAABB: 0 +--- !u!137 &137000012577831356 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010540851970} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300012, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000013876876732} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000013876876732} + m_AABB: + m_Center: {x: 0.00000034226105, y: -0.0000009154901, z: 0.000357131} + m_Extent: {x: 0.005052495, y: 0.00505287, z: 0.0025179668} + m_DirtyAABB: 0 +--- !u!137 &137000013198274284 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011251501750} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300006, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000010715895894} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000010715895894} + m_AABB: + m_Center: {x: -0.016699273, y: 0.010818433, z: -0.03636414} + m_Extent: {x: 0.05463389, y: 0.021678232, z: 0.050220694} + m_DirtyAABB: 0 +--- !u!137 &137000013701477334 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012054331002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300004, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000010715895894} + - {fileID: 4000013724697446} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000010715895894} + m_AABB: + m_Center: {x: -0.010547765, y: 0.0049847644, z: 0.002247721} + m_Extent: {x: 0.010899376, y: 0.010843772, z: 0.007860379} + m_DirtyAABB: 0 +--- !u!137 &137000014119152936 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011772014684} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300018, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000010768823692} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000010768823692} + m_AABB: + m_Center: {x: -0.00000026077032, y: -0.0000001359731, z: 0.00054196385} + m_Extent: {x: 0.0044898377, y: 0.004489343, z: 0.000747473} + m_DirtyAABB: 0 +--- !u!137 &137000014239696370 +SkinnedMeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010732039748} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + serializedVersion: 2 + m_Quality: 0 + m_UpdateWhenOffscreen: 0 + m_SkinnedMotionVectors: 1 + m_Mesh: {fileID: 4300016, guid: 20d82fb66fc22fa40ae34d9489bd6fcd, type: 3} + m_Bones: + - {fileID: 4000010768823692} + m_BlendShapeWeights: [] + m_RootBone: {fileID: 4000010768823692} + m_AABB: + m_Center: {x: 0.00004067365, y: 0.000027449336, z: 0.0012303336} + m_Extent: {x: 0.0015236207, y: 0.0021297478, z: 0.000019410509} + m_DirtyAABB: 0 diff --git a/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab.meta b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab.meta new file mode 100644 index 0000000..3f7a713 --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Prefabs/RemoteAvatar.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90bf33f968e6bb44ea0208fc82c90a44 +timeCreated: 1468001728 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Textures.meta b/Assets/Oculus/Avatar/Content/Textures.meta new file mode 100644 index 0000000..de6bf6a --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bdcbd118b7677cd4095ea9260191f2f6 +folderAsset: yes +timeCreated: 1536104808 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..65ae94c059ef1e2ab29ec6d88bed6b71025d977d GIT binary patch literal 7159 zcmeHJ&2QX96n8=eCA6Xv98d+);7EK(%-Z9xjjb*v*$vG~Y>3j88hYw@X1r@5q zyU7KFH~Zx|(iihJgWrv%@&2V;pCza|tbxu{2EbP{yc`NPT&bH&n26>Oz#1V&iN^ z6A-42X`+#uUbr*?a#rG!gLE)a&Y30#A`)?)0hW~5q%U)s_2ns|%g^^H0BSp(Qpbt5 zL{X_C%QuJM#*B~?(OLH}5!$ZEO-9Wodg)pi zb2-XhUVw`h%|$~k&I}U+6VfG?XB(bLu1`@N$;06A7|Q69x~E&7Zp={-CYnLV(JoxnQyzgWx92jmHS(g9TX>C?4Jfd zmkeawH7^K=&v@Wq-4+y!y2UUxfHFrI%(STK8oEEX=FK#O{G)?KsfAS>By#2u?ym`K z(z=NaVR1|YVdJ{%Q^PgtKDYcL$|r&2ZG{;e>ESGIu8Oy3vq6X^vEoryXf9PHq-9$~kr?k!uf3}-RceRE5)M&nDJiFpcV_KX?44zI z6FWIYJs@%8jLNTnfGY zrIH$BhO4NJEy#4S+1n-qAAlKjHdLzCuV7N6E;mj`G&IV<066$n7hcqd2ZfnkL(>^O$-ez%Wyagkr&H5d>9iTM_T8d-IVI*7-@@?~VY1L*Vj&=`OSskVzOOawx*pE z{_xt@t<;Yaq}DF;*P`8Q< z!^6n+oCwv!nt?o8x4WK2tg16(`*$|3Z&|+M^2PAa*-Rb@`#9-QzE$hmzaPcpDPHDy zXcP}D>HlgJy4aefX!XN-F7F-K#<@hwOZ;pQ-PxhUKg^Cbns7iFKeV1%eBm2KS^Bos zT!3#T+qJJVh7Y-w6U4IA3iPpZeY{OhQi6AUo# znm?1Rzf)-1+3%}gotM-0r@}&+KJwF^t#ub8%&VqtEttn9ubKZ-Vnvq6{RWq+pti(t=C_eP)-a zakXsdU5qy#gjG&4}stU{UrIjeEmZa$hh=gbfzk%+V`6c*Lk zY$!`v4COJV>(>uBP}25#wT~mYBuVX}DA&d+jD;XaqKp1sCX6jn$laWYwXvdku8Jlj z?Of1O=6xwg%S3H1DT8(!ym~cGxttWQ9e|4tEk&SLIfDp8g!;%P4ki|QcaG{w9!GnJ zP`HmgV%o&SOOz@TPD}bQ9A_kwc|uiuaY6^e$kKrhYSlMUbH{~@$_dRyYoKKNn|d>jWi8XO z$Pe(&Xin9cBl059qg*C{X4xoavVMCe@ggUAX{ohCNXca%_cqobo zTKd0=!l;hsdC?k&>v{I>z%i~$WVWR4hH6+}N@`MHYa&$w1QcW&SO;HNt`KYQi!OXZh?55Ky1`o#0v$B(~{75M)tz<;>*^6is%8-E1X QtAB>wwT;fLi|>8(C*gGi7XSbN literal 0 HcmV?d00001 diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png.meta b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png.meta new file mode 100644 index 0000000..69a14cd --- /dev/null +++ b/Assets/Oculus/Avatar/Content/Textures/fallback_diffuse_roughness_256.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 7d8da3d06466cc04da8c020819170a59 +timeCreated: 1534371261 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif b/Assets/Oculus/Avatar/Content/Textures/fallback_normal_1024.tif new file mode 100644 index 0000000000000000000000000000000000000000..4730a9a2d61707546a03803c1453eaff7b705ae7 GIT binary patch literal 805996 zcmeFZbyQSc`!{~*p&JpE7#fD|l!l>8lv0?Wa~MKIML?vxOQpL@N~B8~6%<8ES|kiW z{SBzx_x(Kg_q$x{ec$!_$31J#x%Ra`SM1M@a~80HLU{lX006YWHvkvF!bm3t3+IQ7 z3jkPuld&-}4hBGk0pk4B<6-LfKV@u;Oo@dHkYer>7!1`<{jp!#pYpLi-B0-vMn3Zs zuYv(FVBwv_^})#Je#-tB`TXDfaQ&2zV+mnl17OTO1cMRA$TS$a7$eL54by^+1*A&= zKpRF64aNexNC3c03IOcy{phcPHb#Ldppy@y8UTnhV*!mU*Z=~81Ncef0v&32K)oS8 zFr-NUT-5^sR~-le=`bPy?L!POtC9d`W&q$078X#7p@p6d3s5D&0``cp0J_fr5Q~cm zdkzbD#e@Y&ZvjB*5CAX|0D%7y5kSHD*Ig0e3PUpM+qt4$J?vcFn3a{8g$0Ggn7J<7 zyC7V>J-7i(RYF=&NLomWSx7`$R6<%z5|F*<<7N$aM538tNLzasIq>`D$6#iAgdF&? zn2w;1n=;bQUc(oKH1gFohWk3gr4ZnY@3- zN(&1z|14m6B8()9LfA+fs;K=8hpEYd?a*j9X#oLmZ*P8Y5q?*ct$>h}l$3y=uz;{I z9|pnaaoq)N?ZfBd!TQ6=FFz_s4>-!+4Q=o0!hG!48s_SWmIH&21D%$i{c?6Y4dmj% zf6_;OxT~{(kF}eC5Wk?nzZoImr#5b$D5sOu5O4vc6Ve&!g7(1J3H_^`+pn=ZHUCG* z)8_v%FlJ12bpGA=SH8~9{~Fo@t?GrL;3uX32>Z*@!}z)zQos=D;p&NkBUQaHUHOYw z3~jQQ=+eq4q%|6;g89lH&o<0x@(D>9AI~-+X)$p=K}l&rL0N(SK>o%1i4PrDguTu6 zfAeuXWB=~sZ^-}jftiB{Yqa%mdHFl`Z+;MPX&YCRvo%`Y-r3p~DS)=Ov5^({OZzwI z>Ci|kyE?g|FnJ;6MPvp3P5n2kli`wvx_F?iUEoNliabWaZ*Px~hKWf@AZ)}Cd?FHX zDLx4aQ7Jx{jTC~S0iL z1|bhWnb8;){-OOVty9aNX7>L*oWDoG5C4BN|DR)c+aX>4xApbI)d}i)&a${Z^1Ww-? z{%d-iuA={&!hd%0|EBL#Uw?v}Qt>;&AG&^rrBlowx=yM19pMjMzr)fg<_}$`RQ!(c zhpyjY=@j#au2U+0NBBe6@33@=`9s$!6~80=q3d^8I>r2<>y(P$5&qEiJ1m`I{?K(w z#qS7z==vR&PBDMzI;G-wggvvc>#r&b`l#1UG{?PS1 zES+Nh&~-}1?+AbB`W==|F@NYfrQ&ylKXm;LOQ)DWbe&T1JHj8jeut$~%pbZ=srVh? z4_&{*(kbQ-U8hw1j_`-B-(l$#^M|feDt<@!U+E(H>l_}^1#|e$8*|DIkW_-|;If|_ zEu=WP{_S$oCViqU4sDx}cFr z7fmGa`X`+B>1` zT~1tL+6hn4$~vZ6KiH5tc7e@@x%|~*s=xJE@8ndU2d4eZF;dwL?eeP=m`=h_rxin6 z51rGBGRj5yuZj!$uZlLz$>X#|*B0${T2Xa&QaP<)c>K$?65P@DClNnb0u0ralrh;H zpIZeC5zNd8S5KIN>)dhmq^P4@{!6Fi^xrro6vFtD3tElU(CK(=Pm7Whg8AR{h8|An z6TQBVlY-$XoX86a$DEx2iW*ne&Ix~NyVR$<6 zPU`p`PWEu5hl!K+@zTNiM;yG9HjJ7I^CdW`Kvn)0i@+A;>go0m6~61qiOOHQqN>rc z_aDb2F+NDGJ<+b}NEajubI=xnQ2@us8h?U`et?fP$1PB2TV~Ad|8@UyFbAFg@n|?9 z|DPHi58Hn}KJcxb(8kub|3Hz!kxov=NFOxRL&I1{`_~2q`lbE{n9$A@<*VpqZ~N={ zLH?uj8o$(-o)aLDHrAde8z!L_5{3R3xXCZ|KjFkM+mqwGe# z%rzm})eZCD^+5i8Mm$UjyV z<%x{-W9Pv={`UnxCiKakgL{kzaDOd{2bc=xi!}#eK`SSJOO@NvQX?+I*NJbVHWArUcVv;Su!7J!ZOtC0f0!o|YD#>K`Xzz5;s zkceO!DRFRFsD$to4Xmlb?stUoX<{E%DY3HA8a{!Eh@t|L*g)yaqT!w zLv;KPYji(bT(b6w8@9NFICMYv_p$0sVXXq|W8;KOwtjAOoHj-fK8|z@fsPx-V_b0y zW3cFcPN?4ZaZG^cx*gRRUw>u97KcvAJ+Z{Nz_`MscVaM(F_`#i03F94&B^ zCUZkfh&;~Y{Ggal9rx}yzx&@Oe;DM(|4ixF-wEUxi|O}qN`Eu@KJ}~1$4ZP#OyU^f zINDEEFx@!L6`fFx38eS^*$?~)r$54FUB%2>O9$Q1%3cgRD>?kZJOT`j%#q1uK zmw!MJKww_kVVKu-X3Pt`9Y#iDz8)tM<`o0;O8vhhm;q(XhZztC1OXx7#|w);lRo)2 zE*&XB5TL*e&`^HIy$djntRNW9;0AQG3u$!mi-2M@5Qb80NjiA9)!4S(n5iyw>voX|a*G z5Z#ABnabv0=5~G3@%{yU?w#+p`G!lb?_R|P0k`iwsCcSEl|yw;l}pIi+2(@q#OmDG zy}kK)U`(A=W@Vqj(mU}I{2*j#-Ml?#$c~cay+jsH&X^BX_<0w0ydq#}q!mpyNLTe` z@e)78L7+VBqKARA$_?bJV4G4#yX7X~U1on)zYG~ov(f-w1qO%LkGXh!Kjo}3Tp-{n z3{;uqeQHItP*WVhUnx>7e0~a2^fLcl=>rBa0`@@-+-b>3Wf=+?*W#h*oJzDOez9wf zV2m7;SUgsx|Au^ODW9-rtMK4rG)E;L&J%8daLBEA%{V1u;=CQr&mk4UL$&pFq1a|| zno-4+EcxSXq2g@z#aV#`MnPWPz5KrUZBIti! zUG*WQVZUiEZSfuP%W*Lygh^8W9Td64Cu+X zXJBz9{sa!KE5I#_NROL_&X_3m((D9ql;e(YA>^AT4e||2%G8TYMvp?% z608R5$<8i`8kq!w*m!P!kzaNjO}R73>tNkd+fYLqzagT-7IXWd_g)N@*&`8RTB|(p zxCTtRlPgB$i9*3VJW>j&>tf)RfXrP?Dt@lnd*}Rv?xs(ZHSJR2p(x6HKi4x*C(DqG z=gCIH%Q{MIS1a&VYQ`ztpD!?9+h79(#@pV|v$nG0XPs5qA?X-(B)!-*qw;{tt(&FG zfO!a!97_vWUiqMpAQ*kGDDiFjKDU5B@@*1Zy@hRjmF-QUD^1F{J_f8EIcEJUF(S3g zZCY5D;>rlW(JA|n#c63kf)s@`=9QX4L_P*PBg(s!g+y~V6a+)7VcpkTCEnq_%`l2W z>6#8{56W_8;xal@c#R%Whr6*Y$A0OJH+fC;p~|Mv`dmh!+j`O+Dv6<`XOz#$+%pW5 z+@tmdSqQ+3!`bME!`2La-s0X<9-*=k?#zA9H9kFS3iRYFCePg6SkLZ1awQwq((83u z9o1@950QIQt#ai0DyLhS8H=>0vu$VI7o63X5TZV5xJ__4$SIO;JQ%eAGN zvFHb7*EG^y%?9b=$4emBFFASox?a>Ui=#XIgjk#Ad4`*m@Gv&e1pbjj!^HS~apy)b zsxhY9E~H|8gIuUm^8%F*Ps6k3ME`9EFAmPRok?hWd9^&{0~63_|G7PA&{xg)ZlP=A ze)Up`U5ytz0<@ZG1hF^VGPxY80-LTs*EL-X{@Nkz5TjJTPVJnvo$#fvu*x}-bo zfum`|J`CRXNwNun&{A{ zl~*MB46H7w2Z;L^tjTmAXx|Hw=F%{5?X>qrAGj zt^M-TYagBOI6uRZUC*6?IkB?a8sHO`TfmLr8_`vx*Uyj5_Yr{GfkA*s4 ztR`$I{6@7{_j+0#zpq4uo3-<-##qB;BC^OTErrz#8bs2UoBaMTyiz(?VZ1_|W7; zg{E)4cm?nAd2?am=w57}*dd#EDw9Pvjf%LMBZwlTAt9vMODy%0lU%&*#d9CcN7F5z zj4D4?Oqc=<6{}6fPGl^Sg?Hxmn!mDZ5LNTYJUcvq9hH@EtKr;?I{M4T7b|qu>qV(Y zqXqky?ZV79bGik+&E!+JmUtP8+MFiNcx6@2N=7m|D;G9}t{R6W7L7&fsztl&PRR#H zGf}3nPFRbrYaW!8xj>arA8^h;kBAV|9M&oeh%XCzEvSd<_EvMJBq*psNn@TMSwwA*OF6-L71Cz9> z83%6pSqY}B@L3d>gcCb|yslLJ7<{y91CCqfS)JEiW2;=VS6C}jQ-XBdB?(#&HWcK4 zLVyk7jOx>k5Dd0=>Vzq6x+w9gqIb6D-tq5r=n$-!OdyF+ z0|yh8O{%<+>amLYOQg(6k!;T>7WXw#Hqm|8d2R)6$|~wjjt@i_Y-+0ZmKWvP*hjBS zl`K)JwxfBrzehB)k`3tdRAG~PoQ0nS`nxP*+g)P1{9@?(4eFUU01e7a5+1f`K^`_i z{&lUb>22{1zFf}XBX#61&jQ&?Zr#caN<3aVsSTI45fQw*l=u_~4Sl=IJpu5ZY7>J^ z0?qn+i+Kct=^#+XlEbz!n+Iq(=nluNIRi3X!AwxVTu-uvPI?EQupLC-YZq&9>vjv<)uyDY+?$n zX^L{610g~V{t!9-NbIOsDttye{&cG17jSI+_$txvWqEZ%DD`$spOA_GRX&@$<_xz@ zM=2-GW_c2cXcPDo9ica!4z7_q6J5{kGq^fu3?0y9+jjFkuby5B?HS#sjH|6q*bc40 z)g2cWpyaM9QK%(V*rQbB9-bK$_6(b%%-+u2+1Z7i<$}d31;6LhQ@KyB>53%3AaLn| z1NMGtyW0qCxR^>xX!&E8JAW~=X8=0e^`_v5Bahtr&yK@rLpvahYjStXl}MeBJZseb znHPDX+}$~^yz^=mwG;0fB{c00w}+G>AxF-lN5g?^&I(@<+LN~Vs*yVEFah@B2j~%3 zN%C!{_j}v@zK{hWwupExJpJcHU5p@KDevpRvPDC}%M@AJ!c7~JN7p}{65nFTKu7G&; zxzq@Y$WusoNvfzu$D;m=8~U@L-Ak;Onwmwfc)IqJlflV#-C81b#JfBth@ZW4$G<^w zQKDq-TW|aOq6~1hv~_&sx%gPBP+_*W0Qnxk+g;2xU(0SJ|1fsltf=iKs+MCCO9reZ z<0+m5yUk1egm*;$b!{PFx0uZTf>$IU2RB?B!N8Oyv^jR1(Ju^=#Klzl9 zyZNG_lZ1PeE=T_M9`eWK*F*4VMm-1jNu=s~ucu=lqiKC*CY@D@#6L%De|`#uqHo$1 ztBkzQ7}eC>M@O=}FO4aq$=l(EjzbO$ZffdqYsSgQjLT1;s~-z%EZ06_+k|RU85bpK zPpLS3F&=g=yT*YC7=hj9=#$b}7}Bry#xY)VL~mu}`2eDjtl}lE&AZ&9-(J+=alaST z4#7K5%}`+?X5@L+06L3Hj4L?Bam$bxGHSp+CHM-m;tIZQlucJH2p8N}H4c`R?ot~4 z0OC-uxun0BlxVikKl*z7GxOWe5)?uvLG!G;xHE-hk17+Qr*2>;vx3w^%iKthj8J2VRe#B`exh>A(y@J6|C7hA zgSxJ}Wjy*_-TVqcGNrgWz2oLJ-Vc@@QOJq-YxCL^BI&pY8HaWfZl?{I1ywmKA~k-m zusK{8(R0=d-Y^LVHaf01yG@E+!J47AavX>7I7y{(*=u15x!vWf>}bA(U@rK)!P35m zv;Mcsc{T+%tta-)JAizFI%dPEu-etvs3uCe$j%w=VblQ55u zx|93zMyS1j5lOA zY~4W>t{CTCAJ_|cp3Nt*_}EkAoGD}KAYf=^2eqNphGtO> z)nI?pcp~bXaJ$7Jl5U9w`$zOr&)1A+gbS`a%sIZlT}UpJf_cTvj@Qr&E1DKY`lgoL z6#jfBbd(-C0sD}`yby92^_go?5)$j79kFW=h?1}X&01Vh7ANi`-ydCmVIaOf?l1QG z)tUIK29!Dsj+K(OOcUY3Q(u@SePAAmSRHB<;<%aDlOz{30hna?x*E$!jD0GRsPEkl8kiGKP@x})X25gdsdV!D*3S#2z(m9t~M1QDXtXNoE>a7pZlfonWwf( z9a*CPzTGdAc4%x=(8NqLd+h9ZlU zy@q5$zLg{mErcfs3J0!w$K`lhg(cm~_qiq$E^R2Obz`PDCOXR(X@J^NkZCv<6Krg= z>bYF!#XUUBfGZF~CFd=`X>Z3`0fFnZx-8O=hNhMZ?{_)gX}LrV z5S=EqH1(^*GiJ)!Xb>U+j}_XLlGD)6s(DFotNgXf$1mks5ISv{?g7Jll05ldh`cUW zKkzfzHDl6U!{@6ump5x+_loX5Dti6}*_3nNlvL;iwJ<&5m96s)J{0p7&uu(JNQmK& zqR)Yh?R8j(C9qi{UMA-Yxp!F#x~ZDi?Xmbqtd5iEvJ6s1KVnS&nxePwq@F|)BlAva zy;CVk3o?D9#YRnRzI0%g_uQ3N?tDY?;Iw`)1^FR|-{O&Ej-M;6tW~=#jbq4IZt7{e z8rw5AHW}R{HG}{n{IXgAw}Ut|ZccY;L$cmHD|1Pc1H_Hc9G9De$NF4bQ}VGVOUnVi zBFQdd%fd`-l`q`BSZEu~;aSkh(j-RN^v!bVoAokpWV6`am~AOq^MqX~w?#8Mvn_>X z0at5YOZGeq^LM4QqJ~mFR~Is?*w+ONK9>TbvH-fo;lofvpC?nMP)eZbx+DE8m>rjm+4F* zYkr`K0;JZWF-@cZY=5+86_mwd@0}QM=k?{0Zl!MlRXY75zSc+Sy6IV_7P%QFeAwrU z0}?(xXgoKFO7u>-z&&%;2V0%TuRm5IT)M5c(euLn*8NXqbx$|G42$t@%E-k_Z7tnv zNB4n>o-&8q#kSkeP8Vd&Mi`B$k?VxjiQyv`W;B%W4!iuMn;GdsE{5><#tqFIF9ftY z&SVrY3JGbwG)l|oc!Ae!#9AUrN-TG6Fz7Wi0HPtoJql2K3lJP}oW%h;VdS4JNbtyk zu6fFoNf)ULcP?7HUon=&BF9p=KOU+!Cr2tgaFG_TbWX<#{4|>|}srqAz2B z78e+_e&4VH5VB?KGRL{$`eVren${wpFX$6;-WqSeWWPb?s!*Z7LhuFLTGe%jGwaR%eT;Tk2`aH&flbaDRdtRpU#-Fk#dS$ zaHD*{K_{a*Y+_@`xnVYn9Y1YzMzg2M05|kmo{3}0ff2IIOyE<|ez8YfQvW*nfra69 zy3}dmPoan3@*Gk>D8w|1J$ENsS`-otZ@H}qnz`=bHj`YyjWcpXo{1@WWOe`W=69z1 z&)(Y#kmB%@+U8v^P2^ms$#{tHrAQ^Vi%`43KI4tVpEI1d(Za8bS zM^~?WFpS~V80xFg-q>RmJ(LdSnL^1&%apIl;O1=2kd1ZQ>9{;#NwlQPk@Lc4e$6Wm z?x&SC2y|L0-?%BAqSgD=6;d5q2Yl=?s>CDZD(tFVtLBS9G#5anK4X47l3hB(WKZ(C zq|_d4&hun7AmH8W2JPj9imC*g(E9jrUN!@$BWl01G+`z!cUXzB;`w^*1;p@_lUb12 zQ~-6<^FpLbuz8;jDzJqM869m38rBYeAv!Mmp%~()r+?8ftoYH3)GTgpNbF0-wlaXh zYjaXtj$~#eisynT&*qx$+S7=ZR}XZF%x>*AmKz_{4t~x{w0Y+grE06MVfu-vwR+;A z9oG=C0HNkU<~eJYTr8{OFtq%#nF0{lv%>f4^e;~&59K$FQ@BGkq@ZdPkI%RIraCCZt6{`i@eX!hk- zOo4BGZgGY$_o*WE@P=_KQd9kta10`4830<6=&68+ptmucFU9?^`o zl~$aY$ksum*Q=6Sv}$Afna+GsQC`#ZE-E70>|=d|aN3SCNYwSUJp7Oy?^|){;K>z7 zT6k$bbe@z+4WpS{syawfU!B4-2sNQs)cBT6O;UW#gu8K)kXLW%yj&t5{v9dl>{%yD z3h@XSHWhWaC{b}TBn;Verl``7O)<9ggLahIbOmkShG{Mo#-G)F(=1Y~zGL5(bdF$4r6Gqlj@)g?Yl|Ss~7RTU`yxqq4E& z*~!*MY?3X>EVNSW^H8H8$2hy$?|R$7>WZ1b&8_&fpw({s7m#zRx%_hsamb!6ZK z%$ZPeNCS;$MOjALW04_!bdmy*5&SN*ViP{MVQaM zZ4)G%aR&(HB8G2Pw?rcGU(FA?r%S~*8^3x3K8#5&$06WP*sn02DzJ?0zh%jmN1dn| zkEO|7oJpS2m$zb>ckQ)W#du{T!N>iS{xN-~U@~<*Qd#Ku_F=9a$)_5)@DtbA5wK`l z0%h#Sv4PT<(2@%(3+aNX9F`AxxGowd^huhq+)K=&j33E^4`Loo>`8<1i zFDsNAbunbzh@taiG@jEar)Kk65tg%gYz}1&wvMTvl6GIGKfmF6^FvF*OztyxM_$G1 z@(%dXwu%I46Q^mGVY|@XsVLQwb?EJ`=+3~ii{R3we#@dH3QHdijrUxg& z?lgdKIUPRVcAsxiOfHfUr(AnVyCr}g;OPy$>=}I(lvxJ83vcOh*<*~sxec1#5NT+9 z`o?=rkMK=OqEIB2oPcCS10g6f(PJpa*RT?vgfkzDsMn$kpW?|(Q(P+^VU@PTXWVaB zQNY%Tb=Hky>%K$AtVGaYe$~>=&*SKs6)qP{$4kmO zC!Qv@)nVa;du#}rn>0m9pg=(hD0X6+0VsRBu&IK0E)EP%4!5T!ks8l4MK;ysKUigvHc}*9 zjiaUrZ9VV}H+TVQA#FA%c|dHR(O2CzbLk9DLu7niRC-B5`Wpt3FL7GXKbwb%};a!AKRUUaOHji5bUam>qyI5?8A_9Bl= z$<|rqV#1_TvC|y(izl#Kh2tcK^i+=YRY?p~&l@WEl%-1HRM)JQr#nY}=vAOTpZy|} z#^>(Yg~n!|J7G1!O>rSHih?16I8xY@GG?@oShF5|-pRo>B@t}T^KBLir&TR7RjA^q zvMPx)O;_`!jbP0Zo1S@+5=*dfiECV)wEvb6gW1ECItHO>(rIofE&9eiF*+)m%)l3! zQmd7wIGn-;gj6gsezG8=rZQn|k+|Kn=7qC*6yRM&zF`k2-KWZB7%rykUs-r zUs1#XoePpXYbhJ=qae!*3J20<(2NTi)GQH@u~3e4b@akmy&=U>Qd?wKLZ1-N$%mQb z<5Xb&vgeF;M8;SsbCIgdT%~lV7<>3ELqKZDMiF)D(Z$??@M2ua*nn72@{^DRnuiW5 zPdH>*b){tRLs{ws9br)#fzn3qYKVK)_EY6WHeIrpa)X%pQ{`m35@?zC+l9Z2R_@Z8 zIh0=c#LZyOtqm%Lai5L%XeGX>eB@m!0#BR{ZFOf>-vcuX*_QYSi! zaDLwFAyMvyD`ledW6}fZ7gGvJW92&+^NC6pWY*=nJJ>?FMyPYowoeOIk(7h_y4yRM zMdv-_QO2rnC1GZ%a$h1D!4sgsE1+Fd0a;-VV-c;RJIa&Y5*p#8*EQK;!4TQ1nxH7T z>lOFoOC{q5o6Ok+t5?sAo#B@Zyl9ABPeK5tq|TI%R$s4Z!%in*z*c;zmYxeu>hgu| zFoO@oA_l!H)&W(%a|W&F4W3>wc=4?^6w$C~oNU+My`~+il?nhi3D+r!A!UTbMl#IH z#PGBzh0T=z6rVQd|~GUuXN6TZ;LOs2cV^rpiy z{0mZIwHpuLO>j#`Fz|+Dr)Ra#ruD@%&xgcVtdUfcQV6z@u1fNWu{UV*5gb~IY7Ax$ zbV#eTDBi_y*1`_G(lI=tRN!C2?y>X0m{rqMdQvz&9=c!aQ3;VO5v97PrN}ev6qN}H zJ{Nc`Y_E(6=*YumWmr|uSWF~O4Z!?{xxWe<>VE)@`2v0LRQ5q+;n6b^)MwI~r~Q*g zT}^EU{y_s&&MmPfMdv2-2Oufuii#3qHMrt0eeSroBvgjW8_(Q4sEDIZd0#IO=g|yR z-#k^RP*yL)DwE%ZRe9HyNJ|Dt z!S6#=z9g+ZlqB(`uW4g2(^g@59J{yzrDo>3dF6aDL6bH7u~E`lR!S+Baq2axv~_L{ z?Xgs@h^KW}2NWIW5Wm+-jGHNAOu0Wmt*CdrN!S-CX0Q4-O77P9+o!Y!_8 z6$KXVHa>_jA+C$e2dsQ3Qeb{1{O zgXY&I*)HdBF2x#}iN9qnHeQD`k;$#m;3g8j^>`)g6_)CYw*{R=wk&Md1!3lv z)d5V(M|?U1Qs%C@*d}KN-BZkKK$VYDHk4n)7qqA`N<+lv5OSmJZ{GrUL4w$i06%%l zs@O5ri%XO*NFH&GX37*ky5C+(pDMr`;b^q$6*3F&s!is`QUzq)gyKz4NAm=$VrvQB^=2^7x>4d&3a6b54RZHm<_cCvl>at%?M*2ZihTNO@risQ@9{uffwp25ciBV8t zyHRJ7Xl5*j$ji5FEv=5yypytTvtCur^}fcdbW4$C*_nof%!=aDkH0s}qYK;< zKAR)CTV}Y}WU;n>zcQOrmd^Nm)OedMluGtmz{JSc6v8W+_lAjWA7x2B7?6K5y(mRP zlIx<=$^cT?tuXH*HNmSo43kNu?|S%FX?yS0xTxeanO6r+6NlpvY3|`GrB`dJHO#F^ zx0s=dIHEinQR&nM4sDM~LJGNg5v8Wg;+Yqm+L+fv6F*}SUAfgU;WDX2-MlQYFc784 zPoHLKV|91E;aj!Y-EGHPjgC=|98>47QEI+{*z;r|%gVMj=d9c%!7I#Tp zzTgUO(Bi8nd@GqE_UC%{vSwyKWtArk%A4hCnp28|(S8km{2|Ox>kYr;vnZs3IQB)w zevy9VfCPgxy^r|L9>~e7(($Z+s-HJo{m>Z6lJhwAz3n6UJVo#er^cd$^IamuDt}J!U-wk=)s~CoAzME0>SEWZ1tGSF>WzbAHJtN;IOL@T);SwCz?p1=pl%+K-vgjzN3px_GiqtI^TSyEjTX za9q-^c8O5OCRtEbQ&sEuI{6HU#c7D;WZR4oD*(}HNoGPEBWJ%YI>4@xb3JcjIGg&h zmWObJG+W2cy3eDt)uwL4vczgm7<4#L#vC7$fF4HfuCvS4u$xF+k)q+h<^>?`sLMGCg!i zf=Is^kn&5{xL1bijK0NmzB=H=c-jSZ-;aD>!*n8GGfhdabe-gM5TSyM%h~mYsOk&v z6h};-$GqIH+}S?x(H^0Z6cT%$<~z+D_$td*E*@8^|FI~-Wgk1P*bC<@t5S+pIx$c| zId&;iNYm9g;=R@3d$+IXMMCl($^PQHmb!eCahRj?hU1ir<3(GOLp}s41M6PDCBc2h zxtQ^{d1MI)YQ_&m|8I@zX&9{rRrdY8H?+AG#Li zuaFn4`1DgW8Eqt5|c zH9~PLyIrKhc}nSw#GbouPeT9-Y#>0+@4 zuua3Dj34%dY0U1t3h+Iwdmd$PL8XO#R|`(j4?!_;hAYAqKnVl9?8$02)S-TDJ~($C zBewgy$hZ|!6`AU|N+q#mQ>Hk_Lisc$$Wt}m8H38Mw({TBUz~%Ia9p-cHY*r6XGei> ztFJj$nor?>4UFx4^Qn}PlQz5u?*8H^Se-q70EwFR>#-F}AGY{# zE$H16<#iJ&L|cIx)>VM6EF#Liz8J9G-3-#bXZF%*Szn5tNa^4f0Mrr95*aAm*@Zpx z6^$!ly=_`tHM6zcIhOTi<8bYbN72<=(52_5&Sc7Fw?2QWmDcXL{yK0^5X9r zxKYBzY7B_2gKt%~_MuQ!l{(?o0g|Dj_~C5a3uNI+tKmMMrQJl@ic3m)lwNeW@VMmU zlS7Dd%PP!mN_qR|jf+YQ(#ZC6T+c;R$nYrT2b5`!VmChINl(~O)vs1s=W&SeEzAAz ziX)bbbAGY4E^?7)To486imVhg{kE>HK=iqneJH}GQ<#FJqenpfi0+A?ld?-!D+OXN zL`Z#OG7yM&@a7%-AaaMYxKD$qu}K5=;(j|%&LO;0FW1jxoRcI3W%=(EN=M1V|Ai6_@LisGQrHx3uq1kRuOw=Y5UpeVo z!n9fGRVBxlzqO25*yJNV#7Ujw8c)-4G;&$Eez{q5PtiA*p6}V65<~lsLH%bZFXb@1 zY2$>kED~bf6&RSOFKGOva$Cor%hR$*)b=BO%ZApDz0gB0Gg7?Qlfp*kio=;XG(~5K zY%MrTinBJZ?ye6eJRZ&E!|#w{k4@#8+N`5s4JD#KSRw1^*^)3@TDad|utrs*ny~Oa zknK_Y%cM79ud~87xn=K_4C{K(ycUGy`E@$g2)MucWclX$>rb=a@63I^$`sO8J9NWv z>fz27q3e#Tg>(%o?cNh6m1iB7hqw4M;Apg^A^r^(X4UOS5_~}y)244V-O=t1b-9?@ z_1Lmw)67!ECBDbLfVJQ@8P?|qhQW<=VavDFHdd24d@e^&pR5i z^ktaW%S%rI19uhkO0C33d32SYTX*SNOLyOuepXvi?wE0wN&1%& zA|O#{Wxo*oe8#mL6M_D5fs0^-a!#1v_0Wh1jlsD7#A`tU56-u#d-Vk*n5tiSS9q7o zjY3nmWZRC^`B1ptfc2Ro9!H3~V>&{^mv)2iVpmE~GB@2LgAb1dIjZT-EJp+|I@I1M zSha=(rCp`~Q+S45Pe{-p#Ru)MY7k$L&$`D>GBZ;xT_CR2@ClD_X@@hYSjSCZ zkXnQ~OTKcj)p#z#&vq?~oZou{k~nE`4Ywok6=4{Hr-*ngG?r;a%`%{7(2 z<=GWu2Z14tK6PryjCSo-8oAQB3rV%tnGe6)b=|$G!r@A8W376>vWz78(%MJT@Gw=u z)Gh_1HZ?9YyeuKzOOyn4QWtQ*T$GGwDTKD6?L2dQ+C605tUEBw-?K-KZ7Mesel}z0 zU1yqL4vl%I`9T}XBP>c0*wXVt*+AqlX%y;5otX6@#lAI{)IX@PXQdUop$Kp`#`trz z=O?ntCFylvN%9g72(#zlThG8cGe9zTnOf+|+E(^cl$Aj;+m_}#EHafK4KIs8kU-!U z_O_y-eakzcUeHUSNhbW8Ysk!+XSYVp&Z*jMvgg(0O{vHRQQL%wEN4}H=+}Qi3p|Z| zY`x-~(A|NL1#XN7J=sr!sL z7e_9H3Y&0h8smFUF*L=hQBxX- z+_*=V`-mj6mP5stma^dnyDFi1Ou{~W^gD-j17<1{*+zMJ<0f(IP@RwV2dOL;4*aBl`{#zraO5 z{joD{EcyYy7IU(M}l;%zuWSwsA$}L%MQ|9saW5C2XdmUFtGv^9vJ=^d+KY zeKo;hH#kWGjS2S+8+^F~Xu&{P77T2&<=b7oi<9el=@G23n z>!eN1r^F^4TwoUllr=35tjr{QXV&B=+Bj+9Ku2r{EVAv4+vh`&@_zMIX0+_eS)Q2*4r|A2+ty0973TuNPL>mUcI(X+M7wxN`!I zBGzt+Xop#qH5KKA^=q{4iO})jhiEa;r7Kw1NrQg0M}D1CI>rn^*7i! z#d4kBxb88lu1P=9*Ozn5`rbRw6ll!eTlo%bD5gLnaAyl#psOBK9pH2h=i$K%oa{zt z&8ZGH%W|~p92qS#bX)R-ujapnJ#n08?#N~X(uaTCbH`%y^7`HKtTA|>(CoK@E5>yFTgdDZ60}t~b zxUSHIE%B#h8$OMGN5TwXk>xPNk2{5nIvJJ&a-Z;&$47=)Y{xZjeiMB!&$VdwnIMPU_K1U1(~7@%VdJ%` zO3Y1%;7npWSrwXn?6e|6&}|S5C=-_MymAL*EXQM!%i8lPAZzpC5fhsohdyHv_`D)B z{u6KjS1H3B`4M7>XaUk#y~JP*Ct2o%v+A)57=99nI}{lIE{G#QP>@Vu|BhsUS#w3x zyjz@KIb>#NjV~(1;;uTU0caPzm*gP7RG6zd|Ama7bnOccxBz2%QOr zs(KL$y9l_@IqW-xIP#G=tb(vZWjB8zVbHA@Kem`~RdVrYG8HgYKVg*uAhJu+XATLD z6zPIo58P-D19vN-Z2Pa;^n&BuM~{j|W4OY&G2`3HHQtsOQIlbPU`oVCAK~u z*sR$9e*if^#=k;?r;bWuC_2UG%&T=io#) zDo_ADlYm)~!9S^+1nmD?EpnJm^I4DF`x9!L#b;qG6d&qVq$Nc>$F}I=^6-^Zc|%IF zlLKj1muZ%pY1W>2rWnge`v+v`fl&5HObm{7xJamcnDt7cMbiJw8eWEMxux(&lp1jC z07c^1q@#f3C!~=r2zmr<9im{x=%kZY0BBO^l8dE>r@AY7lG9_h@C= zj>8Uf%5ese+d?@g*E3zQe+*W|L3A4&3v(OEj8Id6;8LMBXSPG6+Nsa@cIgnHHUu(s zF$`lpLvCt!6h5;u?rQe;VYEvKR8}z5RCU7rL#M5M5;Fo06oJillC>HvmBv@5h}#D5vKHXC(3D8Pg4ouJYt?~4Ao_*`(;N0>vLwc z@ds=L=u?+*AvlgmDRlhR)IZDw=QrfYAp8%;SU$}GLMcMKRKIhhVB$(Gdm|L7*QJyW zG%uvvR@ENtwPi<>Uered)pwYr2(G%3k}B8@7bI@jZ5-j2fq^%nIp;TJu`gBz>h5Te zsl}M9NQE(?OgqEDXq8w25Lbf)I>kj}VJ==-g5^^9FpLJy)OFr5v4G||MQRz#oY~Kv z8PjQq<7#5bhilqHa%Q1p&?U!9ovLiDEy%xOMN&)2j2G1Iqi*iS_a{bBx+d?L0+MM0 z-%jXlsOhqhnad;89YzsnSSo}gBF0JqMM&3YJO-VD>RIf zg>WCkQ~@~hUo2ULQVi9N;AizNA1e-dLhxx#>_qva6co6@pca zTvL9i_P~-_Ms-d$fAW-P$Pqip7}+943;RUS`bxm~F-PV!62Nd?kW#r0^u_0iml>vx8&Y8Q4I|n-G zNVzgcxQK)?4|GD+D{HtASmLnDoLlvsT=UOd_s^XAv_$YPtkyA>rtE2oR>`Qt zLMyULT5+%zLAxkCXC<1qgms_@e_A3wdbwilp$DAeQ)7EI=7fDyhEns&R7?Okyue$d zia&-xN5?agvq#YBmV$_A&4Sg<2kE$NB7#(cUEFI~#!mDD0JmxGDJ4U;322gch`J@p zU@R7`#Da92Yok)&Kqj%slWo}26>i0~fOk0V zNjXa!@X^u* zbt@1P7CeMLM>_=KLt@2QxqHLWunk-vq8-;eZytw`97nvXeY+NQ`w(UhB+!h>QYVg9JZ>hw4d=h&Q@e zJhTJRf|KJy&xd5m7%-2MMw_y2+b0D(Z@kXSSx5ebDt z;gHyLJ|Pi_MBVzyLWz{!1uvWWy9cS4QJBy%tXs!RZ%K&4Yi^s=E>s!AsF%A|(9QmIM+b$N`^ zxiqiXq;co%s-I4;)Fx9IU5=Yltz2&uDy^PVQjLJB^$0Bo4E&l%fHGO-?qvz8%_vhm zjq+swky&7m>(~b`HI+y*viKbCUxut=EtQEazFR4`Tqm_^eHyEIxYIQC{M6zFmAqg0 z8cj43vrpH^s8etjUb`ub03=(=Mc;RUwrTVHeePm^9_Pp8KuJ`VZ`o1IBa_qY9q6E$>uJYFJpNT45>MjW+MBk-PvV@&74WdHe#R~HxoTaOD zV9=_JE2!o@5b}D2tcddzrzer(*3`vL#BP5`6@Pg3CluGG^SX5n@Vy zFmFN%%CRXB3pt>YyjLIqYqIeMsxKNY;ipQ9*+J0Kvs$<$3Mc@6D{ESJ9Z(Xy5V1gQ zlxn=HYopw-pR}ZanMJOR0}sFK>n_3}u__+sqG{|Dgu`#r8vvn>V+~O+k5fc}G>f~~ zs?Do|IM`2ALbpbb1<_lMZI&^)w&eqz>rNaxgs@e1kBm3^sy{B>k6iwLkpE!mSFY^ zSe8xH>b(0jQYvl&t%BENkJ8RZ<@_33I@(+ZHz^qCwc>Rz2W!}J&0UxUdEY{s=Q2Mi7niEEOj73z4vABlQI|;=LZu zDmEwVjqE(dR~6rbyl#xGGaTaJdSHvZV=d@|D%iNa%yBnSMyXafNSMK2K`nhykcBT9 zAiGLzRYdQ_m>EKyD;oO5fT#h25A*W>h&newa{*ry_{}*MnahcW0MU`K3fhW14p+p) z#wC?9p`4lJcx5$i9CbXLkrN$uCghus;x+-`yXi*=dSaOr+d$*;;%W@$NwA`86@Vck zb*w33Is}ZL7^_J!$xMx`h06yIWFdP{c)l_=oSun5`aw-di7PoRO=-0^rxfO$Q@VLi zY4txMGc=jM@)iJ3%TkMg8MQ@awm{Am3`B%%^PYr?i(!mDNDj^MGVi)svE;x~YcCoz#dPs9fgBW_M@x#QAN5Kv!%0M^8474}lsY1^RXRve@?38O z#Y(u@%*LNA=Ui)Y38cUP0iyI=04aIx$JSKr;*>L^lj$~{`TSJt>3)Hv&VrIr@=5?9 z7&9~~BrwYI_7@cupAP7hoFuwP=)?hi?cFfU0)nEG{k?@0l^ibCD-7#Pxv_G|sU=6Z zP^Qd}Ba1SfzoIJt8p-@3Fa-cMhpa-AStgRPgp*yPfdMLlnW4(HTMxQN2<8h4ipWAR zPBvFZBy|9uD2=Eh*7V?MIn1RceoQ^`k3EarM|%qP%*bk>j+4DhRP&0Jo1#2Eh}-|1 z7uctq=?eLWc?LR@yC zL%w*rNoj;#o!6+SRQ7;OtJ3)==5H+(>afLa{yRsp28}~IjYp=AYkmYU>j&`xb(2lg zKQpwUrCOb&P{N~{@vX|MgH(P^JO49eVavE_4RTZkrCReMf1DGeg69NFIkQCut}Ldd zS|cxF1-VGBYBaW_=~7M$l%=<)jY12E`%)?4@FcauS1OShc&ctNm^)xlYNMmv6HDUc>roesg$EG@5mES0LP&r zmFJdY2`>3hRB?)!3lQkmrm5g;AELyi`@DzgO0pef0B8+&jQi?bLrk{5!D2q7T9Oh+ zDMeRZXYa_a;q<%BV(=gBdafWnt$P_J?mBQ4gAZi zuct2ReJXjK44^jG5di&Qw^b|<_D%s!zdJ;pel8e?3|k$vAsLD?ubZ>-y|W2`2m=n= z4KFE*5?LITqL7s%qM@PMGML`5BeJKMk*Zs9t%07IAgQhD*No{}F^Rx8=~SSLArTTQ z2+{Ak`F1GMLO5Y8k)unQ%OM0xvGP^UFR3ITU7ORVJH~cH0q!hOU#ET$}hwzfOA}$IOhNolAIkY^cIdMG#rw>84 zHsk{dd^(#v0zFd7Lg@gA^b!^8UAaJl1OPy}L*NvNkQeGDA(G*glAFGOhbYQ!BI?*D zbRr*nKMxzfyP0S$vaqj%yr@fQG`o305Y{wNrY-50y5c_&lh>07ezzGZxr?SFo6m}) z8i@kWp1~P8VH}-{P77gsz7n)BQGUc*2ahYP9#Xi+6b=aZ{J^SR4S1Cg%ic!;#-^bG zq-e{y!8fzXv$*S%NHl}UM1;sxg~(!{EF24nnNJ-0IS1fma8HqmG5u4$MCOSkxOhd;B z#GGk7vTAle6lT9E2@b*>3>fm8RA`*=;f#VaKpSZh3T!VyqKRp>9&oRyvzoj65f1wW z!PA!s8)Zarr8kR96S$<5gl>~SzeeH?nUR$M5{wRFSR_%XmUBjtQpq8!MmdnXfEsr! z)D1E)e?`%wk>T|>88{NS@wVYFtOP>|K}VO-> zxFex7V&0(%+>c1{7Lk{v06w?{KvPS|g0`7p zen+5;AbgCV(h!nb$Bz4@7@@zO6q1Qzzq;Cl7=X}=aK;QAsHYM0rWO*2tL5yW2UOP=`ZG@Uzg#GvTSVvoEhw3Zn9er!r7PbP>rsq74Yw#;Fm? z6ucG;DgXd{l!yd7n!cK2Du}>+rs}PbLe7q>wy-N<#+i&s3qhV3`z!q2lhm(FNdU23 zEJ7o52$(+u^OQ!zxiJ{u8^mp&0*o<_Bh#~JfTa79$Bcwcr*7a}K1#s6D zan|}!h;)b;0S}#9@iMA8nqdE(g>IE1kr(v~SSv`((BDwv37ftp(8NnCDZZnlyh;%ixu=wDj zK?tpxRPf*&qfe*N=?cBfUyIQ>jqbZNpQ_mjANYOR9YUrlx*c1_tw`NkaySZb&R3$W zlQe%u3V)EX>{0Nix8X<+E4L8f>fK5Iq$JS@T4qB~lp)ESqtX}Onp(kOt}`YJh+Njr zvE5I&u#iF=kz08>-836OnnnAbtsO$0Em)l#E6_qV3t<;Il$MI6J!Zwvq-;k6^34Q5d zN^?}=$|nPAlf4WU>0ZLFCD9HYELE%YOr7?xa*j)~ehD?#Tu>tqvy8M6(I`*IwlB$-Is zK9q-)F;bS1k&k115-Zy;l0p<(h{-vAuhAVm`FDHB$ojq&`6`pRRTJ((kx znrsWIbPh}CXdwln(5^_?8?tJIV4G;$xC3IQ7OM!(5xJ-r3azKCt(ZHoqDYQ6rQAbR zBGMx3nzK6HB*i^F_z}>v3(Xuk%hG4s54{Q+!F{D|lHlWcpSEFt9hzr8$j!r;*sJMg zOEzDpGFeE(ESVfR<}kcHvqXrCT189GW%e-@PWKj6&kxc_VBKzOd;MMd!Jve#wnBO= znkJw-0`Chl)LLv#K`IgDD&v`ZW`;niUjnO^z6+MOnnPh`Et2eeiVQtqpek53NdapZ zya~BxEOX1cp`MNHeGrt!PiZL8Mp1~CQsrkF@wXfC#~isfR|s}kWsdPo5?gKe3>N^f zj;ZIhMy8YD8b~PcOyUvX8HDPb-@a@S9<8h2s^JZG_s*^hTp^m-D}!H}8mWAEK8`Ox{4uzdn1|&tUn1mwN*pk z3z|kDnAU(=x?LD|0hBy*a{cSOc$RT4)N5=kpnohau|rYC3mmp`W4NSgRE7{nSS{pI zuQj~e-cXfBno@Cqzq1D#`oD59i4;|~zc`A^g#WSv$3Hda0)5e;&quk|jba~04p-E$Jx z3XTpy5iy~*!nMlz*%M3=zgUZ=Tw#E_p zKGl6L5kzl!ztc+oC|VF}GmWp`T+CWt^lHK>Qz@-VoZHX_lWEeWgJfqH45 zdDn^*GRFz_(Pdn*qwBD>!sE^qk~DP6>t9M9^e%>|q0qzlwV-Bxw4N+AFHYzR$WRv| zy)tB_S?ZD*MR2sv{4W@hS;`$kvsTHSEzerRZ%dE?FLBq({I|>e$IP1t9tfWwaPH>1 zQ0o?>1<>w4eEJeY?Bk5MkP)EWm?72R+f^siY$M^M)+WU$>f$&ckgYCk^cKJ{2QiG8 z%p*O>nVuMz%k-Ru3>K$i*;_^Z-m8oaxJ|LbjU8V4&o^Pv{gvlFEG|)Qx<7X#4dc0I zj>l!jarrx2bNlX5-;-`>`f2_!rd0pf+q&D5Ee_^~#h(CxKfnM85C{YSeZPPJKnxBB z{)GUcu;=s&9TI`W;nBF{c0C`ENMuqu6ZQlHgT~*n$xJ>iB#}!%02kcCK{5c$q%oib z>N^#WKj(l6T=qNym%$;l0313S7JtB^(Ky5^2?B}6sqxq?E*(j&03rYY9WHnQsX*#9 zXdE8bGnv%p(Ysv=;c9|gVW1dO`k!5l-f%DZSQ48FvQI7birrp&d#6U~*1HWllX<&c z>d~2&QaMwvSuHn9K1UZbzsEH(jKp^#c&9<+*NV==DYc|hus|GEZZ{LqUFsMc6b{Qo zg>NqVy+kbK=f z70069V-*Qpql(8mZfd@UpRWsuueVD>e#Izl@@(ZR?(*iy!f5;)kT$H77{I|#J5=B? z(8I2kILI0K60yz<6!Nx8N_3aL2zu2QGAaZpu(I*QF6OQA8m74@4>M~Vy=jB0w!2B2 z@{o`t{3MT`tJ?s6AV4H!-Jz*Vyn#n>syv~=^9$JkK?}2wDlCp9Y}KvK%Ye|YE;@ka zCGi9lm1WtMZJdFjmNEG)HWEb{Izu%ZB8@Inty>B>PyFu1Elx@gY_Y4P1c$jWJE*-; zh&4ec+R$<>SEAGn#-d879G1u2Ec(RP!VaS*#NcQo4Qwz=TcL!kF|s1*DXUsi$z01Zj<#rX{SqU3 zt>}_C3Bqe$rwQ}YmLyf9bdM;hkOwOtiCR+G=j*IDp+;1slLSYU!%WfBkc_aqxl-aG_z0;&=STGOU*r;HV9*~yM2v%Xox9*NmqCd18GZDbNTZw$2 zKq?M?VsCq!-FJ{fSkdNe8w(c4oW@&NAz11r$?5*RHpMIw;u->gzM}Dv;`wIxLB}p# zy9!%fy7Q}O(mRz&bDCw@(#UZB6q(|x$Cz;*(^^&P1oD?7X2)J3fg=hHP%#B+!JomT zLdDHYswIZ!3HrMzZt0UXmGElWTOdSf&6OA>^mv~d8#o4yhm=qVm6*fhMFovIE(m1h z9zx!0tGK)>wv?w>Bq(YyRMVydLTd>cI}gG6x4)t+v|F0^TWghs8#n^7V8TXAC`mWM zmXuh)DNTVYEvuw*9PpKdR5vbE#>EF@%boGLW=uUaEfgG`2si>SruiHj2o}qVoIZhT z`H`-2`ax0iu`P?qnj#WnoE%|oEy_Fs5OMT<(ec?|C)}l=W6o(`8GBreeB&5$PR&bN^)}&k~L_&Yh9uz1^`jul5D*!24bem(cVTeNcC#!UxPWax?9aHK* z>b%4NX|z}sVZ|Tu@a@W%Dtw{w$D&9ALoXRbZi`w$l2A5B5*b@2k#v)I(o_Hsl2;lW zljtHR(ZL#JDw$Hub3(1um{C^pgpWjoBJt%DHJ9d>4$GQ^%q_c5;)5!hiTYLR`VyvsCY+Pn{*#Xx zeb*Hbf@K{`C$ngb&^gqVhv_wjtj@PjBFJo=$|+;?g~TeehP~%ymZS%8e$|qShhPN` zi|5|6PP5$%TT!)&$QXaU3V4m2IvXm`4$8b{)btY4=OUEVh@rU{=gpyVW25f7Ak!S$ z|QJi9>G0gZR8{{qFy=0V5U`YeStc{|ebv}`d4Kf~;- zSh9^wm4#VvOoabW0sc*4e5#CV!8Mx*0+wmivL+4Kr(k-ytM!Jl)>_Y6Yh7)v<-@PT zq@DiGQjL-sjI4`<^Ap%JWVxnk7kJs6vOW|P#}|C6IZ|AOpL-~9nnH4X+7CIcatf=+ zZfyV&h5f^)7*-?A_@H^Hu~4O~%$CW+UQ@u_$j9!sVfmC|vnAuw^kH7`CfzqVT!Jt2 zYMmuy?1L)UiSJAU3b5YovS`Qw?R7|CoCyn)wtWAdR~ff*-DJZjJ>i&ED-8P{D0LIG<8G~OsFpD?FwCNSGq_20~{RG1N zONJ0v0P#qkj$=G>comb@N?*wX?2KBSFztIyGw#c9TMU&@KAQ+}NiEp#?Z2Mw#q8|$ zb2nUNhyGZsqwH?mdb?c0HNC(>30>yV-mejEnj)fZCSNXcY%5}3BfkCaCMXYpLFII> z#fZtP?k;Bf;qQbl!zOS`i2cpvWx~eWPKNy}igJ&JvuM&jEKt7(WJ<$MZKO~@i!`w& zq%vn@*-#KhJ zR|JgTB3QB|cCo^eJIv_6YN-j%Sc0V%tc)H$4mQ0=^x|k-qwmP2;q>IlzM)ONG0>h$ z!or1SAhOI{`A#^}<*GlZVG1M=dg^|7Z+JZ@0sv>iA8mwd3s~>su+WYq?hW?;005gM z846C=H!w6rq4^RI>`4Loo&wsPgZh=^IF$-cyd$(Otz2&eDld++7IA47v27OdaTh6m z>jjd`(FRd2BtHZUNFoY&X+YUU#OiF4VdT<0s6w7XvT&@D0FGcp&T^$fr5a9>+=vJ? zEtvk|dVD8(y->!vWnQc)(!6GJFrr-Mvl-D4Mo12+t2m!e65}R*aEaKS=k|?c zu2bht9|{2sCAP%N3QDQShJ%thF#_Cfs-jVN@sYq^&mORKCw-^x_DxZVF)xkVeA~2Pgny zs<3$PTOVeIl`xpLFX}mrvQly37beoCVs7h-#Ou*uQSQPmM&#_IzSWOb#m1U~!m9A* z0P>0o@=H=ShDKk{^7f9P?FNAnN5u^yG_8?7C!>;QXZB7oR3Jg}MBos`ku3kPD>+(V9RV>>wq!ZL3z z{;--Suy;I$N+W~}AE@%Y4&u&@h@n$*-2(=d40^#Rp5(4LweTQTsi0Wu;--+US8l#4 z(~~$4w&Q|;Pc!OY%|RJL#@|P7RYRnGsoy*e5Cb6p;aU|$cQjijS{;7!JLv=>tI;a9*NwgY-^jtgZ*n+JGGYR-usck{C^m?L} z=#Ord20H@MmO-Nmvj}}0lnB@CSSgWJDs7nxLUe|brv$=)x91NGG3+HYQsXD*G!6Mr zGbX;WxFE9^7Df(olj}3kc_BkJ17gI*g`)pwOABqB^$K}8}CDgCnMY z43mXS2THtySnkt=_eA21Q0BA7kSc8%K~7*X3l7`0cB{`vI7vRjaZd3qO0#R!Pfj?@ zY@|x4VGG2S6_0e(?U4wF5T1}e%*108A_ilzx?n^gONV5eQe^2Ovl&ear(zUur4+wr z`!h+WDrXEZOAuCRzew=Dw$T|6rKp{&!cQ-ZXcbE{DqB#mG;2dFbq`YcE{wiQ3UEa2 zCQ0HYV#d@icO&K+xNR0W%&fcvj_CD3a&3y7j~6^G**_xS=v9W8Ga^gWs;1Jg%4XSB zD~v*Bhb!Xd?8~}?Hj>(fUr#P_$pXJ+&{JfP(zehn--y;xQ!Oe4AY$f@qXe?|>MuWs zjHONZLJ@~jWf(usfIw9-CRW6`V{$PHcx)%MGPSk<#0g8I+&^qskLG~32o!^{GS5*~ zPGbu(MuODFm?d#Ec8{TD6g2QwaypWhY&KOm(r;X-^5pHjJ;r3*lkh}v@M6+86DU)>S6h;KS7jG=HGHrGd$j?Rh8g zOQhXwd!6qWKYRWHqJ&Z_x@GFL=Xg=tF4s1Omgu^MqKqfTZM$xm+~g* z&d=&i6$JtSr)^fn($EGfNo`Md3SNOC;Z=8F&IAs_Nm5@kDt4q3hcC!Wl-}3Z#J`1P zRBPOXwkl>6I-IwDBQ?@sFwk4LbX-MrOG8t6u041(VBZ+r@h^aJM;N$l0-&ay1P?HR zn15DT5s^6+k$D-BsZv-=)Fg4_t|#U%rAkgP&c({SWz%N9Bui!O!%#&8_#|0wIRtpp zQcIC4frHl(BuuacWO0`Wv(f=%Pjyk{HFLEab(hGB#P=Kx_`TG0nU@`kDWJ7!7A#9N z$4#Peufd5UmMz$sN{3qeu~I{aesgYQVl+#ORkaDjQp(uArjKt&MOBpQLmyPOWDvG~ z?ZF&NLTx!jJoZ1Ba%YaB6ad)0BhzC$MASF!dPQmRAU1Y9?mS`4;5#GnjwP2;1(9hY zMyujBtTveBP+5Qky=p4b)pEilQ*zz$Dq-fJfH1bos;Yr?qmt)j(GMg;BRWcTzbG(6 zGXMunxZ>Q}FMgKde8mFGFX4|!GbY&kplD1u*#d8Cik<70j>^nGNv7k~iiYdmGVn`^ zSs$4BqPxPR=PY=I0*c%fML}+Tt60FNV;XEKoc%K@}>mC9gg1mi2m_m42FEsHe;P(swwmcNi- zTg%jq3e^knq%$uCA89to?1T$}~ z`x?f(e1K`lPU5AGC`fW?s$dlflJ7w-73Z;OG>t;`vl-(yij6hq5~C(aQ%_}|WdPEejFR0`w7JMo^ATWMwN^hPdU25sEo2VMYW;@_QfhSrr`2 zDVpHL_b!52Yi~VK#D+%l*>?6fb#2X>xY(@U=m$u^1BsYx(i5RN{9-#u{hIF|nM3B25NKuK1#f=P&JD=Z9-d0;947t$(2^MaW&tYt<3sx z;Aosq#IJGL#_L!2*3gMFG-xhkF0{%1JegvBleB#%3(ZD*(n(aCWw(N{H_@4lMLiyd z{Egz7zo)IvoP96Sec8$f*U9~@yjW&TONBKEyXi;^0HuYt%CsosLN2z|glhe96HB=p zZ@WvNDub~KZB4S{0^6A7hXorz=BMe>pkn5jgJb}NH~vQ^DH3G&Mq`>kCKiZ8q&5qQ zUr0thq`|E)8^~t2?L70%ghyP3!vv2&K$~jGyV>Zxb@xAY_kVf!rE~7ZkToq-$_`t) z^v&?e&8I_)7nM&27x3i@GCSHBJd8LfBjw}cBZ2jbx(LzCQ3i<%F-RZ^4E>SBHU+Bo+a3=SFqea`6o?gpY=oR()J-8fVx76sW-tm=zUaM+T40wqk8+OsHwvTb%(Jia(6cdaN~n}E z?Gh4+s||!0kf(7w^no<)V{-AUjzmJo!|6<7%svZC+?hTJB`MJJ zPb98OQ^51QC_)wiqU$=U=Qohla@D4CD-^~?P*V>vCa;vny`Rlo7OOFFGtQngzyqrg zNsP($f}seu2Cb89nx)5@l3CS z`2A1IO&|!`yDj`Q_EQvO)SjnmRa}+9DYYuO04=H{oui5*+b6~{gu;Kdt%5N<$%@=H zFhLCa0MNSN01Aq%ul<^oO_S{=mOW7;-CjnK`mB!I6^xf=+zx^;-$_vW;RQR=U3(cH z=`;BkB?~e7)VvXOw&2ES>-g-rw|bDRBS>2p99FD@*Immr>gvj`HKk>XV)({0jbnJ` zJC9@e21Ai#c_vGfWcfUOlq&M&Af7x(!0#jI;iut9gc~-{4Q4gN7ecv||)z@B2=JX;5?6t?Bi>a+@QN zWT{K876ex4*l1RbJuXW!rDa^|dobKXPJ+X7AZ(uAp174{GLg`4Of2;&4-%*2|@B(4cZ>XBkZ_I`8Q!l8A%nx zegImFMOCOMhb&{F)>H@WQ=-7 zBu2URG(zht%gBEaGGL}7b52d$qC8oobOIB0(=Ci-wv0)RG#}JNOk#mKUIoTtn&;&w zh{QHEtFWWBHPq?g65VQ2g6T_pF zc8^i|K}cy8Bczm;lQG$Z$!NnvHw^f;C^e2%p6i7?@f3l@NGie6lT#q)RcK4{aXVJ& zA4%n?-cPkJ4NC;ko-kanM3wwj7CqkC63H=L!Mv|?UCkr)Ov+2Z3kVl%Fd zy%_$#nmJR7MMi7GGf4@jr42N5^;xYLFC@t2eK{_@)iB~R)QzQ{h|KJp6LI$)4-KTE zXew_Y0;M6&Q)s0$oTw6)j9(671A;FqKwI~lZ(}uWVXsX}S=MoC^0{_|U6V za;lII#Ke*b{ORR&gkP&74aaCo*N5u$TQ-@(EYq6*?{Z2`$L_sd3r0Yq6n76gkwF{8^CnOmHonzEUDU9bTGj#y2slHrM93UYPCOkHCc-1Z-QLA3(1>1%B4E7RZvAwW*N*0Jf=~*Zm#GI0hw|ugvuckA4KItA*f7J z%YoH;Pc=>y!-+izq=7GvhTx{PKLDe%uumyl4cKThqB6}uF7Q^uxak#0Y8lWDiQ!GAa;tF;Ly!n1WJ9g_c@(#IGMbTsfItfa=VtMXB!1MUsxEEFZHiZR zYIQrU-g!!6FL<4*XK%R)yQIn*Y9>)8+sj6GqoQ5Z$>dZ@bL*{2V|5gtrxGo$$^2oa ztc^FS%jQ~)!2q6qqs@UiDn2iPsM|gPcsiA^dFdTNeUnv9fv|Q^f5DH+Z@)4!GCCV; z%cd6P*qQ$&E6NqrZEEocok{c!fhpX!MAL`3FqA;D47BV7q6iZ={ z$~q#cbDHqN3!9yqTV%aSIsglV!Ku=^q!1wsp_71zws8+Q=}xA>SURdOiIW8+>#dE_ za}ENuJ>e)rsDm=PR;js!E!%+y^R@}Qw=Q7vL3rb_T7ZsYQ#NEEE;_~wz^$U%J_)Jk zC42FhVpJcaK{n`p5F)p%imp7AK`lCHM47RrFxH_95tX=!CwdB)3KWk4v%Lu@is}o! zI?#+$ppIy$qU1xt;Te}vQ@x>j!U_&0fPoMJF@x|wwTc=l;K2YWn5!v8i1Vz8Teqee zKSqF_we)7JNtdxn*1mZeo#1|qxrB)Oh$h@T3Co1Od&G`QE-FZeFx(U_`lE=ewm_=* zAUppe8|AeUC^nMan{p~BGz2_r11&l$9dd;U%1t#n1Vix-sepeXBDnDZbn$?gqU z`8y-@h*PNxoLQ7S8y}-AiD1jZ8r7SkEQ+xQN?aeuQkbRks;eltu37;|YS`7ZGs ztJDxlFtd!90{}4V4>i=$HcR%TGNpeS`^c;2;sbwA~!nkoyvy` zff2WoE(vr|y^)5$V~6co!5}Cv0@bVRx;`y&Ad*k18$=tELG21QR@|HVmW9 z=@CWznz591s&lQu+Fn2?eo{ICiqm5h0WZlxFPbtECVPn`AdGXvpyAz|LU1CQG7`+hmQaigL6uRk%fR}VB_yOx8qgSm=q5X@G-5Xt z+2_vCiUasQwTjKqtL~D_-ItV=063V3%IX-@#EbfSC4AvWLi-;HCYOV0j8gUr=^Ylx z%#ixNjxxKrv6r)393dieKp{E+SwN=0ArWIf95A+eH%YvjQ3`t}8-NL21+}XCyx7N+ zq=>63sg2Pbm`oWiVRoYgIGfpjK(d{>V*9EcbrF+uDa(i}$i%}5n7O5qx`_s|c*{kofb-h3n+W(nvvr#`06_xT&`sm zGIK3W;(HgYY@kT7&mj#+Yg)d$B*a~3s{p7J8{D-WYpMe{SXrje`64HZnwpYuS3(dd zoW0I*c2N0os(ceJ*%+H-!mRAJ&GU<{%*-)^_9e2-kNR*^d^e4R+8kR{5gK=~6c9TF zfu&0@L%K;IB~%b;dx`X$i5qUd3fB_di8`X5D1vy1P|3_o8rMt9#Y>015cEEv+Q*Dq zk5YOE;K|&{Xi3vOOv~q1K)TN2;=Y{lA8kt~xe^cQ3X+AoEK;46S!of#$0PW9f%9Oo|Oj;{fgE?EU*`0#-B5rgl z3mclGnGosVT`fVI!G)`tGC#X}K5Q5(vb`~hu0s^qXt}tj7|@fUJ08kjlxw(BtQeD7eaN@p$On({+ak?qBa-e6ev;i+-L$qnTa-N!YGjV0;H4sIYC zD`ujtB$)HLd@9!DGM>?@BWXit64VrQ`A(5ruCTb4#&T_I940Pz(Fs;N3Yg-I!LJOt z>yBuecAhb6Udf_~t&N)OOJI?q zU5IAX6-tszDT%%p6#6F#Nj%kX9_EL)_K4j)_w6{<>Xlv^T-z7>iE7e|r3AxML>J;J zuuZ<)>G4MsqaqH09@9J!r%r9j14d%KebUpV|)S**``A%q z;+-29pX=zREy6O+*!&#wIwjhHaWXj+I_zBJ!4R=TEzck5+x!utB#R!C$pdn&R@rJk z^}HSBHX?ZEI^;AK(b#$CD1`e6a}ga%hSbRkpewryeK3=n1d7GbDp9@=p%|iqI!}P7 zse9O1-M$yPt_U7@DP-{r%3>rYesteXbnj1e{(Z4oAWu20le7OIn65b6nOHAW(Ei26 zt|gH5!!+p(A;GD)nCOaD#znBJX}Z)O1f`aRnwrz$ql!e}b@y^y=5O)fILe6S;Z8nQ zFtM@vw<10oxVmztwi2E%a{q?@%uzLEm!7F^clPMRn`T zuZKju-#nrsp~_1`c3TUS>lPSWa=P($bV8lmF`GH{q7dAgG$xJ~)ai~ap{X3>nxyO= z|0ZoNz%DcDxot}&S5eazv~}+^37>US6cUr_(^(X;r5+P0-GI-&MZ|%Kd6D$p9J*Ef z>|r5=#_0&Xh5MLc0q6bY_nDfD0ZBz(p)~D2NdzBSNis4(uFF$v!B_$6*{^WbE{c{` z#ya-d)y`stwcUYLwCAPng*g-+>N3&cZDf?Vfn=Zh<&miaMZ@Xy=|uB@u4N;3Nko(N zUYIm;o7;yJEiYN?b;~k?{Jjc0m9rY|0Me6bcS6^0<_&n*dK+|^2cwvb?kndU_7D@R z!)+%Gah&@SUaC?~T$9Ng<7m4wd+IUDVsPbcoX-NLisl>(!A%j!o6lyRC2QY=h zsM2dh(&KZo-7eRA#pd;UzF%+G{00XFgTi5O*nCDO6^q7WaoBJae;;p`&?7V0V$~SSZig6|P~D0M>VUAQYBF1g}JO_Q=h2 z0Q!RNraXObAA2yHL7;#e9C$T>);$|Jo= zrMuf{lK!d-qc{K`ukxPOCkW#z>bcM>M9d}08?K5!POI?*But86%BPTI0?i|hdpwx5 zD6^{cKk*Y?13i%XhOH&(>HoeG;Wb!DE zG~qNlse6dgCG9LB4AM(HDAG8Rd;GT0RXik&(@nC*udPl*sRk&j#S0U^ZbTNk#;w#S z|JJobK%KPmOGcN#D2h#JAu;O0r@P7RHAt%Uljio$7NnVF*D&3AAJpvaO(M~*g#Sai z7HW{~KJfaDO|$f*Vw<6li=7Cdt?~Y`v}!ALQ76qCbbZhE-4S6YxGn~P$a_9ZK8gi$#^9>Gpg2u<5A9tl0p1Cbv1&sJ|0($M~aF z0U^=8w#;(t24SnY7G_4Rv^2B9ax68jg@2&6ENgsKRr<$ZDzBoOXFP2DkkQ{#g?YVR zbS!EDAV==*iM6$s0-f5g@-Ml(63Z*3F(dbPIvYrviX^6_RZ$4yB5n)C6yxX<%Wj zJf9`jOzK(s4tGQj6P852@6R+hagPj~B`ARM8L9U!Mv@^QhjLldim7ucq3aovL;+ix zd{9i0K@Z3XP8=KaE@)xAC8e7MuD$tPPntQpwe- zsA%dw-pgB*=wVV2NvOC?{FZr1b>B4S6A2ajJ#=ZM#6iSRQ_B1GMuc6>uH_v7AT$m> zPF+1kRn;fg^kZd_*#<_mk1(99wjwA5eHHl#ei1{aj;*cGP8sVZA_1^uj#S*nRecVi zYSdma*=Uf20+fnM*egaz?i{8#$)V{|QBr|HM5ie4CuwV1Q5tiRm{?_vX{bfe^rbd9 z6%*7c--l|cnI#rpLz&S1W|O)OMU=4&3!6MG5N?fH;-ORYNEfmJ zHI9())8zkPi$zX_@fGJmQfRi(9XyN`1>P<+qHyYy2cR$YeYP3VV#|8$d~6=NyHoI% zX_G2ZXr|5A751-{OzBF=bnDtRXD=L-Ia$&y^gU1j0mvcDVx)1QH%c;8%Od4u*AR~u zx=A!mBgCXdf|uC2*nQsltU3)4!NIv5dhccJz1P0@UmN9o%w1W1Y*7$f0?1bgLuFcZ zT;LVs%urxF6pyIcIJr5FwqM+XY4IsX*YWQ5RZKL2Q1RfEGL(yBQo&wDC2hKrM9(aA z$|pv?mNG?Y8lIDegH{<$QM%tKYAWDW3Rw%tQgmri55-M?AskKKuS(pqL-+!L8Q!^Hu63pmm9)*&VvV2 zB|cpt+mLN1G1s4@&1#fLe-#y4;y46txuJY|dQ*cVmMW^M76Z5fE^D@=P@Y9ryQpum zL>#*jqHfjPz$z^DE3x)UfHpd+D>liwr55eeam^*hT5_M3 zEC3rUEpaY-4O2Tnztg%omDk#aXI(2IF+EIBn(IT_#42j^^|@ktaNTQ{zKiimSio`A z?pJu7f;Dq~-$YMbfM|s^%UW$86e@Ho#qzn<>?p(}=MJcuKat6g2c^>STbupD;a4sz zLglUOPxIkCX5k)kHfoD*0;GS=s%^5=9h)QTF#@P6Q@Ju%c;Jp%Yt1H1P2>#9PMjm z%32|=JHVT}Y@%G-ZBjm{hwEWHmk)D;poGI))su3ek{hs-kPBZ?qw=wW|&O8KY4;5sMauIZ&rf(-(T!~pSAY><@3nTsWui%x}lPQUDx( z>j}&?zbD1LWXr2`Bgx^r2T^6@WU)F5ME>tWHkb+_M?U@ zZAegzcqeG)_o84c>b{EYfZA)8IE>gt&?KPhz>I_DXXYC2iriYyqG4<1?aRQDO%TxR zfbD|t(PYG@O&mQeM+$;=<}Y$rVkVnl3W!fY#zhh*o)3d;%tXYk-C ztnCADI8iG#0-_LuE%HF?WFleuNRM)=Vs@1xqGZLAY61|s$`*w#M!Jq@Wn!#4=-whB z_(+Nu87EwZaaK5i?nsU#XbUc6Er2JdVmYZyM(=RotfKs`iogz%{Y;v2BhX+%iaUm6 z>!XTjO8hxR0=EJFB~SL>4!l21*1Bn!OC*v(gWNdj$SmTNrqUu{WG1_Za#v*(V=JbA z=~jg>Hq!^3Gf$jhkOI|FpxW;e+bH;TQJT>OI4SM(3OJ4~!3<)sB%)VM zM9;{y?C7MRCGzzM=^to1=H{F#FVdE4g8inCBPh5etm1(JyeKK)Ku?q=5*EnK3hko$ z?geR9gXCS2V7zO}vxwl_CRiv9IP#<>HYwt*5m6Vc zdQc0**eU-04bFFNW*}pU2Bi`?sa-ar3{$6^q{(zAtTwRz&7F2?}3@EHpWYnFb$U5*$l5Do#?a?`9BwPj|4wKp@(%wjb4>v?r8xjI36Lf%a zB?DuK<|1tLNlh4zV1EOaB| zKu7|4Lcd7Dc`FH+kq8)fk@zPoECAxV*E3$5lqokYwBP0`hIQ3g!ZM4ae+X1UA0&uA z)&^pRIYk1e0?BkV6jd?Oeo1RfPP5uBk4z(ycG5>6t>QOf)VfPBCTZ2(Dy@yRH!BBZS6W)Zeym%C^KDHp%3duu5d~_w~C0E5bK3ukdJPbwBON7?m$3 ziXu`}1tQCyUPE6Kq8&=aF4Of<3dLyzi1^opoKK`o)dyy5FVhFg-6~5`dD5CrC;raL zev3|6nQO)=H(q1s82(8Xd-gVF#zZ<)e|2(VFYMnucbj?FpL!RgdP5ZNN7w*$iFJh- zwXG(1|v34r1vp$eoT!bgKMf-4Z#!6QX~^L{sdH{#W5%9Z6dEwO|b`D zqEuI{Od>@zUe5(p36Pk{EmCsBGQs@wH?a!u?s_V~yXZ=UW(Hv*rltyCIOyneA^eT> zIcnu}<^m9Vv{dnl$bfi=whD5-WFkK2>*&|YwSvnwf$~Q2( zb8Cz$1xsz{TV{mnPptBQrTmTLvqNdxV0mu{>0u`&qgEwQMhbn2wKY;{@h;8oo42&0 z*SNwgEKfp4NyKtFkIMe*?#jaU@QLtqlh2G zh^r0fb~xK>u%Cd&#EF&YWDK?>q=*1@$|J-yUrrkZOax-30gz%PgCqE7ud3Wd6;CRv zXq5R*RDkpsHsde|+*X027qGgcEeb|~i}2HhMO%C}c?Y-1j`V?uMN5OsUy!L+Zuq)n zxXA5+01!6Vsv-Y4H@cU$pxFZlr$@%F$HjW}b75mbHS#xiE(+6wPe+73fYwgc_yvV* zj3^GkxKOa2HYr~#ZIJDDWQ9?Anec{;7h-s9sAJ~Tj&!FJsPV0`M=j7%Ouj^CEJYFv zEKCytrias{DkhapF2f`DeA=^- z$c{Wxeml;g5&|w(lukZJM0Heokjdi$v_mQp=2(QI7@73-(740RxL-;=11=YED^qSvadcM%qeAse@enJN{fnzWm)2{|Pin470IPV^#jUI&B=AR9 ztfXTjt%t2JIm{c@vkSDHdo>dLjU!_$kWd(h0^!$31pWAUE z7KTmLEI#zb#Knf22e^02aUDZttUJB5f~J^`XxQoPTAV3pEp)HQmwd$)aN|JgM66^A zEj=4{u4sO|{M?XLRLB>~ac=6U1bY-Zd_CNA$QZ4sL{YodQl#DPw| zsZ2~N$QJhmeINpNqvSN>>($+78R>;-OD1uED z`xKttP%kr|(HJMsR>6pXPEcSD{t2loug7Ip0C;0J{3>hdR#9B-?FA?*_eVRi_j&Res!gxMlqTsl*$mG4c%J03N=v)}yknhm0|Sc1p|FTNRsReD!k_V|JaSI|g+^eIcjOKoD40f|z!+os_yC4NNFa`EKd#co}vUp@}SCo^0;g}ls zMmJrlKV(z+EcSO_yhR}qd)>1eAEw^6n=Py(89hIr_IrEXd{i9Q@u6p$E%Pi{SU&C9uxf{N}pYfv5 zu6p=O7N94nf>5n7OPV6Yt}qgwrm2k6_Q)^jvbLWz2s^;fBgm_|$fb@N>bNP$o3QmF zucA{BwCj45lrYdLJghj*`}B^$Zvt3;Akln4=Q)w|e;`OQ6o(>6vNVq*NitNICP}h% zpD0Q)l&306Zk(L3$KWCz3PpYWR)3uHW>zKH@fg+b8kKAt5{Qt1jhPh2$2 z#;9x%f+q6I9Q!|#*Z_SYP?S8|HVz9Om8mU56376k9CG+0vbyB(I%rB@iOvh8`06iD zJHtx8iwbJ*OtmAU4LS8o)`2tdth}=7MN0H^4hNJZz5cWlhJR-!vcyzf( zM+@`=WT0(ICbhn?TO+5p7viUQv$u6$~qgm-T1lOFho3?Q|Wm|?% zYI756y@xsJzZpO%?6L>J>ktn2d^5CeuAQywJqMOyRKB+GF8~V0$X`6Ois_>btwzX9 z3EBInA~-Bf&{(fl*fN2&08iW+HS;JdSN-TXhQl$Y* z`^-|z74N1+Okq_*l_SMP*qk=Bu!_n5E^s{It7c?>T)XK^hzyE=N0@2MG4osSRMA1R zTANqu@`=%7ho>0ny7%tHkFvg2#^qt6GNb^V;#pbDY7wAjBNB*<9U+aZ z?=a6v;5!SZqnI_f^KVGSY`c$!q(;5CwkRmk|h#G0DRKF!$yGGn%YPLW$vB>iNu z2=sp#tI#8>i0PsEHtHp`TxQccJ(f2hWRv>fk;mDLMHB>{OmqB3EYXcE^!VmuA@xn| zsujS}^xD#({4g%;)Gz22E6gJUE~Y{po+LKs%7pimhM3}^=~lGNkr+=e78anCK_pe- z^)tW~j1n1giy8tPZAXqyws|t42rva`u@O7OWWcOXo4|>N(sZzbc+rXsH;RXF;TF^5 zL=}3Mi)nnTk%&J^U^`<{bXFS}Dri;7gRh(85=E)3{ z&9X+$iX{q78uc!2ZcG(1_b1mW@;GF&1i{n}i)8r*DlQg!UBbkc z`8bcL11xa?TtsDva_fpxFv0*pz`7Ds+=={)wlz4OYuI&CDz~x_eixat20mORKRUAf zl+`O1YAPKyVK20u6f$&Q-YE$vio(nQ68}IHsv9mcQH)sQ)Vtk8i!+EAyij`Ugpgt# zQOkDd+~;stiyK|J4gkifGXky&B+e-4*#xy5RIDUgv1)Dwp;9y%D=*cMz0oz@8)Qy= zZsJpakJtogXhl*sA8``Zz{)}nnf_ef&Z(f$&|-L>8PIKr-)31 z_9v7_6GW?%Dd75Qa!g56X2okspnk1b_}x3=n=oTyMsZ`f|30>A_V>zWMox2)xi1!_ zlNM4-dZ`l&7)N}+ORE1z))Ipd+7MqL)RvMbc))->9WyGc3s7_lc+bcAg|x)DTQE?> z53Tmom{ubuwZ728i;anp+d_P|A>76jDGlC1x1f!V9rL?2REiZbY_9oYPfmv4%M^DE$reo^iWV=wFX2JqUT5E7x zmY*Sc#LLk$0m{tla&v2Tt>O{)jd0vfx@}q1kmO&AXbFGVNB1$O*006#7duhh9!k=L z`LYzOGOMy6t;tMrq2cNUqfPkGLtbHJOxb`z(sA1uB3AD;w|3D+9goI4Wuy7bM~8GgmhDStKKv+E#y$sEaKAd(S;Xh$N#ug8gkG|W*)%v&ozD;+OF8*tl6C+F_0H2NQt_=IeYCJL8GED&j2(8 zm|3-o36Tgf3Fw3(S0;`le&U@s8;t0LqNpaP5g_z{dfjZ;dB zJ3$bW&!}4rFPmLGGwM6=#U9b642nJ%DM|o3$SzS!30RU2($ACQ`9aefy_pigx_gk4 zAQhm;8Z-|+Ix#bQ`;?l#zmun-0IS1r06}W!v5Kt;L^=}#vM6!}h|u)9ILEuodPOUD z7OSrav8cZA@w@CIlaca9^F180R+c%J5}S0okgq>tfef;O5(9YU*gq5-{nRL@VTpadLnm-!2ZhGY3ioOpI99Fw+a3Y;K{uNe~Q0 zn?X#ypv6aF@wuqTzo~gI0_TWRUI0UJIVoF|bhR493#W1?Jj`{k3zfIP!=S-H7TZG! zOWdwO??I@S5o9wAd|fsSTR>@5ISZ}LW0J3Ymc)Cjh(w==c%07R7aEA14^#OJ^c~NN zinuEpq1f@Ny6&T3K#k!co$AdcoTQiH+RQ3bk`$c3T+uvuraa@vuY!B2^zxOonLn|8rOfi`mQ13UZ)Qr=}tw6xWS>PdS zR!0cjwgldX(N#xV!L5lTLewl%Wj51wH`9eU(`=d}h=0K=bHpgtG!%`b*_j$7!L))9 zK@g9t=?(xIm_Mu;Hvy3&4G@-+k{mmx7*lr;(zVJ=u%*;qIV?*^(dNfGr-&o_x77@t z;mwP9wM8hr6glRNI;5Bw??2r}(P*BF8Qjp>?7ZO#FneK(W6#v#7@0vlk%G)h?0iuR z{t4Q?(aGw)r4+WoaEaO^3CxY74JA(LjjN>^JphjlQh>j)tBB)FBe65coY0zF^(NZ} zh~JVq@ucaeFm-8`1Pl)e7oxkmN+Vh?(usgD$Jc1}q)fh58@(E} zV!{GTi6muBF)+V6xjvwlO%g4UP=u@PLx_9(#(7*exQjuQ_EX`j8ri^C88|r@k=I>* z3JPo=;~v=@qzk$89i&M!-3*KPeA6;!E!k9~OkQxx%J%n}HJKr_4)ugX_n+Ta#we_QuDjV43G(+V@8$tLJDQd>c$&-OmjXkI%v{=<^HrlN4 zR}Ib7^v5p9tx=V8HlQ`2W0Pm}z=`aZO zMA?QVV((lU=DrDcH#tfIhmGc*}_su)Ep);v)tA+7rNK7W+kAm6eJYmDdKJ$Gd7eSDwh$qOnFJEq-tFO ztS0s_Mz$uaHEw1qETZlzz@+s=oSsY5WZ0^sN=dg&KA#W4nB$27T{?kEVeCGl=7}Sy zOfxwt>Y&_Fj9CE3-BcmR0FBI(q^M*`SqWuOi$s&ieh6R#FAM#>xoubN*qJb$w~md8?WP#=NmH*5Z?7;?3$79^Kq&2qfRn!zMap z6b*#(Wn0YZv1uPRZc2hqBMA7GXqB4I5tE8yfE5GKt1!N(gSvAETz&H%8NyQ$9^YDz zrsD#hI#0j2z&U{Xrq$;pnh%s&)R%hJpsvc+B~vG<0Lux#v*OD+i!`m1Ovj-p;GPJY zko3E<8y-#=!BMI*_~vgSOB_Z-!(k);%>%9_@m zW>*SowJku)j*Rf09v=f4@W*lU+6#M5}-?vHofaE_5W5iGiGVL znGP}W<;%X4vRp8+MXQU{#i0_AbH8m!u@72!>d>q6hhXe-$6TwnkI3yy`8W15P-QJj~n7fQZQ`*f&?^QHu^nlCOn4q32dZhcV z92cH^;|tljhS$#|EGw58l%kX+E;yyG6(w-INo?sDJ=FwWe?_7&SUlPLHiQ7<5eXC) zO+f%Zrm*S6;uAHC0Hsm5?Czx^h0TWHEac7WWH@fMd9ryq0xpjot6|ysl=~8<=9O zv?yEt8)LEPZc;jqE)e{OL?^TfbsG1ms>pDe%8u6ESB%{?fCtnx3pl`VDbnB^A7O#$ zbb4JlO`8Qz=)&L7*hmKJ4!y!aok;DDk6x-$XTA7VJ{1Is-0It0JW|U=e#&bWskL`{ z!K^70R?#JG64s(6$@6Nfzpbhaw74hx%Hg^RIwXuMi%ZnzG>9Sm*edH9=FUI>BXrlO z@Oq5kBCXt+NR)K@RH-wyAI;`#r=iTD3*e4J>xUJnf_$ z&$G+IKIE;fI!>szi^87pfC-bJeW3Bt|7S23)Y#p&F>;>P&vXSHcDl8*CljqN4A*7d zF&x8aA&6~S?<|O9cCn^_1a#+sR&zG`x|Bv6honRR|7KyXcnX)WOS=6r*=c4Vz}t?5 ze)G1mZWz6;u^k}Iv2*%u5h%8r;S(W^l^>PER^qQu#p=8Zl+`bzM4iGioY@FA_Fa^~ z#YiK#@7$_7fu}=L#)8Vel?)jVCF$%YxHIwG4!q$Kt1}BAN@~5V?P|qKk~n!nj(wpQ z5{k1R?&3>Jt{dD*kMJB11;Ox~FAc--98VR+@tkiR$MPJHCCT!fs{()Id@u&?aE&ah zB|!3QMYB(njYBQ+`I@;mD%UK`0Y~)$*1hLyLKvuR+iOcEq}Qd^vfA@{sg1`@=3mxo zvR*xDOh~#W=g9CxV~<3Qz3HXDyXKb%-4|_JrNXOCT7Fqmmr+0TujiFFv>*-10Zw(s z6s&1E-@wA9x_Xb@uP##TV3)HoCC0f>nG=>rYhSFIc$_Z^sCD5qz=-bwN zU@%1Oi!Rs9PTEUCI}TYw9d+PzN9&v*r?3Gs6m)ctD>!CH1(cbChWZ~vVlfWLxhrIC z1sSqwG0pJvB({?gQ?oHqYzg5t6YO`|q!vqPJ#nYAT!WQ*8AZfNkb%)ol0;jq#y%7HNZ%vj8|ODF`}v?{QV0{8cN2Y za<#$){?FoyIcXhuGHG1?;>tTak%8_Zf)qntgMT_tb%(|W5Ff+y6k)2_P`Br>vRi9| zqeX<;9k?EmmWx+Bs|@p*>7wzKlVX$;p`@F2?v|u`1t!P!wLqF37$RB_HmK>4$TpOH zi<{r3^tg;GHC-i4b9ZRN`Yjcyx@KB+F-ydaTN9!hS5&J#L(!=*QtGJ`)=`i(^*NXp zwTgz?!u*XV3ERT8O!W&=$SV^z0XbwVNbB{1uvQMjSX&KY>_v&ORxQ9ehX&@{O&XrG z5kVQU%^uFf_AIWfq@Lsk0L>*aZEm$ENk(YClys$xtZoREYP%y+JmRh>301qqZAS}* zt!6ZW3Kn)7O6Kw#NaeJMQ3Vc}VoNzm$$hHZxR{-2WhtL2{(+cih((d?|GP#c#L&`P z7%EAggeWyQJ7rGM8Z``yQ|ekyQlm9s%iJebRv53tQ*mH>D87igT-muAP%A4rTQ13_ zHnqttpy@{1lv8gbF%cf(hfDU$e9zz(b~IxL1yT8SROON6Mp zHkH{-v~Y7N`!=>Ekh$TCipEmOC#lJ4JfbBfb}xMNL3K{5;6$qP>edXA^#b5JV?`>D z(s5@iMHHZd>ibt=+CxkxxG_ak(I*X^pE)SCLL1p%ZS=gsaiEtP5C~}r!R5ZG8kR%@ z4@~L{mp4q?E@EWyic)Pjfa(ORr3CexGX?og&Dqpu7y|+hjaNg<`L#-kPi3zWi*JR` zH^j;q#VC$UNymj?)0M)Tj;ywWR;~ymX*@z((GIL_33L_7)|=#L?{XL^6G!vB@fb=?7xMNaD5_0>wu{=8 zv+HrT$O4~PR(q;W3AfI2dwALCc0i@YqER>WiO%vTLC&QVI#^Y~hxR7m-ll)G7yz`I z7c#^w0n$;j#^+f$GP4ZvKF9dH#yiSp&$#u%QAsyLQ?^SZAVYjU<#i>L91S+D!Hg*8 zCE~7}Pps`CdC#?w&+B{@QxQo*o$Orq;My$L_8oU^vOPwmL+(EfKC;6`n6fYSHl5BH zq17pKNX2W9Z&8CA#oIzK*uEoUJ4b2lU9Yxw-rd{#RgOAVLB;lXL|Dqb*@#nV*B@na zYTX%h>-E;Fa;D5gEyR!1jSSb2-8xvJ*929hUA-##n2;kK$=R)}%OD;X1r?(Pg8MF1 zZHRb+3*AK5x&Y`vw);pQ8Jp7Ff6MF*1pwzMg1nGgi*luhgl0|u@g4FClx(iLbqlN~ zuAj?AyzlW7Zz9?8EbcBPv$8W^N%#r-u6Oi#r3^hK*8N$4!dV(ZQuQ;E-Fd$D2{Dz9 z&vue72MiFF>1{v6Bc-@_uR_d3a_D%~2THGmB37>aCFORiBSv4Y%DeCO^)6mTOe8ah zh*-^D)@D#QC*XE$DE3FRuZzlH1D=WxJTGpLy>41j>avorE|!Iy*2v0Kr#yeD%4bdX z%fh(UF0ik!P*5vIMI;tj#LTjeRv`^`(ALjgm?q^iDGqyBb-)<6)tn?pQ& zYk*h8VBJX!+2Y{!F9z#F-3`May9ByhCj#I@sNjYg58(p|qyklqd|je;+=7fBV_*Q_ z3`dXVqi9rN@mk`F;9AfYK1PhstE%Zn1i1-TvjUPf1L7h}ITwP~W`Xh|L-bLlSTP8$ z;)EW4ao;d^kmJxR?A-h zLZT>6pe&-QcWy@@m!q01RT|idc!iC=q-($&lGlB#De{-sS}p zBsP(8-h;u>afC{q8V1Y42pZu4p-Q>;i65K*KCW{KWG z^SG|6h|@*ziQ=Y_%hr&FTNaaZKt%elh;u*Ue0ENfi~{8+(pfj=&Z0$zPOHN+h|Elb z5H#{onkTS4XWF4`9HIgVI))0Y#gy`C{3Ojv*UPad$rzH2j7j59F9rCq#Nt>d+C7V@ z7iyYg4)(laH8bdg3JvyuWdbseRG|&`@a5fAuG%))HOpa3m_PEQxE-)6MX}&PiGU~1N zPH+sQzzHUj%MyHH>s#^?ZUYK~?gK&C#N;*C=C zG_~julTuu+L>o+rM*@%7L{MNPt)$rL>?5QLKT*6P1-#JBEQxb4*@n?SX*exJ(-M)0 zX{-KSjbL8uH0qHCimHI>OYR`1=sd=pSSFcBv}{|bUiryrFb*6fa)(955MJ%b(8GQq z)ePyZw4dx0BCcX>3b0WIzD?NNhxIW*eJ?$ zlI`@mb2?#F7NPe1q9mRv2&$0@)XYMSC-(xmbp=aRa65-+nCw?8RpR>W z05Xd&@EEINyqM!c0IrBR!a!IsO-BF%JZM7HO5%Cyyi`vWP(!};DinUToW@nV9l}Z` z&L15w;$iX6JWpFnukSqwOvMACJ!85(gwrtNIU~;%b9Yd#(pvHL{d84)Apj37^IQw$|lKLhq+>z0`Xm>AmRJKc0-6IHYOhp=7&`nd+ z9#kd0e6ouna^)-bBZ#9#4g;JhBTk&JmcQ08({~*Pk&{R*IxK14PO}=s<6k)A(-Fe3 zq5}hi^E%w*&d6VdD7(`kyhKx!gfFxMO zo2XM**M4wJ3Q0`L!a0)D#$&H``j-rqsm>i&Z zZj4cDT2Z9o2Ri;?01#G>O+w#jO;B91dkRCWa0zB&8FdV(LkJawhV`Npbc^dX*(9H*?NcS#45 zLPvPZaO#MpttLEGvi$*2+??ZYP|!Js*mxgU9MxG=Q6>QERw(i->fzTQ@XM01Rk3N> zZKnEhr#f|~HlSnnr5#Es40KNaklg*{M1!RTG($O_nN)pg&n;x_16kmi255Q_9;37j z*6+|TjNOX%=sU6c%UQVkO%o0VrE{fGItVNPhl4mW9JeAGWkdouX|jX$XFGY_Au5DO z2#*p-^3Q{lFp3~V6!D`H^6Zax>ly_`m(px`B@v#AfRn;Eezv%HSe}Rm z`ZP32`_h5x zbhY*CV`9y;aN0jZp3|$dT};9?BEuh8hRb$EAdNvuF2jjWafyZ~s3}xqCE=#8J9s#+ zaf1wh)$4W|_MUpHvYOn;JPu9qe#?)m3@HvJr_qk>lvw8E@Vn~Q5lD`juIQ|mA!@#3 z*yKvb#!SS1@kGsaj+s-;rEx=;CT5H=n$(emiC^V=B`C!51{`Gh)j#vsQ3THxqZvdq_5H zWW0P?(b8DMqgri(a22d_<+u=0vT#(YK*hOoSXj9N+;CVGTkrFJUiu> zmvX%{kxBFXX$3^`jxveD?}iPQz^$xN$^7~xbw4^~Wtvtdv)!6*S4S298K;)l$dAL6 z4=D?z`<5_A#x{m*!rnIGeXS!`n&Kl{ywCQraW6oR7W_qeRhzJ?u`(N{ed*r4?cV+I zY3Bo{<{JsCVYmywF;~=);BwSUoaCV<(kDPZN9>tZuGNMYy^Bkw8A>Q ze1^>s;61z6(LgL@h+zskx032tEVA@zX$(1%Ei!Gcmh@1m2}!#5pdGgiOP^S(`R*n`iX>d-$A@A{!~RPlYHmTslM}^GY$%XVD`(w#M9m~rwT@oj z@P<)5T!9o%USyJxY|N^8oK+1svCvf+IrJa^2owGP0)qg601yZP{RIKRU$9UN6a)hR zKjCmlGzt9)gh7BXhwOG300Bm0FzCz<3mAmLU@;L$mRVlDJ#F7L9m_VPANE|Lh7mm*1Z|LX>C1iwJpj4_f z!bky*%cl@$^zMyAg;Ax_3d8@o5CGZ!qXW91Dm@Y0C0BhL%V6R}Q$ zFA*=OqTL0k$}0YnAMf0x`$G%_j))*lq5A)*N@LXXv&)o=EvHD@w+$zXQyVTm&g_K6 zBj@6*jxI`CnFORz`jmyL2-AqiFyJ)~+ewL|cRZ(%ipZ*>@~q)NzVK^Y<+MnWX817* za>9hbXtU_-J&xKO)~NLI*;CFC1oWmTr}NUj$m^8u0M#o!EQG>uq>#EP$?T^)qwHgH zmM1LZrjCHK`kbmPlzKFrRMb-f$s<-f&os@js_vmZG~TF=Tdn~$2SOMp2(yM zJ*Mfbi>&tK+!c*`XR9<-=&$Q(&IuwgX-m&Q)7C^Xv`P^Cvy4j%B^@ki^`i%zG299l zX08x5Ue8xp)^DUJ)T`=&!V2#hDcmaC8(AYs<>II*bTqD*PE2!YQ!DjKT8`^0>kr~4 zDf5!YQ;bTZvmrhUwS=-s8l!LLNxJfc-ip;P*0EZYy(3_#ze#lEP;EoF=u3-5wOIUq zIKjM}Cfw3lvP@sKDzu>p!AqI-foPH zz`A%;NF1@Wc85g45w_g!8=;qjX(+f9HsEvLTWu=GdJm-K3iDmTLQaGsw!%g@!{9_}WhS%Q_|1%ARQV3EXLyPla`xxRw(Rq+(H#2mGuX zGelojiq4ae8ETdH=EKQ!SCGEr+6(r{T*GzEWh zuu3Y*3N_MF}?IL|G{EnDU|HPP|cr zav$r$Ihgh4M%S@XUhPEq6jAbQA;Ch4u!#9Xg-0yu(rwKB8+c{7wR5ARe=z75tNv2zc@XbM_5ed#g*JpGUJG)hd6pMsZVi93v zMWuq*sG-dw&0bU+cAS$6%i%PQQL7p@vZ2g)0&A`1#Wok7WC|>NTT50=M`-H?TY2z_ z=3_VXLtxV*hsot)x#gcCCHjIdj^%(uCO1aY z1wupWlA0wLOH0no>zjoo>z6qesM$OUr>DfgRJ#tt zpEW3rFhYuDnW{*U0~`C^E3aq(m~1wetZ|PStjm<#sTXIXwhV%#~$M z&2y=Dl9Mk|nL;f#wx1NxcoTbywZxWxt@1ia04b`BQ1I(PW0u}?VoYQcIYlM9Nj=g0 zB~3<2Tp>a-eaZp#!V%E2wWQx&*%abtHYA5kVt+9)Z8BqV>ge9|BZ-eS99pK(eYEvn zc2&MGwXJ&5B*$+RC~YcQ5PM_SW`5O3qEVbj>U_`hFx-jj+MiXq?loEqa17D|I%Ou> z#I!4cwA&p^t-3=ZW&r2g$<9)g0g@c4cyWnqO_11SLaBXYj^Qh6!i#H>7W`2XU@M_j~3;1LeJon&8K0 zr;ztJazob!nj%nj_i)2p6HfjxibE-)2J<4yG08hh3C0)66=Zfo-!Y##gaqJyX6XpI z<|L_KE+tLh+uOb+{j`po7@LrW9Lx?&)hULVn5`t%@YwF4sHaoOBv;jjj#lqv>u9&v zDXF_5lHXKkCkdw>XD|uMs`(I#p|#NCJ7BsusG^;+mmIp@3NeQiYuFf}QVE0e8lbKu zsns%zo3fM)5n1ggtPH^H4?z47K??K?#0n9cl`lZSrm>+8N+!Cq$ErGczPt_``Wd#I z4hmz%F0wwg3$md>9;VVpj;Q6k5wsu~lQqcPkGgfMF|)HEjt^mAIznNvB2TADT|F@> z8B@11*}4h9e3K%!AY$a0+F7D1F)B&apaR(@X&}Q%L&8w+9;l_jDWqUS7eG=-i zl<{S*DDuBCJPG>+lJYO11NAqeT`E}1kD_=RLuv}b|BG5?!P0XnJMIeXMx*(7zvLdj z^MAytgp_$L9(h?Bp?X4c&^+Pk2hf`hpt>N!>7IjlA5qza-5wic>px)fELq)#aWq!&`UKij59;N_G&fkMPoDwHR#+=iu+twEG= zA&OXvsj3u14jycUrkVq+5+n;*;gw0{LNiJw`G*bQzQv3ln{;K1@@@}en>r!Un|yRW z3@tP(b&7Iw65C!07@_+QkDm6r@rNf(Q*dyBb?F zxf(u`@S~9IAw~#>JlW5znO&)}Yqohui_AScLkS}Ag{Vx9%*xeC@Xri5vykdfp({j> zQICsQx1~79oJ?s+8xImuWtZUHlCf1yv;8WgO|DDi6*RLIP@4cD0vP~)m$V$gkom<4 zIl>VlLRgZWtba$GVNSq|kRa0@tDD1_x+)nCygVL0>)<1NjzJU*K-kDg`gur1_)on2 zPt5%h8`Y7_6RUI-!&|`$Y3h_xP6y$8E4w+5WTnER9u+VHmY{q-JYKsgi99HRfHZ$B z!Vt>Dd>)gBxEb}u>3+DAkSb`7Ckt1Ugxm~t^q*QoM?*};l;@og-x_#|OoMyDd&s+S z4w-!$A6z+=OXLcJ9yH3o!~t5QXo(NIArB~hAh?DT>^aVQqA|Q8H94L}Y#tr4^e(H$ z&Dj4Zx+)ioU$Ij+KIGyv%;O`d$qB0 z?F}2N$(c}p&k)~CBU`PM5=>hfF4E(XEL4f;-Ik*CHu$6_p-hjQ%~H%PtXUcfSVnuem@crmHND8+|Av~4*gV$*Kxzr{}E7_7twL@h{E&!p(tN2L4in>{G9Al?Q^sbRX zBuBaV94pqxJ!UxDMGzo-Lihua>9EfLn8ocV!RYLa@j}Xy(ia5ViZN!o@jJ?pe<$<0 zkjYt6@cNI;#0!H<(UV4y+lnkO(M-G|C#i;uSt+1ZAHnFd&KaJM>$gqCE-!e)7|bjk z1U-&fu*9&f(ZG`yqHI)~&j_P#5Jh|ZJ8t|K^F(oHbAc{a%@yL6k?xVX%)lL)m0DlDNXeR~fX1Wj=B#|Zw~5Zp%-UQvWd zr@<`N%}SXw%T*h?J1O7U`F}ktc@9xBu#`u_YNSD3n8CxNv@vv`dqzb&$gyeaiTe60 zV^U307?n$4Kb>GL^w7EOwHnZ*yxn^ylI)q_&%POr+M~2HLo!>kI9{~6!HAz;iblcgi$&^0K%{W7ePJZfox()~ z+T$CJ-CA8NRF)}Lp0V;#3uq;BPVYnN~+Cmk+s%pBhP@@$v14On7ArqgK zM6x%!a~joZ4)DU%K>oHUe@AMfyD0g+dHfmyIu;PP82dn+Rn8b)%GT)cOEB$S9MxHJ z7O!>KC85b4Tiq1Vr^2lin0lHPIax{*Xqwp3xXV`369ZDB(kVJ!-VPCB^R2U8@jjLq zwqc51L#PtL0x!yJ(p96U%v41q*qd2B7i;6!zmfsm?u#3|1iv z15~9!o8$%$y73D}bKxYD7&+Ukml2gilei162bQHeE$jHu`p2-&3_nT^wnT)AV5n5V z+qKHT;*94F$$Mac>oHf#HT4u7IlI6^0AJG+H8*G6B30xVef+eix=+ z=Xj{V+ba(mUyQw<)V*odCnhIYY~vyoUpga!6mxrgM(F!c(FccyRpu5vvg$wqpudYMtaPl)k z2Ah1@v?F{m((h)q*Ri1aCy9hXV@V!(0~g_dAB-Mcy?a_w+fHb-mIiv77mg znxK5>?7GZD>p3KxGftJt)nO9LgCqP5UuE?@q*Pwu#b+&t#YOfKLMm!W5vNI;$~2It z&f6<-`t6?NPsZ5|B>&4|c?~9g77)4`1(#@vB$h1%X8C6MRZBW#*a#^cT0{AtP%x7>t~4;<4g#{LQ@ed!I}?g69|14ouEk&2E+`rjjbvyTkJvNFL=NfhZqyoY@Cw0(;=b`Y|I1F3_G7 zS0l+n$>nMS;Dfi-e8U#AT-UOxw)&IEcGt_nA8sz8GUW5>D9P$Qw(eusTp<$UzU7Dz zKOgrfW!gq630>XXf{|6Y&*qFOPfI%c8E9~vth~wLG7?y3jpWYrpc!|pBnoZeFx4Cu zPzgkqrfeouxCmTnu10BHabojPJsmcfE&99KRNmsQSsQ!oRdvspne{3n8Yed=)+3S^ zOBxfpB)LlG=Q)?M*J@Mm7e;K5YI`R5?&QdM6>_-Db;qlb_TB68b9=nS(Q7L1Bj37@ zT6?d=BX_z@=@~p35<2(BHM!$BLkoEsS=8CyJd5{N3+el6JgS15)I8sCs#$1>RYMUh zL{FF@jg*c9`dF!76UgzTgRQ4!WUbN)a(9z(V%2N&PQ)&lYlms%OA9;p2y=+-C|iYJ zuUhw`amhnl#9ZgcQ=blvJdIl7K98o@rL(7@dRdvhxOk8Vv_?SY+~K(^ji;@)V6vcA zCY0?!+Ds>3pdhCqN&*fc&N3x5D%Kp0F; z4F3Vbp%AE$0z(Ub!k^GsFcu#Cl7M2;fD~F>0F!_wZ`eog75u8Hm8; z^tnV1&r5^Mpi+wf0rv$0Os)5bboMh30n6idskD0D{E^A1--oqj@!gmtLr>YeLv1`BY%+BXer~!_-0mwAO{i1jbt$wynQw&fs0k

qg z3R1S}sOoxVltw8l0-C?-&;5R350xRDF5LOC*H9|=h56s;<}Y>Hsa(r4-l_0ce+n6E`j z`UHNo?Gym*010I=5mj$0;Re4lB#^BpbhRlSNs1cx6*^Np12jb*r}`G~psj9pu!$ zkgLahq8FkgcRUw_Gb`NqJ`sfBSY8>1p|}HsA>i>XCwH`!<279}$;?w;zSLWwrQ{W@ z3l&5wMO|N2mXjpNW2xLix~T32Cb(L1yl*$RtRqhI!ItW*i!zZ@{8zQt%8bn^yJia@I9T6Y&t@tJY^@;pze`i6bsGJcn8NPT^;$Pms(E|YOf$uqs0{}rId#+}ipu1Sw+-@??A*bIuh2Wd@ z{a&MZm4??MZ$0#(Ax7Ant}}G2fC;@?%J8Z^bHKrz5wJ{*VEF(-R^Lz3XJE*=NV*~z zQ_Y&qF6&)F9XImJ68h_Zgf+##_5?p)iAI2=dGHbjz(CE5fwuwY5HK``}9#!|yZIEmfGHWUu(3sO%zk;U>YN9_;_0yPW|OPVvmCS8JB zUdW{{E%#>iCUR1AbLJF5rV9xtl?|cPK8Q~F+`6Z`2co1*oDq5M?G3b+TE<0QBXVkL z*298K1|=I%S*r4zqIGr=@sJc$;>%vi-(5>$A^>9Mq7v)lQqJIk54Mn66|;Jr#l zSVtL&e4c13y`{MXc>!WcSMv&8WSBOO{q8$B693xr`g=(B`QFJnG**-+I%JHG*P}kvrCZ%8 z_4Mu@wrk+yCn+NmM=@IaMq@_hAINwLlAj5%2#mIEQ#hcg$U4r-s;auw&pEJbc7r%5 zg1(9^jqm`Q0BI_g%_Z$a7=O1A+djskZQFvSfU3Gwi7e2JKMuYMI`V>mh#~hLENr7F z>7p?DaD7>?1qHFuj|jJv^$^Hf28dp!cQ7gu?Y=8xhyk%UwvnNH_<3B+)~d zyV#f;c>XkY>tgpo&@~2|NVj}*J0EZ}QAgRWf&7xhmz`4EV#@wR?Yof*LVn*bIzwV1 zI0Ks3v~hDGH&4pDQI@lBG*4f-bbN6zL<()yFei~RrjI7a>KlkSY?M_4#`oX>e9|e_ zp2%m>-IKAPk&7K6LG60mwjvTlg7hPZCcy18iDg=_stqj*EH7?;-#=qE!?yS72{W}e zCHLzie_APX?OL|j1_;i(jc$>NXO8Fw_vT;#{6O@n6a=Q9ELK5k=2FUakaF#!ngPe| zbA#Hl(*H+txrw|fF)=Eu-krV(^ksM_udj$h|k=-$MV@+)dV-lIVe#0r|^w@xuXxW`Sgte5u#=ni~psKnUQso|DMTO^d06#F@7u+yDFp3exSd9_lL`Fd{u=K>kV0#=~CRJpZnW2Wm z3ErFgT?M8NtRj>_05Jt0BoqR>158{~%W5UX#sef{c7WeIc1@;`l@UTDXMiD1A4>QE zz66Y<%1Xp9ZA=0d0j{n-n*O%^oYiF^b&?64#Xc7;@cQ zg}qCfL-=oGNi!_)+_);06tJX8)ldkn1f^$;*x&)%jRtxwJad-@6nh{wFVarSVvv%E zDujV^B)JgPj-<^AnR|`Zq{h?ejLYOuY!Ed%J*BR|VZlv=>1G-&KY9 zrZ97+*-=rZmo!L`zWAV5Q+pCjg`Nhi_w>Ld_ul9H9iYE$Ikp)uUXz?4ALWyI28B&p@o zMk=-7EhUk2_y7;L)~!m+vrf}I*Qy(C}^2IYXn=`@}{9LjsZWZBJ5u?5`R(rz&Da0 z?$&`~WGpp9CqYrMoN&` zH9V3Uk12$f=)pPzCz~9q&8*sI5_8L;>H7OM( zwB#xDI3Om&D+2a{frHa%Cc;MJ6aBL@n3zLhVHjd6Oo4+J+RJE9cFj>nXq( z0vhgNIp}~YCHcHqv461F5ZT<5YBSfvs7XCEAvD_~l6rFF>P1#ZCeolVr#!f-D-X7{ zB(&Ihe#PG#iL92>En_;Vmh5F%Y!OZ^o2Xrtkaq6LHFnq5W%SNsiv(VcrKL(@A#e(x z4?3j@G^^#~+lW?&+%fZ(z+D?H($wp(q%?ga@D0S_;XzhsD^5pN-zAKqf2LSa$*1eX zE@H{3iUp$e%cLAuXC2EUmZ{j_c>d2gdzIYiCGR^I3}W9Cs*ye5lf>(7FD=7fH~Eoz zO2cb!-g}~SgdjhN47X<;i*sgo(~ z;-~E_9yE5-dh+b)sTFY@(f{RywZ=t0n?mOx84lJYk|W07K~aPG<5V zaG}WfF$!Ar?DBo;4t5Cs%j~*P#WwnecKGagLC(PPV`A!U?sE%k2jURP4Y;Ck% z$wH3G0>VScLdvLUh$D#0P;Cn^wF_v9%!9`Z$X?9D;P~QR|H-IA>70zq?8K|UZS9i) z1mt_?@HIjBCeP@lZN%J(B8Y96?d{N(#Ug>^`XepoNX>}-gXqKVNZD!*`Y8C8$xI@o zM9t}{qh~HB21wuPT-Bv$AMQNNGpXxH*ENLhUOna*%vEHO~-y? zjVb`c5OBhXR%Fa?<|`G0`qEBR>9C|C4cNDbGO%c)42|lw2Rj+ePCoCrDs7tF#N>TP zu#!y*y(|JOA^h&kmMukwGLDo$pa1~unoZ906RCu0stm7?%z1>{A#hHE1U5{gEG3C% z*y!SmhP?sgc-IL;YsUO_g4prTGQz}^B2b_4dcPEY7K`*$75@+Ndmi(CZJ*u&VKL>x#IFj=odw#3|~=ghpcLP1jUcs*9U_rX->~}QB-&cw1SZ7t)@O>oFYzNVXwS%MY-N28 z<_L6!P=^u3$0&671n&g{y7z<~3C0#ei-7n@bPxwn$}?`TF)=1ayz)doN8k|I3LPgx zs=DhNHoyq2=8}41^iXN=BhG3`5D4j|l!xM!mofsDz?Fkvf=Xt zIcfAn3LOe36fmb?ZxY=DXee-VqIss#38uv1rkE`WITOehD(^-@1Ty2IV$SodrQ*VX zhCqxY)TFN%|1oG)?VfsX{{zSL(9wv43oiiavc9QqDQeKAOza@?qYH?dJCJ&mCJ6_R zdkE5Ig$3T7Fu)@8X$cb&Q}CANFMKvggtY@?-jrxAP^|29i$#=~Nwl2gD3eDg9SlNS zIZ8z!q8Tr5lEO(EZ%#~jqTWhQ2B?GiE$^cu<~VQdBO;1KS*_Is4o>}L&NVC6mS=X* z;}|h#F0B9(j3M;)ZCM^}MB~lKC+-EbhbQ(lJl(6e^~HYo66r7J3I@k!cSz2IjtV4l@YWS#i+A32w2&8$mE@ z7b%q)@QB7lfV_npR@5LO2*Oy6(n}}!&&~?+gzjER3a~AzJ@MZxu|ziSg6%Hag>FD1 zj?q#_q?#u8QZyRR3n>Fn7%L{GFKW;)W;qv$Xx?>&FHJrpBk5Tz>zsE*@TY!JY6YYgKi!tuW0(J1=@qT|CRfw3szjOsWkK1=AQI5F5$24_m}E+jA_ zBrhRYBRF7gtKgq-~v~|Whew7+%kr4a*D~)k5f*CRq1E!z`}LCXx;`lQCHPGY>#X zuOTsxq0$~u^D|IzJYr9nk}5uL(SbM3QnU-!yhi|NbF$5G0buSI7X-5aPADtYguV6R zMd!vLa-yh2mLbFpj3M~#4(@SJXy_6e%8YY11N$~lc4bP~JSLGxgJ8H%iziRsaY?qo zg=(&1Dk-xzR)tJ9^rTjaCpH3*u5j8Xi~iA+O3(+-V5HPtmCj>SNL%T?V8-cBFYscd zOi>V-AfonnFxfgVT_WsW+i6t%(g|-xhAu6q53ovF20%nhGHS9hVB%RS6J>Y?zd+PD ze&YjkSLkNQw|-Z4hlE~|5a9f%ay3`(v&V#r=2*|o@k#G?$8xrX(wIIJW`>fsV^Voa z2t!9^7dFVcbJwd#CL+>SR<^LHV{EXjqoskERfTN7cOzSc%#TWsVms}!J_Y)cr>;4+ zH%$owX^pghRd~;r=tB-xLFyon)!Hui*owx++UIuMm_(5#+#iP+q>)*6r5@0N(_PU4 z1Z)J)mhml$R%g(1t@7zRG$xjjda<((pyY!?!#GvS6q}+Be9$dpSEBO`+hDMwYsK=p z_F&wF#fVpRh-rTlk2yf<10u*4T#530MV4q`m9~RYb12YBd9H_=kUoUW z?rilhXmX=yqmyXvw^_E7SaPzqx!H7foe3l`%F59!ZQE+|T+-{p;W?f zAC0b4SfHRV66EHNnAoo~hVK&UOn&PsjSzBD%+%!Y;eJ|7{gNVz>;H{m^liA6rEV75 zg0YTdgefP?9|Qzs@c@3NjKQ@cHTeFSm6>x*Rx`5!HHL=5nshuAa#NOGIU_xF16+6E z01x+AQnp6b0(gCv{adJgt*O-fT1ORegk|L2S>@YzR=Thz-F#>U#P-Q#Xm2emQvI(z zbRuFa3$=HKPJX12Pl^&>Wh7PNL0=F16vb#&r?lo4zf6#bqn7Z~BAGz?4L1N~mNTCjKEYSCe%>!A4^aG(LH-dYYM$Vyw1EqslJckm!gZMd13pciR zJT;TJVRVx#m{YjB#k_3CyrabPcB<9moWmj&hU-lYs!l?Xv9;)LItpHYBMB5tH>e3W zhs+Xo1Fu&J?@}73RWCx@&mvN3F9rAxdN1vrx9&3yIK!n+4smsuHGuPpk}l-*F$c^q;C^{*WKF5RQLwgu%DXh_3to}-+Xuu}#NCgMC*rlz+TTB1O z>w4Tc4>D&e$a8Zh4wtU^;U>1JS^}P;=v||HrAUr?CN^Xt+5ad?J1B~GXIcwYnh$UL z7%BP}DbB4bNJ#R!B&$tKRJt#OFuFFRnymdRbGk!Y9GA)LnWSW*i|Zk*=n6$AKJNlE zvkD003KUgcWnq=M6;z3$9Jr#g;=h4B3B={0#U_Wv zXZ9llr3{F|&{CB7Bj+ES!yXP>j1de2f zw23Fh4N$;c&?%Pykq`1BWTmujqgdQHOBI);wT7wgNKTP0*eSqVhxK*#;ygGz3s7)j zY=MFlWQDg$W$=YZ8>63xJ>I;Jx@VwiDs@{XdQ0BZyPh4uJvxRcX_7n1?!N3cIAOJ; z!MzkgIbPZ~mmMt7+g+uCRwQ|TkY~x*ndn&EZ&w-2$rVD}+N!wG;;42{DH44<@8NxF zs-;&`H_C1;Nt=(>x4tDkt#Yq3AcG6ts$6P|od2`9$K(tiXda34rH6RO$oEI38+5*D zcR0^GvlN^NvaQuvsv(T8Ny~-0rB!8_rj6R9m4JUZFW% z?*_DW3}&g4Jr2N0`TbQ&*DOtULVCMCHdsH_Egb6~@5i9tt8P2+AOHXe1OWwsKfn+8 zL>dPPf`Fip=p-lr0)s(eaJaAm{Ro0VV1O80enAL{LSxWq^nOVWgvejfSd4x%7m`He z5Lt{?7Z;aLpiG@{F@Mc1*4wRyZ8?lzr&l`_N&hjSKkT4Lv+~PCpU^I|n}hEY zA)Q7gG>7$er<|$bYdReb^F@%5MXI&EB>IgNr0eT;I?Oh&eT&&(Rjd?xEj`TcV=#<% zw@DqK@#JwCjyplQi{@uwImEi>8=6FMvfIBtwHxiyx03t(lfwMrN1+|P&ys)B0ZQYT z9d)-|zUOc&5vZPKGX(D|PBOyTAkAtRz5p#+vVOh|5Col~E)z=$K`P3g^+Hg>*n>9^ z!hk>z>=Q(WyubrE-KNSCTL8nTy5SZhi88d>FX$6cgaB&99*3g|WMG~+>DqebqzdYl z8aB|}Xx_%?oKlo6ud~-9ug=>Y1+wX4LV`-~d)k>t$r@D}vF)?K=Su8Q0V~I@;{g)O zY{LGyFAEgZf`ExKu$#;iym+6#kMg>H$ZWdjEX_%T>c`HHTj4dc@>A~ZL@|3sN>Zv^ zT^1?L3p|Us(8|7yQ_&Sf%~JDnhY26`B9_EH>Rk6rRS04}$inK(gxEjGjV%s7G;;7oQN$?2is1E$@gdcIbK?o() zvUL5vZrU34JrpaZ&L7fS=}F!QWwM;g@ioa~NfS~LabT`=tn<#m0_3F0tJLD$OSVEr zqTz5Og)K|YCDi!I>ta~mwi7EZmtQkVkA1C@GIK^skMwPCA*+MF!$|ey`F~pxJ>{Fa zh%2RpUAhF_p*Id|{VH3SUo1B(xhBN|WY^5+aouw4qRUhI4c#xuIr8VqxZemhh~zVvaCzE76)eKwpsewPZi5U4J=j;!Az@d z3vd9e_v<#T-jFIDkm1)QZoD;%J%sQ?;^-skC462-B(A9s)EET$X9$SwO> zVD~pB!)DrQ&)H9~&`*l_@OduJO|bpqIs9FYebbMq)aurfieXs_!89edG@D3q3t%Tb ze5+>Q)|Zl0aH!@4oa3fw4zgP<1+~d8H&SzmSzlf3rMWq>YF|j(6KRf45u9@1QP0Uw zb4HxfrFCkhRN)$0FSwv8WpK1zy9`C){SYGZ>b}{jK6ID$%vuea;dzRH>QGW2*G8Esd6aC zbJAr|*%T>6h3=C`Qmjfz7KLT`mM5dEvQeUJUWef4HDb!hWBKZjOf>m5rtou-Bdmcd zlz|swn;OhB8<2#?KFa4Dn_0;GCLk29ld<|^TPoU94W-Kz$LPA2v0s zE=jRXm&m?)%);hZ*gKnCk<erbs7 z$$A+c6B))I(eU)iwml1v8Ih3;45H0M#}&)65liJ-4>;z9As|bmOi+>N&o&T4sft^R zD3w7p7o>cl;!lBxPK_Kh(<_Wy2B9hB%chwufMkgypUR;JBPsW)YZTH+S5kV5 zI~$_!JeMPeK5>lUv^s85Nt+c;{f>L;RuokSO!$UW;li73Wr0Cc*|Ph~{B8gda+jsz z;XI=hXRB+)MLKr++{k+}Gz_K1zqSCJPt_PD%pNhS_+sMDWlp27i80eAT_Mwq3Os12 zi!XA;R?smyIj=~eO1mD9iW_#W3pv;}qL7ISo3wSPi4d*V()XlN#4O54jw}{JNsD{O zQ3#a_O`;t0DPb9U5s^1cM*c@0y>(UTq{b0fx<%k>Ix=z!4zdE4@QMV|l2f^6PWh)3 zEEQjMC604C=K@*{lNGCGISt3f#-JbSC1y?;A6i<`S(#%wH!$Gvr)A`xo6C_au1^D(I~Niw$UaTgj`*F#WqbRum(1$4qZ!OtOkw|=xBlGel&on zN@HBLpMD>rew}5qaiJjmASbD;!ItTqowYz!qH3&1$FUc?oK}NhnGu2ImWnWQXy6O^ z>Lxjy)*LAqpr0-EU$G5t#x(68Olo3c$vw^4=mHDW%4ea z;0Gt<{gCapm2}s;mve4-di!To@+f!y-%VYc57W7_E^M@(&<7tQ9CUM^*mRnpT`>k1 ztN9{_5`g8}r&iSC3cV1E5^%C7EzVl+Y)ZV1NfltBo^>}n#`QX8Xu`~B9)8J%mbFZ( zn2yoWKX=Ty_*Q8#m2W#$k{pni08$Ap6B)qLht5OxmslBBq66i{YrdfB$?E%!vVF}WKEh0 z!!PjhvE}f{IRtjwn$j~$dH)!5dB^K545Z?OWT3Q{NjYwK<)mAAOk=K(08c=$zopRF zm05gTfLIKVNe0S_Xybamdu1-$+zQ%NwuMxQbrdcYBV=}je{p9z%i3nUcU&dHh-baW zSSL1a%;}YLYPzFyg|+!7GNl;69oJjcn(Wep{$4;Z1);Z+M6%-zE$_67e)4C#E6IG7DzGvv&ytat)bfvQd*i(Ra0-||vXK{}yYH3K ztF#dxv%5Kzs(P-1q?rQ>05AXt(k=ioFrvXZ2p|D~JS?Tqfg5X_q3(uW9WlZo6Enp(L!Th$IB3khmQtB}K!W0MF#0|+2}3n&7< zpzXI~fT07st)i8efg-h|s1EL1m(%L53+ zIlK9JFMG7P)0_^Y$)zith$sUj={hhWARmHB6yxEKnGQU_=aXYorK_ByK~LaS1{^T?_FCx2aTX)F1jAEkTgQs*;I3#lvKHMf&Q16UxbmwXLB) z3kul@tn3&8?w(~jjN-#SSvt<_W0!f3m*DXWVzmnFzB~Bsv;q+i2`Im#5+ZAz6HO&i z3fLsNo0M7`GsN1aEgdINoySpal*C)ddciBHSfZ+A5R;yb3uQmFcs8+win=~Xf@ell z_)~jYHDkZiF|kI7up5GKRjg`@BXL#e(NR;~QY>&*jcGSbAQ0?w68m1KyKNN9X-8rO z3p?sIW2G3y3rDOP9Mq{7(Lbwvp_@GJH7is-69owy4iizxz-wASlNGu|hdHf3JOwmJ zq>D(!385U0G{6B!{E(WW`oV~*LrERE(o#9w7gH)fJvop$c|{cff*3g<%=4cYd(yb7 zGtDv#no~bW8C4E71Xr^7Bv8&s#EQFe+6%%yo?2K`;WCZvPD-*Cdes@1 z5oEDXvDMM@F4c)IOK9Ahg((R0tsEJo$f&6<6MR&e$HH>as^oYZg)yze`mwR8(v(`8 z5fT78PKoH2%)^|I@uX9sY9UD%Es-S2S%fm(5RCnfh$@#aq|%j3c|DYDkrjuE+}=%b zR4yUFo*3D^?I%Hy=!t3H9tArSsap!{7c4x?ObJ(yh@F5l(z|JKbgv_~*IMXh}0?63{B)ijPhyCd-)YS^zqfyyP(d>Q=Dj-I|WzrC= zgZMvIfRa_yzPeb4Q{?Qjt_G#y)-xjb%DnFi6YrAYKRd1ZyYng~2}2-Y>M2GSF|@@U zA%bp149?b$+?9z_*3ID)Jo zehCUX;zB>88oQktg|flHs?tHvs!I~=*Uyx34W1F;d2qL(X4Oh*Rh|YroL-QtWz9R_ zT4Du8q3q!jDzmO2Fj)~sWnYsmV8s-)l+9xcr)VxW5q=iYr`8M9Io|pW`HcvB@PNS1&$R)ISdnsoRSLa zyP-@vo+cqfy4@*ZMX@uA-#f(S=(U$>yVIRj7XClnEY#dP`;giiO=zsmc!OMYuC`-o zu0Yl)>Ua@RdOMUpD*-nnYnj6nB7(wLDoBC>(YH<1@;7yUNehy#i zlC0Q&GSlS1lG{nuoXRDXtAdI|YU%Oth>CnCFz z%EaTWU0O+^r|#bwbW12MQ!>DsnmSV7{Wn{Aj}uwNkFm`{BA`suCSsYP%yDhG67#D; z$)M?5973#&279xcMG|n8NF1J1!J@cb?AMYJ5BZ-fIp;CUQOAm#JFV@C)kGJjUN!uO z=FyCQbv?=knb82K2=u{ zMBYR!$FrT+NeyMAyJfV0Wx*h2))(dFdeb4V%6@WY82IKd57+t~xK)8d&4Old&`9Wt z=8Tb8Zfe+o*I1LZkR`GTrfyS4Cz}qb;OqC#p+2A>StZs2}(N+ikigvt&K#SM>Zj{9mKXIH6@*4@z9>?^V4p`7n4eN z@)xN~g%AEs-Z?2b_aS!)C>hHgO221G&KMIVvZsN|2{d6ph^zR;5pEF{kyj{9F2(mw z#+A+lh-If7+7IRb4-b+kL8U;=iIW|n(ZEX1XLp4ZqsXML1%EUIPj&+-oni|Xy^4?WemU*gj$f|BiV)?$IZgX>Ez(52K6fuj;y-$M;J0#w2P{^1zVaZy~WwgYry$a9+;6lRi7FQ zt&qHX%5Cu_Q5Iz+3WhpGvSAF@7Ykii6#p6ZkC$<&3R`g~LpDMhSv`>&mKkO>GG`sU zxhPOtJ3-Z9b~|0ECP7~nWo%FPdwkS#N!xK(EB~xn%o%1ib_y1SZ3qAY1p|UW-|$cn z1`7*@03XnJXaXPsg+xG5C;UPh0s(*@Prw9p00E20;E|Zbjwcd>N@UXb8~R5TmC2v+ zc%(V{00Bki63L`0Co+nFW3SpI3Ue=^MP^Wt1tJA90m)+U_#~1YNs-K@5{b>A1gQZkzz5|%4@-i-sF0~E_T43+TJU%~O=i_f z00ALam;Dx}JgMVkbGRJ_VGGSfGdakXno||dRsfWG_6{Qoky(HMTK0w|G?2yLyUa9) zDSF97WP9t(E_YhOaiz7LXBssaI&1mZrW1wI?f~z{HpAPAuO+HVj$2gk~2>&CoAfk0)Q{`D4H;GV%XuS z(HlyEK~dUL#vx2nLd(N&%38)MXzH;HNYI4WEV{BouL+^lOHk}I2*jAaJCVX->Az8e z3ivtb#Td}hhxzvDF7%ZzL7@!1Jk_mpDp&!dr}}pdLMmIPoX(V@4Gq5z{I@hL4bmWy zPXHUyExyizT!AzR5^~e4@m%hwpl_{I;wleYD4)=?Y|lZuFIA%9N^_(1_D_l8o}o|? zlsOt*(1QJUuaXVrc>pyUV*}o|++gXD1PplTFDb+_^TG^a^h^N3;GLK=zo4^{%6BdGnvtu%JjBAYqstFFVP%`AwWZ2rSU zp{b36nFLjrN}{}~i~pIbI4Ub+GcgG&$bBr!Mh>;Dt(>?QBIsRBqX^uL%D#NpoY zi7{(r$15`;f80R|K}KN&EhQG2lzSFeP64MRXP~alVplS+p|d!Z#BGhknNVn5my(l$ zvkclfbmd6drG@r(U1OU~s+D)W7mh&}!2%yhiNYD>JeitN;%N_kiKhdK_7MXgD@oyj zo&!#INW2OpO~xgYlY*WZsl+2l@(U0l@gY&q#cXzeXK$yMWZ}=n40U}JH^^kFCm5i|R}_vmiyc79=7S5$V}l}34J}D$ z3j@`X(^WGxggn?fL6nTsJt*P$tvL#4A_Gd0r!`P2Cw`1t%UX`+y%4&E3c}V?-XaHe zT9Bdl8zl2FfUZ>GoH=61q%yo?Mxd!4rU@mCyb)At$fC29M8Xw2{UD1H4Z9b9WK*Lq zfT<=36_T!cTICTUvsr!}mEyj~>hyT08X~v3|4Ggv@|!y()_Ba8GF2X&^n^72elx|&#M0_3KxFzQPG&wo2)q|>@ETq* z)?k6zVkBO?PRK>jG=ULRBP^mPhb$EDLvd1h; zW$(nO`m)rGXm?V6vb=O+yQvbNZ%)#OkjEJ}-J{k?M;Z>g$+C0OV(~~I2;8QaBN(eK zGa%IRp}Q7+U#w}qnG@nenMks>T+=9j&fPyXw6^M&G#j!M^~9*dGCv!XiGrE48EO3K2=g0i{RTkKiHwlN`c z4nIh}5Rfui?=U+PdsZnTYYuTUO?G&~Xxs%-GyM1}gN&sZ4c(?K%!bIKM%&cvj+!j> zib)~_ka46lKsf$%vNSgRaXMREET#~Z0;Kh!(#JWpGF_uBMQdMXA(jp~Zkzc=LKdZn z&v0n1O7ix|km(hmXYij~`ohT(9Uab9itiQ)nMd;!&_LFBlflw&qEwxlX9&`1phYE0 z+yU%rP1YjXi2RJmHqw{*?sI8cc|ld0$t%*b9d5<3T2sS zGj5Wp{5*!VK`@;&F`A#2XfiI94Cd7DRpMf%V#qfE!8;y7X&b?$*H$8%Imvd2Xnzmd z9)_B39)&Ir%v+n0-DJ0N!Yzx!u0>tjJ#IA0%lu|VYfO}+6}!ST6>sMcOFTBFRsjpV zn;(ZQXfg{1d#BEMN@?MCoXLcpZLzn@WbTMw>ikVtjVNa%&VwAGI zG7sBUEJN;`lq~yO+Xpqt*)n4BQ}~J!q*_Uj639DrH2RiZ*yUg`( zPAGdYPktf#!B~6NyW*GHvTX8|ezzxZGkS})<4gmCuwuL0L}0RI8b{(@QRGBXrxIM~ z_}?p#hwFmFDU`!vR)Xg)P3CMfzyic%jINAKW=N>zjq;rWq=hV8h|FMx&JuD>WIilz zpRAt8NbbjrqHe7)yNZJG$fBL?y61@Gy=*M_<3R#%BI^uRFb#y1B$mEo3fB)BfoS;X zOq}SVh*j!3;^(mDzzQsiW`_n0*Dj`}k3NP5qAkR*=0^~iZfxwRG&6}}O`>X|4A`cO zAmYtV(CrBO=%Tu560@loZ~|l>WxkZ(rcOemkmfy& z%sY^BL;^G?ae&^Y%yZ?|bqH#|Wr871D9vmhKWEtP?!ZH5Krpf40E33AVo@DXQn&1s z)X2XS?rbL}b|$XyPbVbADfHQbv@7H;Os;5ZjBu4sHi(g<01)E3ajbDKuzMp5B8PGh z%3xn*x~%U&Ge;1Y5(^V4l5b194&x+Es%s+6pe2zmqQU&=6Z#du&oY7)D>g=lI>_p;iR%aZh&jTBv?aMT8A)n;;|*>4BJnGE#wU>1gMtBT92k8ov>%P?=R0R_WC$ZeqWNtY=?3{^2?C6KWQs{+?#I_d)|ERaMo3V23s z__U9HFH#i@gM6@W(qn9B=ETJ$qKGS!qDa!zf=lE;(TpMq-1yGQ(Cb7aZgSXOTtCG((o&}#{s(g`Rdu!so4*_hP z>82Vq1#2!2sU{PuYJ>iIh|4C(mSO-wPeYNaFz9$f`US)aAzh^TDgTVrbFI4O&B0?zVP(tI@gNG$9ZD+jK|Zld3B8Dc2aory!>;* zdghBfjOgmKT0CdK{nr{bYwuHw@~y{A@^D=~wCZkF;K@%I&GES7>4{yG{(7)lyR#Kl>fd}y{vrzpFKk9kz(i#FD|Mss}S=j20g zhe`|2jb)Iv)>cubR7x} z=B}u$7U!#eR!0`FWy2LnO?HIRK2&NzwnZE%DFz8yq}JeEQ-X;KuyOC+Sva6Xce2`T zY(y3>p?XOZNOs3BVvteNI&UDm*9nVyVK8zsaW~lW?%xFKn%5*QV~UFOvKZRca3~sP zhDaZT5#C%`oXrF>BcKGDWnTg1z{aC1e^!%)bgQc7A(eR}9!4iJ(~m`_1*vu{j<{y;|F&^H14~Xq$A7E7Wb;XZ_t-#y1o&+Jy*PQ6WVRA zcTWumtar}yYcT;>nU~8+cDS8>Fbx=kDSo!5$F2@ni^D3(YYzf9ZA}uS!$kvhER=T{ zEtnGoRvUFtOM%c%#&2(w)E}&BT3y&Ld3SPnxc@rxU9JvP?J<-s$+?7AC2ep6Bt@wr zCayyIePAYZ&310+M*9SPmW`aCxZM zQb3U}Ne!zig72NiMxnL5>=gw^2Cp83f^m3kP}?he_p`!os9N^_fFedNZHz0aA}9-KaehE zQpTM&!mO`W;(Cu3=)h9T?_@ajH76X`L-b7z@JdPE?j{VV<tsEA2TC9@T2q-Cqxs`BwY zBCK=bVfZ0k(#S-gr|a)2(o3!i5LecyhOy9X4UyOK3*FXCgYvbocI2;!qJHVmUJdi6 zbYf}=W`pL;*aVl`l9He7qJzpc7ZmY0*L$@F`8jQ+Bd)?SW-r(mmA%>;cY8m=7vB0v zg+-mnc)L&G5D{;8r?sWcwfpk@j~m06xQtWRBEx5Jbvd_;bGO%nxD)e(+QqnvpV>Sg zxfylPMT>sTOBV&1e?v)snf$?p4_peWFUEjt6kV1&>^5ePwns9M;NQGzg6f^`U$3JC*( zz~%CIyk3)esnT@hKW;M`kT2-6D$%qk zx*HEGX#_HAv&Qgp@bka0L&m`? z3=&MyvCfufy*I?V-6;5D!lr5mS=`$V2DDrf}A zx=4aC1x=7@l+H;{RR=mLQ<}p?x^@)crB10ei7mblO#N=vYYQm?J5znfa7~Ye({sJo zWbHTEH*3dbyp%M(cdUy@0DU3pO~}2g61ovI(bs~11wd&es?D@_%-drv)D5X|q}2-N zI=wXHqU@y+OT`LJm?}qB%d7M*gh7vrvmMD!QZr+zE5)HTt#3F4@mr4@?tbET)A4tTV6e%%UsBVvuP!e zk~-azFGYM#JBYT)%v{#J#3^-gg0r{}pZ04DLWU}i(6Fzv=vz|rHh}ASDy${~wv~aq zT5MsE7177R~`D};S0_=1~L`0QE%q-2RbRx-v=k0DVhI)*t&8Zz!h zPJACN2Gy)6^jimx*;9R~l`NxH)~?Ui=yO5-|Dq02&o*8bHwE6QOTqUTu_XQo&vJkUD?DyY!$XChB~7OxnM&| zEx$aZv`z|SI)F@=t+Z#%u1-WDHRdrTB1cN`3wi*Ouyxb2<&I=odOX>+Lo4$DK5d)xDTZs+A+ z5!l>MmlJ#`hT(-lMx#BIQp!ybm5v~iH1Or((matVE=L5QTGrCsmrKy@riJdXqS5S& z^D0}O$k2Ww{J4P;vW~bT3|nHgC&`VNn_@KT*gLZ38JYcoQN+dvTB?1?uMR=k$mN8x*B(wQ>dhw zZA1EAwdv0?sPm+EG>&}L5?wdtWo?|4wJIcsT9;$dv2-(4q8jT4W3D-FGv)TE76oY9 z2!xo9&o&iGiunp&aa}6y@?FE@a%=3<|1^yGc|WDPmDJigGSLXqI7NQi*wcJ(_cEfp zRJCAb)aAFWg$Uc|0~JdY$SsUjKHCM#MHCqSfyM&7)@Mfut%GN+?wRfY7Cw+1^mV8= z)!V`17EB?P^`LJ~q#LKY_6hUQ80Rp}W03l0FcnWYNHv$6pGM>^#m<%P*SAsB0WZ`y!ZNgb%{{rA^))L|LhD zC1n{{P^CmB`MNzIV)_AEML{y|Cq`5T@{&(%##@ahQ$%$#Q?&h$KKX$7)atHU=-TZc z>~AJ57R7hZ9SS+;l|yDZj9lhG`_ZTv;LurGcL(NsHRxtg&gmgRs2+H3u{K7vY34q% zDG5dMIHE+g>a8RWt>h{@q$^NHTvVmOAHnT)6N&;K%yF#qD zc1BIB6T_R<6-Hf*p_W@qPBQm@S4gpic&T{8ZxS?RjeCOY((6sD&p6UG>YwQ{2w!xm zf47q}OQRgJWY_Xoru&|s>B8e@(P`k>ju!jz12y3!+~>?WpwgbQl99Z?;x&{GXdae4 z&ij1-rLrndYW9E5%Wkb#c-p*Ag<-j7m7_F_=F;K|P5=NEs4zyP>>92sl3aB6WgYF@ z^{NTuEpxgbvx5s$D~C7D4IiJ>$oKbSCx^WS)^%ABrS5g;vd-5Yu~L@KbE@WXc>OYL z_aa|h)5Du-ZuV$45pX)OjAG_fZygQ5Q>>BGFL^3Wp)EPc4R0oj%iA&0I|r*=Nx!*n z?@8vTkv+0H&TvM(Cu^Ja#Qqd#R1!eAXV#Ki?io$#ycn$I)klA1lO)7$g88tvZLDZH zfg`q8Ha#^}=xnyF+V@J}RydgADNmlo`beyu&w+x9TXYb!7M}a6y=tyL!2ps|0=hYU zFnR+pQo^${3+qzCZNl!IuFbI`F#*^Hsdx7u)&fXXyLr#Df(B#Dw5o3*8L zCXa(Brc)@m;m?r<^sN+>A3 zwHT={lp2hSWQcIMlw1R>n0~|10gdpSi1@)5+pDMYB8nqOxLGTf93Pd;I|ulV4tM~x zXoRG}eWUvqvTIA2JJ*(Iuo4-V9nh<@Vu&0O#EIyrCP|BsV3Z!JWN>-=G$GbS8%mTS`N863mf>y+ z+9oD5^g0=mx^ZVWDrCPwmXg8YvGge}8+5>_{zuiOLe3Ny9y3iw-+eGuv^CL^+KkQGhZ=l*)3B2!_V0&B*bL2zc%Q z5UCnVXpSTgr!*KBGar}I2$xE)Ns5S;+?ohmvN|%`D^zu>V)ngr47+-jrJ(;iv#+?M zVvm#yH?fJn$z3_~<_GAgM(dfXDTgUUMydjGp5j9~SuqhXjwIYbGs(pnTp^>N-^K9O zjrrjSOV0^%f{cvHL^Qn^BK|r%>@Psh7#M?&3pdap&c^ZLga<6arG{X8O2IQ$eM+(i?OGm=pOM=5>n1BLS(ecL`5q;zI!(8PN)fEYbitnjE6vOH}Zz+WNe~ zF)}EPOE`xNn$bWbamBdAJM>QudG(7NGL0a+hxn;Rr~)T5_sj^Nkm^c8knzHy1j4b@ z%e0f3yql>QKZEPty0b>hLpBhQ+KPiuL)^^Kgf&1x)hg(>QUx-WX#pcMg0Ik|2e^lT zNXW{=>oB90iz@Q0ig^@ZeWRm<(~-)<^cKj7$_L?p5lJeun^Vqe>`pnEE1Olm!seP$ z5IQTXC;b6baGeY35ls>}%$NWGMFPNGONjy)I-@4B8gUMAhk!gvJd=4AWC0lhDMy0LM7-8ZScyFKAWh5U!T}V`%5aF2vWOr9P%PRy znMRTd;)%%;Hj02HVA$2erBfYYH>vNGz^lCRXfv47xJubG=za=-0})L9q*(ZX4K_Ed zp10(bO(5Jv(`T954KspE$hylIQ0iAULQAVe%diE=3P>cCu> zsjIF`R4msibGaLj$*rfo)08PpomtZ1N%NY*)DjmhbC$OYy94m3EO$5R#^+%|b#7VPWJ;6V?%tJds{lF!alw}~@Z2*ZV?h`Q0 zhQrn)bvS0 zJEV1M2(6nL(y3VSL`T_jK@9UennMjqq<}Em!JH?`Gv-IAtNgs*$1K^643mG|@gXSMvO|!$sFr?Qp zY`Y{p^jM*EuA)pq@#h;LuFF8lh=c~Mvx~dAou$1l6MY-7vtH5F8q6wqnM@5}#vTDTgLsR_+pzL}K>M=9H@#9O#M>#EFD2<4{)V9_rqmX@yg_k!w+m9%L zTVj~M{J`DJNjP-rWjm~=MWZsSUB**iCOkS91ZU^UWg!Rvpwr+>E(pOn7|q+G#Pyup z$j0S~%b7sWtdIfLOzes6UzXY;N(#?R@tV5?XqqkSLyI9|Y8SJ-6bqJ)O%>X;1oMrA zwm%szJUNR(EYpcJI>dnyqv-b3V0_CilaQLg*G!Zd@`XcLH%pX}N|5f!E~dDxq!(SK zV!iiTZc9c$>uSCy+Ln6D##9shE=kS6$>N~Mey2Oxx0jpJXca#TlqHL3#4vqJq-<1Y zVb<8`by+UE3p#jZfZ*mjVi5?t%%P-BdX?qi(F%&9Kr}_CSe#G>H_p35FnI3K(gfU$ zyQ=vF7pt?YUcSr$sjGvyV%(ZS)~*ja*{ETAE3=4=bH20|3c2}3)ouQjYtfQ}f7PVH zB$6>r(y%59V=L*Q#Tb7cH1oF^!^=aXjT&sp{N3gg+lhlVK{VJIfmjLQB2La`8_9 z7vb({3qd460*met-`OP*P>itdj;BD0N(nb4A)=X%A5_rfY%=od(NAd{rHB+(R~@3= z1KtmkWH`%UmqB=9&kC8^z73AJuyt>!84XA9kj$jv8-#*SVfsEmhinC#rtu(NlUFfg z1d}C>khsx`K{}wSLlG4<%LbRY13upHq|=23C!J(udWD#Unnr@$WTP@~PD|?!OpiD} z53)6vOynF<`|o|Y%qo$|ot@OAcADV!tU+6FzKQITISsL9+}6Afk-}fcJSA+~rQR42 zs^vWh)wIk4*0!_s7HJYuc_m85yp-MF0cy%g+HjeMAhg^%p*WuUzsw5rv3D@o@Y3Cs z5Y-U{&xM$&Aw>uq&PTmKu|()})ia8x=JgV9_UoR^ug7i&hw4${Q|)&%;WRVvg5Kj;Is9C>vIQ>Xs=e>?`s= znR(WS`LTTJ^51k-s_jMi7jCiDBw;a;bLerK+XmFo^cax!@%B<`?m5k`gnbnUI*n?u zrAt)E+s~1JJf;n+d_B!|pTFi!(c0@DpExIKIoUR^OczqLY6n9dNt5 zMa*pnQtcA-?Iq8{ZnVa+ux(dwE5SaI`!^DbF?iRj8DiC@Nuwl3EWs%fO>c}dT0d@_ z@gVclSz`^}g=2Ls5sNuN_I^-x>Pq!-3|CpVjUThleug1n>>+0B(g9qa#K^0*X6Zp z%-{z!fxo4I02CfD00GJ$Q99ff<2R$oAXV$6Ut05 zRcOQVVKkaWsj+K(A}0T#NM%fEl!0bgXTO`>{jw` z9hJr-c&_Z@9RIG)E4+@VFB8J7zwMKh$E1i$et$S%3vRhVkLobGzG{mUzafyKriG|b zpa_Goi3^(AtSh@pqAqLlKLVvN!d~V!P?8Y4zi=v$gRE&g#G)zh1CYBy@d7TmJ90X5 zuf4F-=<_1!GR)zvE<=pwy>fa9Dk=>s2*N568mS+@4-*{jqLJg6{YcFeVFEZ08qT7* z?Fw?cNXSwwfhxz_4A4x@IE~dZR41MK?s~}Dpcun+^9LJT(a62`LDj-Hl`7Ee$8O$gnysK- zmj#}G(@n!wJ0&WuGQ1~l9MJ(njom9MAXcswTEN=E_)AMlQNW{yUrK^h zh_JCwmV~mCU|PLPJC&|pklTR_O7%~Slpk$A2&vqEP zq}2eLjE#MB$byoHQdm|Y5>}@Wvq4pXL01f_L-IJPM1s>44?5IbG(p6q0jW4LU$*6ey-3m5OMCLO-qqtJx;eJu+8K}<~vPj@v4lM`ju@E+7 zQ<lv92`S=oj~EdGuyliKwt*~CjM!4JEJMDA*-3^0Hhx=#~xOi|@OXJjP4 z*9StU9I`e=iuziiH89{(5+7f1&bce;fWvArh9wml8k`$BGMSl+D>K1H$Jh4fXsVt# zj*W3jQlU%SI@+Rd*T*kN3gPSm9c_{Jr?89xGwU2I9N=&47*rwnsd zU`+)a-8AO&QHCjR3c(7kn4v21B`c%#<)Bj12p|rs-A`m-f2p>7ykSM>v$=6(9Mh1= z;t}R;Wa0#&OosX|fjdO2=-rt$j|pHDwpYoD+#KmNcC2jMNeNo6$(*ZykZR|ARTi!n z8$0lbL^)?{fbu2ALyF;DJc@v;Bz*-lHYPgCEAVu1{Fp5g zqgW+dWVK@U4A-gAtn3<>cr_N2L7Cb7n>ybKw4zBQCJ+Lu6RlSWa(|MKmJJ&$`8QZe zGRllWre4SAtq5ayCgy#x#=G$QW~Jq8(i(A~=M9CXOV~!1Ox30$XM?pYn!x(eFB9_O ziQF#&Q0<>hHXBKPm>$WUB}HMZ%(1ZGXBRpt;X*2>n)Tzjn{JlVvzRM)f1Baq!IFIj45VIyZSxpFGS4`2`&bK_vIlvCCGa`{+ zje$QTomS|x`>=F6bym5{UXGLkJ=K@m>?virSZl8wIW?aPASFLq>)aVJIzIL1+b%r>|z%R>u(x3Ha{>Wi6V{%uH$K zR7_9+bFBpUOfJu&NZy1xpk|bepa8|J9^)tgDZ_^Er~3q~Kp<>HHjJ{c&>EFU#?nnd zbH_sHtD$zmBQ^j(%_mOqnN6-3TV6gmmjm zGQLMzy-UVZ2!Jx^#BilBccbFTt7Z<8NdL;!$V&aaB=~|tPAe)EogQ^}k1{C?sa4hMJW~UtOM+TAW znsTYo(5f2h(CFkwf}SmStO+8sPA0bQ?#Yn4wL+FFj-n~Y4311dv4Uujq&DD7{y#)6 zHX-`Jg#dBKl4Qrs+z!gd+CC8C0bT!0|=(JLyS@`@QkU6yt4#aDCM+?j6vcsMNYJb1W-2-M8z>qYr+>OBTl-}nwIXA;7a~A zDw;lRnnlbAHY7^#B@SV+Cle&vN0Bc92qsDj$T}|AkxOd63AE*=x_Bmf*RovK(qvQc z&~fN8If_KZ#v*hNGZrXm1`g&`se~j#`p(4imgpTS>adR{!1HAgU_AZ$EBx0E*TI?|g525zervxZNM>xm~kmtx+tPF0VB@m3II0*+tDxxdnM+7W4M8%?|DqJkkQy7w21M-;| zBA##Mjz$wYlXI|QO-dreVgN$0pau53;tMP5P;7^SJ3tIj5bB4c)*)-cIa6M5Bat-Y z=5>>-LNK}{tz=08S^tX!(>-L3V0*1 zc2M&tN$6X%3UaA6J!49Sa1bKU<0+@o-DC|fh(eps=Li4*0OUxEqLl^WLZ@=lr{zj@ zhUFh|px<+!BSSY#rlT_IdVZ}? zsNxROH1dLtZmVN7-Ad4FgJ?0Tl4h!KHtqtvq4tVk4t7mRMDbcXqS!!6-v#fUPE*!= zY!4x|y0Y{zLawwq^EPv)R5xgMQPJ}_1HO`V*mD#@H-;Ed!(57B3oVVtdh(#3vjkIW z3gWVFBvFj5wA6hvPOma;7xGJ4XfseU^f+l`?=;$#GHFebiagSDB@SaKLzgGYP-)hU z7${9&boT?Pw#Z2)GVIAOB;K@QXi^f?>vJS!5O#N#RTTz4{LvadDg5ig?!bj{6iVY2 zX>nX?g7UC)Ql!R>2`1Wh)K}GHKearU#k@v^!!K#;UQXbPZ!*88&`OgFI@VujuJ)ss z5o2@$F(e+BG0#S)o|2I;WV7{QWL;rr+%W@THc(X{X>KBrltIfz^>wy$69$b2(8%iA zGBwH~U=W_>5mM}5V2o(*#J4CYs^Ut#kI-1+Z=B}NO!o$alr0@P(6>M2WnrXeSLgR) zE2xraSwo0@U8XcoV`RZrur-BTR}mXeGrJ%{e`KbdXN5MjV|syA6JU+y3n(h|_fA~` zaWZepT=lhjYcBgUH0yQ5kcPM*@QQ87yIoDv&UU9eWVaSHAyfmOUXg?^Rq!s?CZB^> z9@I?;;g<49a&L*X2%a`7JF%ii1&g=4D|r0wYbm&R4`@C z0MWUIa}sEi6K4n;I}(gE?JoK+M-PZjLzt2PHuF4KP9jp)BIVTbQDcCZKrWEiio#_x zjHyQyWqfLsO7U>tWz^4yK0mQak5C?Xgv#vZDm*zuXLJ!4c)Uw#a%(p(O!Cs-DO#E{ z*3H;+S~zMgXFm)WzLbIq7;=YY(ne+K_D>>K-z94*us9_l`if+H`>_ahD1ZQR*?s0x zQ0Y)MA@maHY3RH}5ILxS&~NT!ZCVw>{w0))27 zXPuWa>0N0XUu=g}tekHpO>E5~f$0!rq)K-YziOZX2T(dGi?Ma69ICG--8P)ejLt(= zB^Fmy`){=zF^C`d^k_8ES@KN$c4XuYaV2HrkwceTNsuiiXI9wmfmVJx4}L6Kh%2^< zCzFOMh2e%yWKl0ce^m2I%;Ap?!KOy_9my2wQk{u~@N~pNSm|^|$bN+dbVB!5(0C1& zcTqfJ^e=)?A0qjqS}-uw0*YvZBop7wI!sgdNw3%A3~16g;}5DNrYMjSdTxRSzm6bx^&j9hI$(`F2|-T(ZMI@Uv4&J zLM-%y35XNeE;vbK)K(-}n!>wSrE~+dczE;GrCqB+^_3+D<#ZWR(3>w<0oiraedRqSX7Td94H?m7D%eWy%czh?f5E-Mps<* znl9UBtkDd5myZU4r!kNZ?801S0L89?^U%4^siNfg?xGnKekuxIM)^E!6~w{+%kWFY z#{Qgy%^Bp;RMhjuhQLJPdM|@xrxOJ#bNDGj950)0$1alHgb}hLge-3~@-SpT^u;R( z10W(aG>@2XaDvcNt;wbv9&fQ-s-};Y^l`6RBAJ((JfcgoD3#fyC9#HqYp*eL5vH34 zc3WcV#9G!u=}#f}!A6sgRy5(6GV}DE$)WwxG;0wECO={MoJJKNy!*$mHQJf@Lv`u9 zSI(N-JlGjfcP%U{TjEkHGo#U;+HLnbx*`HmvyGgTc!Z`H#al!$cNvE&Yny!9%|LOZYz%-c-gVPFTINs<6!Ch?=|n|7c!9ft~g zC5GE7ttzQjth%jAT~DxKUFtmyKDySzoII0ZG;acZi(3ksIS-=!nKN^wWO*pWG-X){ zY=?br{prpL9~Au&^SiLJR}@P_^}|wrde%1-CDM3O*+`LF-+P%j=YzW*AZ|IA-_ABw1L`^hhd*MHSj2u^ z4go^nuh0M%H8_S#DBu7j$@?dQPvz2BYNk z3PA<1MJI4sOddxLeaAqS36!#*1g6yL017M`pDM6Ktd*J&3VAJ(RH{)5MS{gHgF^t3 zs5G)ib)`n1kWBT`9}1O7X!+jZ`1A=v(@qx1hkX)H-FBqiC)|Dt#apY9*+t+U+!(6`u_S zzUCoP8WaCrto5rXqZ*RC=_+D{A_@=)f**+b5|ug*Te!g_XwuBpx@#H)hak{$Nj5o(Onp)5K=+@J7tHo3zw3|k>MQKUT~x9o~B z61!_V3j?lAA}+@`uA0J$Ijmz$;WvqB42K_!0!qR?>wGkX5V}C=!7mx9Wp8Kg29U?4>C0V@W&Gt#xFH zG7}5P)4VPs-7P{aeSV3&6(xkPz3lC)EUoWs%#}McG?3d-Pbz&!$O=1~3ZHUxAn7ZW z9C>YAlM9;8qRUfRNzExC{Ke7qvxP%3uT||z)$9|=NvBME;aS7DYtpMF%srzwy-Koy zFrfE3*)b}T&1pGO@+ElTJrZ3_Bes(N8HYec0EZMWVcscOt>M(HgRa}%St9M?2?b_pLHp!L!K_h+(ZK_Bd^3Ba*c8u2(MwkqV z^LP0iQ1fzc4eF{fCpDgntwAfif3N#ba=_J$F!7E@u;r09*CdS6Ef5d8Vq6LB@!WtJ9w4 zljJj2>uNzxSm!ZKwApQpf^Ny=Lt5u7;${ytn~=u>ml-o!Lo|)bTN8?8+{-g_ilE)P z27c2~Q#eI7Dr-wrSY+efE;sgy79qAEnCk3(jE}CmQTN?b40X-(-E8_VT;9NgmwlvCd)-(s0lRnFHuq znzhd*=1AyR))mXSt~HT35=y&hlf2G2<%+kEs@!j;+U`R4y{s~-LYnWSTY%-Hx!FWX zB~vsAztOPhw$|#_8~K%nlf1DY=3s=W-Emu#`MNkZ@jKuKP`tP?nPpowjgDFhqhzkr z(F`?IpF~u-wMx6=%QoGs++}~THzX?<-l0;0OEMAGze`7SoTJfR#ImM$=i3{Qtll1; zhTQ2}M9i4hq18|UDSuD5HwP8n(*S5jysz}(gMFt~#Gggm_>at>vB;B3#MGJ65Va2=C3G)%Kt zemsdl5m+i&{nRf8>!E^@Bjdr-YtOKXB%?x&A3M<(b4RpW3qP_47MrJ; zFyAuk%(Qbsn=8#eTf-_-q%ATDzr&@w2{oxxn=!l2uz|s*%0@i`e;^@>o^r4sYc8cp zoupwjzCizr;k`GZJPm2Zl#2P5yBR7PoU5t7lS#Qc0V=ACytcDnL0Qwm8-Ji{J~uG+ z6X3(0bD}>Qt-6Cgh{L}M^FWQuXASFav^xqg$$l_k=e*<-pp&#WtTvGdurJHg5ctN9 z!0kFx(HpUB!GkZ4c=sWjcs;9qkn7wU$-=U$6S>y3>#~+K4Gx-#y0ZS3_=SKVo0n;Gy_yHW z5rH^#03ESasd_@dvx^wo$fHD1v`S7Ys}`R$9};tfFCk~G`|h)BZjIQOKl7g=kd}Zd zNwc$&lX)0M#8wJPf}xPO9Qen>;y*^rhPh08wK?*!V%L^Ka2vYj3!0ldO1-VYf(%L@ zH2~$oe0VI81U#WAlUYI~gI_>#WwX>nEij-mNcXu}Tpr2X!n3xD`Yo;MfjqP=m0V4* zt6`|R@VlB>tRsm#y34oG5xdzI!s!(@6KA{`qP#0yqcl)DSdz-2P@{O`9+WLSLgBac zo(n=Dx!aV&sm{naVW~`9Ni12G6t=dsa>z0% zObSNFsKE%(nhF~fDoZKEvU58lN6OqZ5vkV*d*iOb7CutEMH=nCb3QwfqQz-yu}je~ zu_-$G5HrFjFWghT<8?n|W+Pc?zhc-M>0C$*Rjm;UEaK45`y-zbEc&95Izvjo4BvV%7rK_m#eVf zsG7<#?5@nL3&RZ0G#Or*lu*g^$3zOOG?P@ztdd7;M7ul87@Q13493dT$uPoW5X^%# z(&sA_j-izX4BUm6d;PFbq<_ zGWny4yT4*<2*Kkp)SAd^4kzsZI6^~4Yl%lI87-)i2jK*p1YI1YgCp%HQplkn2*{Gkc6U>HNu3Fj@!Djd=H~K^bH{3ldL5#k`}Jf7f4K<&kcP@fUriJ-zlktgZO7QPmz_qKDaN#nlp8Mh(YO2;;>oUs+ACtxS4Gvyse2 zlG~$^-&~-l=@VN4P+N^(6w^!=od7be0udux3fX4eoxjM9C0oh5VgrvGt;rU8yjmF) zQ>fnB1w$1%5rgR&oeTerz3NA#9Ngug-Z7Z9;#n45o!DHK$YTA+$zLrLfEKC0nxYg9 zjt`SnE{G`vh@j9H(aTk_>Y#x|l9DM>9OAX37^N+$7Qu3m_>BMvnu)z62^i&9<4ld3 zZNnM{2<(KQYAPPmiLCgA3|7vttG zUXo8!RI)dNr^qdM;uSH7UB00G@EZnG4?}StH9@jnXPbqBq+RA>YmOuVUjRJFEa~Lr zOx7Ed{7LzHSS*QPW93sg>@GyXyiNNG9&%0*k1Ele3I<7wjoer0>kL+Z5_upl(E$tf zxa2_&45{=*4Y{(>N6f2FBM_<7YIV;H6l2CO8t|u<43ZNO{hB*nul-{?)-R3io2)da z#9Cn4>RO2AIho|F8C?huL}HQ|5ZXwO7Hjm}84+W9FIfTQw@oXuAyp&+W38C}K_6TsoEqpQWp>@rvCIfls7ThfE!T}`#ul1`zfV(O9i zNP&2&1A1j{XWLo_n#=w7enCq2_}y~bF;mhJZT$V>rM?g@X@+?w5x!sAwY)*)@yAX{)vEu z-sWx-;;K#F1h0c}>k2E;QY<~r?%z#UiI)Eg>sC-2h1X==T5+(K2#Fxg+7gn;p-8RB zHY>(UPG+`$l0$VPsfxE8t;mqP5ZI#U8cm^w78~3!FnhI_5XGMi%unW^Z*#<?i%wFmFk$ilG{_u*e8?UTB^?Ho8XYA018}T^Qqdrt;!ob?GZ2o4 zp2`sOtKV z!b=KW;btl&v1r89khN$EFW5Yt3Q+Bsxc4+Or4WWnn_jENzPRK&17st0Uu0viUh?qM zln+Rc#g%C~J{h@7Q}2+Ijdg;yOgZBz%WClzRwph>{$C$88`DWj9DqZvB>6qi0cSx6D|G zSOW|4pkvW7q7MNi@kx|lBM^4-=%NmDFymi-idzD)R$7ZYu$$4g05ehspjrsnK*9`J z8WI02@?RU$+Z*%|XPfeS7_RfJNyuu*h6}g=Y9ozHekN{DY&FUgtIO<4GH>Z@(X0ug z>50+lo3@fL0O_(>>Bm9o)-iccnmc_vkSLq>I~s`a%@cVr^Zb*rJTu=4TKKEA5+?G2MkspAg@hKM+GRJgH<4Nm?Sb49;icS zP>20~83(Q1VNpOFDkV#+MeSDz{B|i|v`(SW$XudVPy<82c#BLI7j?H~AJJ$a3O8(` zWZ&5griL2|$p9Z(2rf4>VS>YeGH2yB&jrv!wwA0lcKddl&@EZGrXT|hyu)PLKmZaD z`-Dv{n%Qn6H?aY7D-y`u@3UySKVg7K{?6I~ufZQsfG&fD1DZcJJ_uj3J5aby=JtMW zw#A}@WdD!*9RMJV!~WznN-O@Lq2u`g|3FA<##tPq2ow7%?gVzN51GRlUoZ>w~OEe&$7 zAAm?g_^>w0g4B>lOp0vL!i$0klA^IBHn*T@I-1O+(xkG7E|XJw)+}k+0ztvPu+^m97cWHo`cHe6vSB($pZ8tQ6F&=hITt z7aJjKnivB`r~F>ifDcN-wnu4NI^i-j)jo$ktQ-*MD(o9Fy`x|og8EG`lH#Vy5^}FS zA}Cv8+dgoeEhMG35~{XBtedj7LlivaQNU`HMK)6jYmq~ruA*B(H*O`#5dd*&dqdIB zl4|R_Z9>;*NA07U}}utkd2v=J^ohQ;|SLVuq~TtS#-(BqYoxrt;Ek3ddCirPa|Y(;2a zRKEf3~{9=IH78q7xE5j}o|q&u)7LfuC)N z43EX@=Den%kW|%NOKRMZ(kh8E=e1DC+5Fhq}bz*-o8x@kT2uLN4Qae+Fe7?9W+-hPOP>!;UR<6GktBV_3^J@VSLNP>!M331#h=6Guqxz}){`BRwH zQ~?=V41);P3N96DRS1y!fXW!ABBCIdhvX+n@d=}k^?tF^(mP$LNWGGRh?Ui8nN#aT zs-Xj}%N+TuLj{38m$K$wAOegw%v~NO2X1bc%ZFX6!NL`kCW4exLowt%&ax;3ib+H4 zfNXiXq8Kj`kPruMWoe2jb*&N9%f^uLz}l?%xXBk=U7|Sm7;4hWQ6_E@Ij+<6MNu=`W-gJKNMl5S598@Btklq; zqeLHr^vEYO2eEG&?&HPdjY8cLTvq>-kig$}++r~x9=3Bf#66u_6n zC5`UBLnfzXC6(z9VDs%P%(ayKOtM{?1=T;O7Lgze5$uF*X-|_wAgL169Cfr#H6Ao* zzZ)8BnbEi%H}@r!i)pw6@0aDcayA zX_0E7w}@Q{?Sza;wGd4wlK$&Sh^=sfn?QunNEcHPXtZS;msUjy4HV96PNfIXgg8%U zb0}x5u4EDhUpWecGiX-w;2fjf{Q~DdRY-^b%o3iGn0D9X^ZH{Cowr ztUbmu<}WF$x^TjT7=ntd6$CJ>Go;!%qKNw^Y7elJp5Q+D%!BQ66s75P`4`fP?4|n5 zDW_(|LfPtbVsRXVwT1{-*6V(c#Rpky#v#ZDD^ZY?3wL!Y1Qt8yO3jT>tQhrS7eu`D z%hFbLiG9~cypKx|1^hs)5Q58B+RE4SBW5+ljnEoWT5Gf1!H7~=6T^u1(WGOflXe%h zbF-0hel&IJ+U2yzgm}?;jb0SMH>vOZPUdJu{NH z{j5)0)C=kLmlof?si^iFN)HIO+FQWOZO0`iEv*DdElgNq?aW~ki-q{Zw zc#b88K1Wq#tC!hlpwM2)m3-ev&J((yRuX08g;q1-p`xmWG=)GMj^=@ ziru^yx@#=MzKZ>OB}>J~7wm~g^1x;L0`n$eH?vnW?;;f7yB6a+d|0%7g)i8H;Hp_*Lf2MKkLc0~o|+m?K~IKNrF~%k!Sh9vHjKQr6wuvcGS3^JqCa?>(s3wg zJVcq@T)CxloDm8B<2$E0qM4pV!g}36(4p)wX`hIe*RD>lNs_WvMa#bgCtOaI?PHH8 zp_kK&ww^Q@WxBHk8eO)rAgx8&NKWZP*2j2pwko;{$k5fs@#?A{PBe&ZV)KOeuq&rI zaZ}qUbuHZi_tUD6$z#;}1ji6=jU_tvUsfV6G4^^}rcgXtviIsLX|8I3h^|NGcEtw- z(FTe;=<<>#TFmT4mJaL_ScCtR-(0FR(cT&L99K;Q#KH@@|TV2nLH}I?BWLacYRmE?_HVSq+V@ z>xMQzZ9ws>)cWXs4MOO0E|mn3)Ke!Sb44_4FHZlb9Ns7p3KC5O%K+pYY{D+_?W{n;z?4IE4=7mF<2dsq z9Ldg{z%G{b4y@pdmNcW`5AgJ3Z=$QJR#DCU3*{JcBV5?dn5zh6E28K-aftUX^$^Z{ zWsX!WBnUH5`rC@++s6dlBp%#uSYcvnpH8I|kEm{<6mbZ?Jmx?%0}tZ_Ysu^kWy1{R`X7X#pOObA@*M{M+T$;4uZDru^2$)9-2mA5Cj^-Vl0F3 zuK{IRDv==V@7zO(E_E_4l}XhF&SWvpX(L4pV(}>FQ1riPEO$k$UoNn@(2VMFGa+Zu z1B&EUt5Xya7WZ$B5GIob1N}0zKN3MWn4nPjnG%ncd zYzj7yis=q~F5|vR#1yScic1K}dgE+jWW;EuF2Qf=fek3N@Peytfc37CBBTcJ@KR=l z+;?Pj_@(T5X@=VI>P~O#E34jK&4yj2QRz$L{hRt#ET6o zi-}e-aeAuig75PO1xgNI(vtx4J~vZJS`Owckf7)BxK+}EglNAMZ(gE~gAK2``)RD2 z%Va_8Xhh3w{El54rdnFIb(BBY<61_5A7_gZyY3nE~$uF+s zDFwqRkWfG9r3T~s;`zG;3 zNV_qO@LsHHTZS$%26G~hW>W0J!I8AdGt`1=5S8kP^l9eM&@5oFZdLC$I8SW*r{4Q; zT=yf?GHkRoLyD=e?xM0G5RO=i$KW`uinWl``sOaX(=yP=LORpXDTlgf%c(;ui5i8y zHuNno@xwP}I6%>-N>CtBlL~*yiqX*`?lOk_c{lYBKO?wz zOWca6Cm!@^GOq1CD_+MXqY1EfNU{=8t6o+_q-_$SCy>sYsf{;LoJ%T3>{aK z)|E6sd?^TXX%8j?Bs2%6L?ujg$5lTR1vAtxYg7$8Z6bwh(qstt88 z_|oZ7I1M2yY@q3a##AEPaK(f$)?%y?$wZ5VXGzCJLhChGn0U2$U~0aOmLR|nrgjPZ z&8gCH5uk%_`j+HAENiCi4TD(hk|c)+Fiu+21 z)%x1YTTBF3BQ(isI1ZmRM;fb14^fiNaJaG8&mfdI!L0b@(t}7$b~Lq+W3GTLtQ2fW zIeRgaIEI|t@?!4o>n+x@Ca`+n&P2ep^;E(;Y*tpi?+{xMD0=ArLbM{(wiRvHK*Umi zT#BQ10{dk)6$EjxV7Va|?ODMwi>g7}G)T^cUD^43` z?=r?0gf+K1kQP3*QrtttRd#0HL$#!IZPh~TfUGqVIL6Zyxmy@$_B-WIKNVk)D%z~K zsdVh`jmP0lWnfwHC~6NX`4Bj>*M6T_2Jq=HsJKed<3nF8vtMdtKvR7E#2HzmBBx2X z^luA*_pWF-EhE?>WC+Qew(_auO(w%BW@B#d7rj$#0LLbsToBg+2P%WA_{v3!Q03!Y zZ<(879L{b0!6K9*fD!=U03QwO2{VG%s=+9PAhg6VW#_MqR90FJPUVpqI+DO5mXBz) z`+7;9o`WfA;u~<~z#&N)ZOu=BD%eo=CMU7Cd~zU1HrHy@hQZPnc*X3XwI);Kmdg}n z2ntNpQUF`(D+}1Om(N;?T6tClB{XW#!ndwb1Dah(5=?*&UI%>1@V{TlB;;klr0dgh z5}t#Jxdd#{77jwjv9&lwHuX7tht=Pg>~%!iiDym|5#RtHGUVN*uW5Ub-08!(UGxlOH67)?(HH8hB`;_dUz0?tX~}I^AxDcGEY3m zh6OO145GW1v29nOYu~YF<3r+=c1R#AHMt^fDM7Uw0K*#!MheR`N;s(zov3Ezb?;KT zU$%q(kjV9H@3cmebp4j1gjN+4CJJ87@}b88gZjLMZSL*OOoRlxXeph9L|ROb>28%_ zl=~X}il!u*xVi**!Y+?_+0&${qC?Q*6vPJNnd?WYue%!Td&BgFDuZKfGdJ->NU>h& zYCh6z0H27SE4a-eQXb%R{W|vZq!S)1`ywAAGB0v`i3_aA%+V765}Mj>`er*YKSLJF z2kPfnsakgTB9I1w8nY>LTLQ0^5HTZ?ezS7h3Z&PS)bIM!9Idw|2$ZvmX{TcAmqbUG zl~*WAX8E?S&BYGiTH0-{^R@TXmESsv*aq|=t8V>e?3BgFm4%VdIWq=DAJ{G+O|}{2L!a)2b*{{ zThkcAJx2{m^diUHZEirD9T?Hiu6rvUGO6>HoKfs#x_VkGLnPO&qT$!RoWDnEpu%^G z3N+39VAv0=PzQ*=qAG)B{Hf(4$H(BIaD=|>kp#DqU3&)6f?9o^I!I@yetca+{-M8` zyE;2owr|C}J7I&9zqV<|wzI!^EH-sJbz!7Ix1#HM71De|H(u!lys^uc&g@TmjyECx z$gk(e<{8(oqZ78~H{Qh$12*Qzf~^q`3Fm5!olB}DOh`4_bg{}GhGu9i&rc$5B?V56 z&W&Z)dw-B_`h$w8@0H>0dEz3w;(rcAKnikV00031Ko7_80uc!S0N{|23;q=Uh(e-~ zSa1q06^TY+59lO5ISK&7VG+3uo-GrUK>%=vM!=9q?H~a+e@rLw8h{F06Ms-(^C^tZeFuKOKmbU?_NfAlP--<8g-+Eo ziNq#W$aTiYZno8CQQ5TGWf+q}09V*mZUrioP@tG-EFcGpf5{{u8@0j`{hvYr@Obq` z&oqO8@LDh>3jHO$>NOSoEEgM+$5LTnPy^}tIMrn)bC|^5(Fn3l?{`i7VfCZYZns#g zhVt7+)l^`Q?ah80ud+z8kN4aoPauEvqSycj2W>*ZOeU1Or5=A9o7A~-2pxkDWWLj& z;7ZHd;-YQ(IX zkS9tM3m`-?TI|=baICiOFK!C3t4T~;rjavf>JqL!~g zQcNy=MywQuh{sU+3bH}*QYj}q?)(i3r_Xetm{H0TMzzIK%Y>UE3p38eF7Bfq-6+YV z1d2zJl|3IPG}P#fK-299C8O(FIPIluTO5uv^L2KNvdB>WK-0D3%-*taszDsF5tNeF z*Oqmk7FTv-Au}Zh-4+8@?7HlP$j>cn6Ia#LAy2vKf|ka*s6CAN)Nrc2wYzZL0_m`b zBtuQ8FS<5=IBX@dexFO)jKM*){3PAC>dZ??pi{HX$U3YgXNG`J=neoMEy@!^SV=o5 z`_0GOb4|;P&8mt3cUz$mcS$L`UtL8>1VtG!8LTUAS&Hh;{_=brMV@T8Ey$ba`wEb{DzT+MWUIRi<*PjV zJUhkskV^8l!Sc3RjZAq8PodkaHvpWj($Xs40546U2w+e}$;MQ_Eu_WR-v_|QB6-?4 zo_ue-r3k*fZvRf$kODUQ#kC^LLT5dQlQTl?52FJ>1;MSZlqyP>a0Md_X~n%Wrjy=j zE_m%Ehc2SZY2Ep4EG>z!l+$2>+(Ei`Ejd8IbfR`k+RA~3^vp8Sq|i}X?t6_He84p7 zlniO7AE$m7ITbuZjFTQCg?yAfxQfge^QU9%vL-9Dh_qhYRX!`!h(QC+y3HzQMJM#Z zKv%k>-*Tjfr5XFdQd~j6IT%AJbq1$*4+s()>Qc+y8k=Z({~KGBA!P0?l;}9b8*_^- zrLluMmD~W+X(wC>xg;4!-k=!ymoY#Mj6@RjNfW`lDQ*rWDI&CA$XaxOZN#6nHY{04 z>lA)$GDNPoF#X=@UURP%Fh7L#9TJgjbjuhxi>*;x^k#eBTNNtF~_J3A^);io!6 z(+^=G8;vG3wY(_+fTQ^SH|4!bMb!qej6pXi%i$0`2ZrBBTX&I2^q-s*VB}jwfF}j? zu^2|){ahmkOHi@7F)|9q%^9{X3?V#}B8aEWLd+xNwI(0JqQl-%P#{F@$I5sJYYxhl zE+xWZNO+WYNn-bNrSTw7=S4P>3=Lr>sToBALf2D*)h@_f%*29D_UYjYK+(o@O}ZRM zS2+uV1|~pHbXbwsl&)~5_1cxh!42xC^C8lA57 z_8HSuipmKJ*CA_UluFVPVhG~iv$90Ho5Mb@h_i-PEj>q@()z(zI^cIMX_Fe-B;tSz zGA9KcNT71;eAr|?M<_(mrga34Ov!|X)IqkFV>Csis=Qm zXQ9DWaI8WTqSwzSsOtzUG5xYpQsRVYlIvP05#(N%HrpTJCA@~{psGShod|?)Ht%HB zm?X@2mt0sn5V*uYGHG!VTK1mO7OvYUZ5tW^^*qb5%HDhSLaPjVo#|~%pqJu}h*I)B zght)2$gzqcd82n~N^_#8_*YFh`yh+ub(}Kj&D>oWEwRl7AG$js(2a}3)VO{T`YmxG zY4MBl9lxYYk8n~Q{ZLhU`Nw$vZ%zw4a25Y26Y^xx-CcaJh_dMrm#SnQxrVgaBEr{) zzO%>s;)$yY$3)lHnsUv3P0zKIvErWL5Fx^Yq!wQtIaEVS$zE>x1kYzC)S&b(HA~8> zqM|ZY78llxs_|vQ7D>TbGDeYCS9e8Js_3!wLMS&(_N|izh{E(@XOGQ~PA*15The;I zK+XZ{+Xfh2Nah=8MbVi(i8^V_#l13=(kZ>l^hUGx%uVJlnnatWwAJa|v}UC!tsH{# zC=4+yw!<8Y(=pq#k!YyvYi@#C*8?Y~ zR$DOFPIAl+H){+wg)I``{P1+&N0|_RlG$64;MD{*`7ZIcom^_<`bo&!Mx$QD=SNeG zW`;!fE*iIyk+w81jfc#HT|fW<*SSz6k&Vrqx?8JLLS&(6@R3e2`l5LI<l`X>rqO=C`0p>*j!oIf}dxp#mTC z@}+}`f(Lf!D=Z%;=>H0pk1aU@uI#`8tkS%e*pRIQ)wq+sHpq<{L;ICVB`tGppEK&2 z@}Hz*5VX5ZD8Ty?8p*qhnKVJLHvz&7l0~bk(g?EbII_O3i`1#3vKZq*89L`U)2Atu zO06qRA(IFgLs&3*^1CCmHCd3Qk(RyrJgl1Y8Vl{Is(?9*Rk<4^lG=2r^4S#Vjj=F( zH;~<`IbA+;w5aJNu$l(B0Pe0!@j=lNB{~QJD)jvv*O4<%sUA|0~p+0 zltc)Ks#d+}u!;$yunSfh#7l|lATdh$7oe}S_|-*7!@nzSps`H|BND2k>ObPJiF3&^ znCYUyK(=AgK$}ZKXpkSOJOmH|UN`b<7^H`|0`V-e*_NUbxvVV=I!vT^#kiA+NMepZyNo*k zy(3Wr!&s`jtPj02+q`PXFl;-U6JIZ2;v5l!uKGk92(Ji%jgLsr#+aMAc_rNokXKEgP&Il4s42qwwfz?46*6E&m6lqmuVMKF^Pdr~FCEia<$?D zwh8wsly^)-)2}*!F&Use6A_#G*D{pr!R(ke_|*@)r8o4~Ou=I#Og9t|wj1+u6Ol2$ zJYX}4kBnGAmJC{naT=Z3yRHz`AY1Ccd|(rEp@~S*$-DDEBM%Jo^%+SsCL?Y|jHpG+ zl_+UJ4um?95#B>f-K!&}KBP~i=(M#c`8U$6!}DyfGwM8KYd@g_k2=dPd1s(vDZy&$ z%tRC_Q1KvQgs|)(DD-liv~L_^LI}cov2>)n`F&9{sUXoumBbK{!2g$h3%;SDt_&*0 zx{ey-W5=X~L4&?aQ7zJfe;3+C$o$nU@xz+{+9xomPMMf6gao~P6GS>*AqtS9JftB| z_!IO`O8y6VKN#kMY>rkIvE=~Bna5e!16<}bRMZ+}-3|6i*SBP=#K%`s6p((|xRbq{yq+96C(2?BW36bvdn#gOoo$W=Qjt$~%yCAQRu zHtk-N7@)H=Cl{R{P!tbQL4&TbgVH?46>P7;Ne0zbCn0&cA;l?0EkI6*xF=;@CnYV_ zS|+;kKvg+J9zkx&`7xehF}SRvRa^u`B&)+h-5yE()2%$ViK8uJTdF~}$Q%l?db=BJ z&@iLrQIx;f^jtOxd$kMeN23};T3J#fqqN;>zG@7b4HTxF*}&C07(Gx`FpE9?D=O_4 z#HCcV)Z@p*M?Dh+QG)A}H5!(2mMgs+lSN@JZ1CUh5>(6^K_&k|2~S)C zjFZ)w7o_e`Bc`NGXVSAFR1+Mdf^I?U`KP%T%|(V1V-ei6Nvc{;kZk73>k!}zIo!;P z-}GT%0jCRvB|j4NRvr(bArQd@lv+rfEb_os;=5MWOc`lTj?)p};?`fxd@ef=5CdsM zJv864$Rd$MD59wrD@`xW@VEQX8?0xXGb}3T?V{o5!_<8kGn8QLqQzP^sslI0g@Q+f zS+nar9MxRSGP*O}@(D=Ay_+^G?O{_5NUM1Qk+}Fs*$T8O?K}DMKb|-_?Uvw1Eg-d$ z(9=-E#Xp*Q0jNz%j+PZJBP&^jHLUAJrtVl_q{@&*s*e#kKzrL?y7u5YHb;e^7A;-7 z!Q2r9HNA+qwmWOsHJoKIjZka|VzFMDP5P1WmP(xQt{|o+9u4D0Mv+Sura50Mb`n;U zjOED`9JX3hFu2zp{?jZ9;guO*-2h>-lTV_cS*VnYB`zOIN>Jn~HwrdKl0&)ar$DV% zB`lJV#$7miVb=Y2EC8fB1Ri45rPLjhjK(ky6?RR1lTS7cOWt$fQM$;UaHr&>;Uq9k z+?6oiWoAInl-Z%ByVSMmP(7JpW)yj)R$sd7?qwCsLT(?xj5t)Iu29w@YK7?$2=vcv z<+V9^t^uXN)20({RG%oLrsTFMc~a{hH7CIs$L=qr>f#LkP-VkLT`mQSE!1R!?8LnW zv75kR6`(XK9p>)1xM0c-3$ZPpp_VMT<^kkWY`@n97E4ZJ(elUG&Ni>A+1H@2pNT^@ zhN$39A1mGJE{15{yFdf`_hgG!k%^=)So>I}a95tY&@%K;SdiaHj$c__-#z!{-a}P^ zH(|z7;9MrlB&wJ_DHSHYtVOUsq63SmhGq*8m(mVwY)S~K$<93z4i*OA8}-GO%DWvM zM>4%UI&#$BwHbpBmP-`0Ybr7vwzXjCy8Mi4P`#^UCTnZu8tqk0Gm_~g5McI@G}#CW zfu>ZIm>U^)36UJu1HGCt_o)MM%(O;UOx-y`M&69HS_#9COVB5T(4(R_)p+>sLGjRo zF19VSZ$WOCxv^*d%ZkxLr25j^H0D07zUJDDQ!H`YNbS?!`b5!kE)A$ytB4_jo|I_# zK93d6eb&`>LRF0l+IH^%1zMj@MJuL8N-jq|Su7JXZ$<+@WSEL@YP{5iZQAJ8AtKQ} z`mZ$v+E$4QAZY1FMT`s9vT@W5Lq+g29&}}`!lm>~ms=FSlQ~$uz3+2!v;Jjynes)eL@D%I^J1-L??+Mezfnnk zB_T6li(GtKsr7Uo=`_}J@z-7Ba^i2D`N^o&7tbOKPa|k9{ud%Mr=I`pavE?IGDRw5 zjM>9L<0K$bf?Rn(x=GtyyxmhRxYTu2X^l*nWBHDWN2j9OAZEhd+sX5Rzws@{EH8L8 z)5baw@J8PkbGpRGBH^-vz0MIC&LsR~XpGPqH)5TMuRX3xLyq;uRo5)f=f@m%8vVw8 z=p!;3Cxm@C8%+KbU&lYY!$e`^$?xFDJ zp;R0pQ_JSQ*&kY6-kE4~D$n0{rPCnUE`qyeBERk@7V3tGuL4ht%}q5Gis*Gq^N%~i zZ_7Uh=3qwba^CGRKJFF0{F5FCj8qp72V1CjmiOdLl`>0V2Hr)I-IaV~Co&py*s&BU ztWu+#o6fqg75XEhYZ1K7-Fh=A!-_}xZZ2&}~7(wU^n7YUk4>k~@VmX&9a z#;ns@Jl25=0^KiHNBipSWx8GNaht5tp*FmLZa1jK?;VfF;O}5Nz3!QM%0ephDm0!I zoPuU)QfXzL=Mc?QbCK!n+J&W=)hzU=zApnPp2#E-8nm)63z$%&8jUP>QvZbjVEKH` z0&@bM=jG74{G0|-o?P0={T{@q$&Hn^=3Gd4-%+|y3Vp@y17r& zdd`?1=p-8uqbj;00;2HBf|bOGBB0)<$^(XpvnT2Z0)T)5c8sP?q7JX6>0|8Bx9S=S z+_%pP$d52ifB>fc0aB4Hl@4eLnBCDCtw(ol*0)lG5Orb`J zbdM@H?xMS0Q4@sMVx!5@jSe%=`TZs+EhDQtQmGtd@Fa^&KZ(~g8U+gNL^kIQF?!;N%RJ}nr+jE*-{1Mz7v zx=qa++}PaxR?YbQLuXVEjz1N`d6qSd!L71TK#&^J_Z3JK1dlM?SfWu|W!qM{x9$*a zX2?ET;rY1OxV8@mC(u**x4{t$xW`;cUhcwcQ0xm=<_s*GO2C$cqh~9w+V{mmH2y%r z>`Ynvi%*OTlD+V2)sG6rh*|cCfYT*wAhU|jjofItM zSl!IZBU|Ym6*@Ab1DDxicuJiYl=bj)*|O&*%6Pz%HE#utDNs1a8C9>RzG2FFSv>HW zCliFo_G%;>u{TkwGUR#NM zYi+q_#paTA3|Ik-1ZoGKG#wWk!H{f60jrR=4sb{7hlK0k(mJpJ0pHXZe&<-vyp)1k z+{!F`B+vp#cKoQzYO6P8MAD|FYQ<7iJt)xdke%i*kr;A!H3X4}5p#nU*PG%*W~FGk zlQ?f0E7v7V6pR({3{ILPDnz9qg%6@R4vLc`B#fk)OL7E;oOAjsCt-v#74rAVlPM_+ znpq)M{~Tj75MziUI2X9)qFt&Gh~zR9fKp(Pz%oHaMxeo`Cfu=M;gU~KmBq3nVtAe- z$ehw-#-dUv;oefCbntpV08)s)3JVOCYr0j-!%|crazC1m@s1toyxO6wZ*FP&dmIKV znOzYoE^oMyD^`~_;1ZWhXg+Wd_1wChv-f4obg;J7l60UG!b8T{!9mh8TS#IZdm@+I06RT%&fNdlG!9VU~9(tHlnJ55qSQ@|5pKcGxRDj|#eWBkg78<;hDB zd>W&R4#URi9}^W}HG{BJ{l29*lViksm5c?pvXrntUPEk1XEk#qnTW?BV;TTyemhC? z85z)giHigfv^N=?yImrGVg`OCDU{mytQ0PVP}uIv8!(g|+tM!*;IBl-6h$H|z#q~U zgug^TF`PP;RwU9CuL1t>rcs1U=*oy%Lx(QSlMsO|an#Xv`8F8?84v;fZ=Vx@NN-77 zdWV71zc`zIFh&S=&XPKlSlZVTNpx>!IsQuOH-!}=^^Q+{!!(x@V%%D|P-uC7q81{2 zQ9|=04q4M;3A)J4Gn{UP>CdcIINZ>yr9V)?3n&Eyo{u{Oe5F*SB8p11B|^|5a`*rM zYbgblSw>8gE=?i{#C#WK0B6Nyq7b7-n`DV%i1@9dmW-o%nn4U_78(632J=*iDkz{z zxS1o?24P;JbZEpEDku~BL2c$x7-9BEA5JB+t0@=Ml86<8bL3zr?uR zd0_L)u*6=UDT=B~sxrB-t0G*j6;Mz}!WdfF9}}*2sFbak03T3c{L^K>7V!HLFvp%X z#`68Rl9jlfyP`A}oywf8{Z7K=mj2C&zH@MM$*?YI7Cj;!OcUjLJU7Pwrs4L&9ktvl za{pYCRL_Q&0_!76fX~johYxJbR4NHz%g*Cm;FLm1GVVdiNtL3?cCIBgiQTfj1=VXG zC<1s7A#T=3tCtC3FfAGB;-~NiUUxVFc^H`#8TX~2Wtzy0(JN@{SXGHGJ`KYLMa1CT zUhWW*2+eVL@Hj3CLpbR!I6XPi>xM+T48Bf$sIr_mqnVtboBYv-CY{q&3ZL~fHhuDP zam$@ern`ypg2a&|cnY(eb4+qH_&0gqZPSEEt`FnwTSP%N8k?f$ZPMj$TW9@eRu{p< z$usWow|HmZ6D-Eh&jl;AR37>aA=yeLA{%fVyphj3)FQ1PGgE|$sOZVYc?#u`WeHZ2 zWAV=_l7C|m)_;@;&CuDTbeVC1N zqmxUyi~r|2>;SiNS8IsB_HyRR?Zr6CTFLNAt%TnMqE`fPxP|CCkMu+DK4C;S%0^Tl zCyJIVCa7Rii!zSLh>>5<1 z&NwZy<;)H?hKl6ohTeqcF#AEhDMP)gb>F^ zI=q5lwu!S4%wol^l+OYth^Q<>W7aIHYQg8Ut3_O91XB+J{z(E3EO2x*DsXd_5GzM=LaU<(Ql)TwUlkBg5Qh15I` zKB!7ih9Wq8iAMz_T78fE7Ht}eV(ctKrfspNX{8MphcG_EIJc2NSB2U@f&859K-16Y zM5t2%q|!18hRe<>b3*vsF+#u%%0f-fnmoiV(%s`0-Xk8tVhtWF z+M;~l&k#%pzT(m(jm378ubnF~Ya*qv#0ons)CkPUCQeeV6s{ysFH+yUfER^ZJu!CXr>IJ4&ibsAxW_ z5_UxG2rWb*ukAyHHeEsWJxDCT4puE_z|YX;Vu)aHQS`ct>e9^q=1_e!@ts8`EM+mD z1;Wyc2QHiA4-GRexDxXuW-eFeS1xB7GUNX;5iu6*y%s15L~F=gMKYtYR5WBf`C<_y z#gjipFg-^0b+p$!(X!PO9%6B(dZSc~CNoUNyAMGCY&9g54wAO?luqNlIZ}&MCrmpP zC{d>I5C_Dz&-WbZuTp0D5eEqoNse&^NX5s!5)}4baVEx&brQp26A=d!QAa`yB;CvX z8R*7RCoZyZIVqFHF)AMSGAx616j>$BKP}RFs{uw#Dpg8ML-6W=CW7X~K$T;NEcBW! z&C>`FjF}Z8iL_`i4c6Mi6+Ln1TPB`5m3vXNPFzg1tMuyH#Stqj9-7oR+%7=z38fV= zu*sryf@d1~D!$7Q10ZtUUTUhv#at-@2tR^+V@MV&#jM9eWblk`UWJB~b|EzDdauuE zQP669?{IObP(Ve5L;@b-$kk!8Fip+iU!{gK$Io5JBAxL`CT+-V=)~QUb2HL*Fw%N0 zDALFa@hC?Kw$m+XM@;&!*m2ZrXVe-a!)!f;(PXwVB`;vbZQ8~McU_HM(-RgfOL)c0 zCflP>wRN_su)-(ARD5+HQ!`{ph|?1CxVZ$R?o2fkDN0^7CrU9!VlAmI!h&NEJmM4( zNu#wkixolyCQ*+Rjquj)LhUn)`awd_VP?{>q-a{n+j2>U#nuLPPeT3W6?DqN&9D57 zh0gQhFypV(P?gDA%&J)=zLVzv3@i_0@Rx3p(p8g_X-$`2Go1|dAh@IXaaIOAmr+Wj zH7{}n284=x#o0EK)ZcUkYxX8y4H;}k)k>xcy{1&X<5F8Oph=?zY{Ox7>kQTr5cDrX zh$6_Lh;K1hJ!TBa6l9SK%!Z%T|7RjqDN1afv`1kkp%;{QUI{5WuDJdc>{n^Nl!Mq~ zhGSpWM&f2wf{47x^fIwUD|^vNf`vtJ;($d-07zHAHnOz%lCes}cP}l)Z10_(6%G}M zqlEa9P{5%nCxYmNw2(iIhrxMqsPgm@cCH|!aM4sXK*0e2Qxzm#i;QhHQkf**R9O&i zPh4)x@em9riq(RPCgBEkV4~^*2KoN#<;r0m4O`WDHCeosmzWh$groC zYglJ+ii4cU?W2>4`yCOS`M2dF?w(J__|(ziZVW&=r<`dJ_}7bVlvu4@*IK-ixFu*) zmTjSg%vOgj#GR|SW!Yg*khflVL|&JoFohtNr4bV&NeihHV|lJ?c4lQ3gF7Zv*A1R* zuI?@6f_a%BF@+I8@1aLoWj4olxfY6dndxmA{c=SzWvT3JP%cUmz?4^L;5Y+LQdY7A z1%)z6DmPbAsw|}`pzRJHB5v~0+7R2JYTkEa|@GmW}P;WzER7@b}$&- zI+df=gJ-h%HSN|gS-Bu+JkgQMJ8~>h4N|^PeW=%!ZI?bmSo^L9`E-zALX(_|LUERw zc>kFUCUzw+4=*-0hVK**r3c*hPvVd!+jAoUN zj;|LhOM0hpN0=)LL7IeJdDEJr<})Gr8}X=i!Xn`0uQ3ppW>g4lRl0w!*RWamluO|f zJ4DerZ=BWnr|WXAcyg4LV|4l%kheBZj30oz33GaGYh&z#5|}$V#^7~5l{U)hEY8nb zQ2N-a>$$$-IR<^z+EF^FIOmvZS=KCB+n0_2An=Jzmw^|uIY0RB@^rI|JAIdop4}L? z9U0t>*X3yO&wWx@F>D??ZR=SCB|67<`~8Ro=j@(^I;qr}<#B4URAKPK$@LgvO>= z@ynVr#l*Y;!}_Ic@!5R)|5+>%u5yYG(A|=2aSW&MEUNCgnG?ul8%#qjk-UwO^@PIQ zc)pn`w)rnsce#b-Ws`Qi#I<%VnL$_D=MyXGw-HN#r^N;B$HJ0k#zoj)=)6_86M*?oWDVMRR(pJH zWnvc`FXt%fO$>(Gp}@_rHC=wWe+-FF`de@EE8X(|8N|BCfoZMmc7>x!^jRxWQsYc zqwKtW6DhV|iCNXPMd=#}MwH2;#T8gYDWyPSro#QGXietXnRVI(3tVQcLG)QT~rQ9d}=x3wgtZ&a6u%hwf3F z^z<_WO%xK(UXgiOpd{~x?MZ9z4IR;2Z@jAV&6I&!!-}+N_&Dl5{Qoy4nRzZ zO4CmK1BIa*L&gHyDg!Ujs989LhFP`on!YGczG-+xnP;4P#COR+i_7aA8_36N!UAhv z!ccxYAio>qH+Z~I!+PB0zoR&b;n-U#uDEM|fs=>aqrJY!{3N35uHR><+S~ztUtgQL zm25sQS#pc&a*8Hc|H6J@;@_P_H_fU&Fa!XEfzamp~q-dh!ko4A+1TH_K775 zwF9_Os#RK?e!l;r$s<>}T^0*kw9T-$$SwxmIHh3aa~UNPt&Ww?ZrOPKy8~#0T=H_6 z)`u&Cpsz$)?>1gMYB@=ysMO5c{| zFRPOTyCX^yi2p!P3rz(-3xiPQysFc-kEji!7Mm(brH-D}@B*Dsn@-lB}=1GZMb6QhJHCt-T(k!0}7cgn&{K z4#UTYI0I6k)KbirElQFHFGH?!=_%8aBWD2C&a0U|JkPrKUQ>(%)m0#q9UmAvl{=X} z&C(>TE;5NyIO16Bs_5-L7DNn}TgW&DhQ@Ci6IiWvEfrBr>r-<($kD=V)ZYHJt$P&?IQhK1@+}kVQpYo?#e)w# zwp|vcObdz&Vy4pEO!)h)6WJV5g_~0lT6x^L`NA&?vThOdQg-x(a zh`_zBE6~+tPoA>)&N9mpPwOdi^r^^*9jbuA^@s(ZA>iGM|9R`xbR>$;S-7Tv%qG;7k?vYH07OVFx0Rq{7qB8(wp z@d0olY7>m$Wfk)jiPkAR&EtCh#ZrfQ_Y$KZart^-9r6+Pi&kD8Z zzc zTMfbZRqNdI8`DbAk6Q~wU=X%D1lX92n>0FwT+$Wf2t|92H z+nhv8X^6_gJH&ArbWp!~-g^(F;>3apX&Yp>acf#M&Aav(p1zI$D%*k|r^Q2!R+nUowY5 znL5%7HArEWKZ%ujB$sNt8{;)vawTLGQY`aNI<9WA+}=uO2QVQiI-PC=lAZY+QHh-E zX3QY!D);W1Vp%IoGX0yjrGQnBpaVPRvCzr~Bt&J=8+Vf7;Yrk}{uFu*G)Zs+CpREm z%VdQhOb#N9?YDZ4I`3cBKAie%@d(vx{mfK{6DCiF4`#hJ{rTioW0<$$WZ^roX%gaK&m zX?9B)fNtW&ScS33<1t1?$xUQ=n#Y}<$OMwXN-CRSak&k|cSTrQfju9R6-d1qLj_la z7E<+fWdw$kGMhYGz&rt`u8h-{m(Z-oq%c^0%`0uhNVbucCJYZ&5kucT6%uTX?O zcS?{1BrO_A8mSQ%X_*SI&2llG8qBv1JFk6anl`Q1Ow7)EqM;?=^v$VCnvjE2dWJ^L z)Mj{LQM(f$u}K`xYAjSuBx7^)Cehh9g6vZQBU=#ytCA9ELuRpdSxczLNu!p43YpnW zNp4Hkf`W-d}Yg9lx3_Q%FdD54dQ906P3{-@<4nrs0f~+tZ3( z#62L6DdRoTDK8a5?jv|ugxdlZPU5QrBJZ*BKjLV|pz%Ay&)MlT%yQ&X(F%XW45yH$ zBa1AmF}{e03NOWf6s&3Huhs>DUB=whR&+Kp1vcE(`mn62`e9D&mPjW!rBLPjm7s)` zajGR&;xFv6&DoU-*hnsVvUz4W75JN=QxSFr9PWl&ox$x?9G&qK)@fbw*!Yi~hH9fV?= zi47_QjKB)AKu~QRNU=zz4^S?6jEo(*9a$FW56ends1dZcv?{lb)>eYX(aF?v6)uX= zz$dl&5t)NYLK8l`IydVf?O7FP^%0s;x8f@0yw4@=5!X2c(KAl+Z#Pkn#8i9kiecxn zzh-%fD)-=$Wv~d1aT7Ay(qEfmc__+N`IIKIZQjFqPgoNSP>m2?Ph_hG(PXbQ;qjY7WB9LZrVcHezE+$-pwXZ=Uc%# zCIWsiiqOj^{lhC$9J572rv&^BfLRk10}@Xq=(F;4q`89Z-VmAknynCHp*Co4GCR{8a^0{q=afM_1;R5c z8Knw=wWvkRiybP2MV7{&iJnuTwc-y5;N&|A*{X^~C%T=p3s)42V<-BNyPFC%u(b;SWQKCu_zh67mXjtSRz}p1Z3)pw}4594HCCDdAnfd-0u8Y?b?* z6{}CUi3SfjiZ;XL8IuJzb9kdi=8@Cm)d*!0HYu$#XZ!P#(xX1Pl_A zSbqq6y}!F5K1nRF5o|)FG6=h>9E%t#i+;m1t0n2*0CQR%A=MUydrFEGqb-L_86Ja3#|t6?4g;x-&$e>xdJv8cYbY zTn4?;N;(*ShDCt4f8y39bam_GXN9Q*sLNCU?pl_evzkrVkdK$FIyTg2MF zBl!^$Ft4@2ai|Kvnu8-aAp@8?gqy@g5=hK18XT*80Io`vI_v~6V3ohjZVi&aj??49 zi#t2%6(xgrH^e8x8d%Jz zK(HF<6myT@C~-jwuv6Lm`(y(xa-Uq+o+d z)2ztkDiqQh#E7Azfb)m?(TIE2sVpx^Qc*;_FsJk6!DCy>Am_7ev5No#!Qo4p0Sm=R zln;{s4>WHW8MvxUS;*_prjj238PYMdDxXsbYfOKqLIBX*zEm@9;t z33GXo#Z{iUQ@#Yru}sNP!D$Z!2g~do8{;Ed(GrZns=qnU)zt{ELai+wOHhG^O1kWw zEe#{6wZY=;IV$il7G*=j~ zNdVo(18t2um)*IApxunsa+p2Ask_|XSF@RtYd)uZ!=*rmQj-EMiDQ@U7j9&_lqwMdHdI(PPg|b*xxQ5dHE+8P_iiI|?^BNILtU7$-RkcMRy;eVi@G`TF zU5v%T0oq}M;i~o(qa)$7Iiq7!pV;mojw&OQIxQsde2zc^3<#hm;VoWTl4HBiUG3^DE zIer-IZ=ao+(0G%H3QgRVgE}^glz7^(5eHn!^|%!RrF!-|NuS*-9bWxDX)JiVrWn_2 zGTTWBDqK$41?<bpX%*11xHq?c)3fbtXnQIzr z3EhkoioUTu)nm!w#$^s?;#aqZ77Crbk-m4axo}(c>nOF_my$S4?t-GrI><=;$NeV6 zEF%c~yR)lUp`74a4p+O2S!we^#srBaDiX>OeG_(;p$M!MbTJIFuTH5$r)-f+0uo2~ z#8LAf-)XPf9fKOgCZ=04Wb~0BJZLInKtwF@2lGP?3gNjB#wru987uH1zLq_pk7q_v z;>uhr4B?G*gd(nl?V@9)E1G19*0mZ>;rT;7bfn74u0Oi{ZnN#-}35eNjAC|{Y5jPABrF%(6m%&?zY0L8bKXV1C32hi&ikss0x-n8voRLl$>0l z2|Y;<$l?k%IbTJr=@OEh?GitNC2ThZ;71qfR$H9P-CB9yPU;HD_9{yhj-t?q*!u}z z)-bX2%C;7kaeCgQ^7d*7=PJ7960SV1!BvwUrxBj04@0z`nuB81WR0DeAmi+6+C0e? z8|O`rGlsMtmEwJ|7dwN-YFIS+tEmgukYFyNXsSk+M&&eOjJnB??Xr?Cv7?lrxlmMHEouaOWgd+_ue z9X2Nhz&7m}z@X)G!&COE>8^`3I;wERyKHQk+uWM(E>U+hGReZ0;rivu`4(|;+Ze>| zkKQ_PX1Z5ILa`!q4M(aX%vzdftUqIzjLMd4XSAYo66K^SC>8Ivc*ad+Tt@orH^%%0|)>F004miAK)l6_6Gw1!XNOsWIg{9hk(FvXcPJ$ z2!lZ3@!$kp0R4)^-_aN}N*N1*0A)Z3^9@&1LXf2m+G}nA4;Y_~bMI{DIU!Fj_RONg=FCVipMWwmlS>O<|Kr9Zp9pklbPu zc!T~gJ%7?=wu)5BaT|=&?v@)pqCa=MN9*znl`ADPf<|QV%18?pIEP28fJnYlHD<75 zsIiMQcOQY2M|5B)=5~2@kVve130&HvM4r;1x@*l-Nhrt1-`1rnr zyNlx9ys*rg{?aJw>JWcFNvaCVr*1NF2&Hf17P&iXx`^(>(ELD%0Fev2Ko8F(LdrJ_ z7y`dCu8UOWweSQ<8phGQaSz1|Vl3_-(Cl)9Kk*|0Aia^h_MJ#6%!HAlPXge&qg#Q2F~HG!PPO;5e`^F?tB=?|GQefFZ%#)(bI&7oJv`r|i3n?;^Oz%OZ@8c%M zz^YY$7NCs`=P0gES^CS<@*1Z>z;4Ai7tnSzCWa*RBI`dp53PY_)XNRIZ&|NYl}@ru zdq(KGv+G2#&rkxPPseeC4|u9j&DD6F)1a~jMCj4Ft}ctrH`~KfH0vC&slHNbIivs@H2mT~3LpuW&A0|F6yp)i ztpVT3Y9FTEtfS7xrMWr@4K`7WA*s7i1_u~Tml{_`-3*o3j?pPaSn9ZI#p80S3K}a} zwMuKJwBi`P?+`rE4<7*N3q4ZVz)fWFv)Y<=J1kZmn!8&oxHiuIQRo;4m%G?kDXh78 zMihtWt1Xnea{B^Dv$yvaZBA;b>b1aSJ$hKnSZeNRJ3`Z4$$~i$k0;toC_b}(-TK?% zN^?)EU(!+wjh{8ODp7qDW^_Z*8FOFG{jE5&Qnbj)3TNoi_O(;i--!~-Y7dd-J;P|y z*=wIWDqy%G!yvz%lZ2TP;pJqYxLkEo8_TU>lQf&CM=hGx`IoGv0qsi8;d6(Z6) zA&&*ctR!dPk|X1*iIBM?B*);_(t|2a2~irQXX1BGdlWqT@l)3ZjLS(=YbTNTk1C_=*}ruIE^MtS6%LD>npes6v;dVG)*|u zp9z#>(_=M%jCq)!*4E!sLz-)kodlSIuv-mVJdP$HpeqvWRt~92Ok?sJnrL*49kf{~ zMMgPHM<_)}dc{+QnIFg3BQcf}9#&_d#5>9M?bXV&XA%)6%m@S4J!ReI8q zL9agP-9^m zz>XXQjFC@uKum{~Lm8vCmXs=p#%GY>7z8At@*(mn<$zJnL&IKiq2f40RQZ@B9jE9~ zr^wha$4&E9WFQ=b52t$+j;dv+?||;18EWh%QL1^$qGi0u5^s)aL_O)Xuo;;Ssb^|1 zhmm$4v+`=z4ntHtbvYeGR`7}pa+Ib;k?kH=kuU1B;%u+<+^_e~7G{E!I4|98G2|NG z9ptfx?Ct-o2uxZVPzIVsnD@jJ86N2ZHHp%kFcedl_G6_*< z={ZygB}vfjwp_3x#}o2gnfjD9@1+5|6{&hveN>B7G^Cyj*Delr7+Ets)Z57? zK9t=Y$<`8E+{VPtGRie$2L2R)3yc5<)GBV3`03aMX>u2RJa(%D=HG}DWn!Dec=TMW zEeuSQa;jH!47zbdJ36=8+RLwF?ms|VK!^kQfQeQHLfV?wiyd)R(Ry8rF$o@0B#q9r zRN_Be_9H0LTFGVUKDH$z_oL9_vQF}WA4;UR5~^!@v?LKAMH8b7>6rXINXbpZ=w7s6 zbC{)2aE_%W;#S~t=`@q36IRx>HZlWkrN`S>mj(MZT0MIqYKt+y2K)e~sTUt*CiIeK zS0Y*|8F1(7Im##vXJ*rgHxcLnUkAw7%Axx)^p)+^~q?|EVf>Q5+^R>4Jwv;W(>%pq? zYTl=gvm<%ya|FMYx=?W5wsgaT@1=lJYGhk<8YqHssF~F zC%N&Zo9RFX=QRGK50IS!vT?K-Eq zOD3sVNz3fn8>$dW9-KYb@5p7MM51IY%5IpsBn;StbccrqDGr|U!ibi}!o7p&zC!|Y zO?Wiw=!UE0*iN#H$a1o47M&^zfQF8zNruBN0DsP8JPoS?qJZJ9l7kMC=2pJB(g`O%0o`(hz`8%BJTpD4s?fg2n(=(pCE!5-9(N{2Grk1{AUUFp(IuyYK}JIM7!jU{>o_? z?>=o~Ln&tRT4Ej_Lbw4S41mLdDh940M8=@fI)BB8hVrUp$bOp1cJ1UEGVkpjMutlW zdLrTV3j+dWCD;HWxO<|)JU|66Pb?rxj#NU5LM!Cia_F@LHrh|}jFL)PXtGz}3mb|4 z$WLx8?zjL=K(fE>4!Z2Ih&-`&WpH1RX97ij*=9nUkz%albU*9(EXnRj2F%bBs5&O#D}V&XZCpMK3?$;l zmC&A~P*Q;6v`=lC;0T)i2D0TcKqzB)IWA&X!sGy?M*0#aBWvU;Vi7mzj=fI)JyY0> ziY*YyBrh?h>WsWSLQGd=pEXZ|3lZBM&X_-E4#x1Pabl+=kPuDr233hTXHHOiXUdx> znjr!9(Etu%v)U#s;{qdGJyV|J40J1GyxfFHbn*UTGY2=322tWJf@ZM$V&E%H_#kA) zQA8%1qE9enuE8a$fe+StM!cI#1bI?r774^W&qqh125-z|5^+HeLvlPqo+6}1GLP28 z(=1o?K`UiUVi9X1GKhN8# zLT&;_FfW3y^DJPmTR@TxP2!3sO%Xu{TsDz6B_IMXXT*#OW?hd)hmSNx>?S1AzQi+B zK80pi^RD&AVj;vE3kcjvQM73CzLn=1QVy>vl(Qh@?H>}s4C}x(0;4s600AZ%W22z? zbIU3#6lx3lwj_?er(Zji9L`NZ{!kD^k*1Ggu+abnVXb_jME0cP%rtcSF#ra|rQmbr ziCeBVpix~0&LschZ4e^tg0)W9W>QRH_c`KCJ>wv;2z)Gad|xk(IuBYi>?;vN$RwlB zGl>@%1Zoe!|6%lcw_>+HCz}SQej?<0^}+u}QJZ8$K0R$VJ`FnTv;2Wks~aND?9s~9 z(`3~rw;TjOa;0k=Z+dbGZk0sJAyOShbRJ%mgfsR!=+&S;j>SAJ^j(I(L1jxq$H@u8 zl8kFm0EQah6MpYC;3u={H$+B?&zLJ>Pdf43X~h$2l%}8)Dzzo5A@utrM=U!6{a>O+ z?NrB8R7lG| z&s8{(0f6ozP3jU+jGBNjgfW!7Ud_=_uSm>B8v+*= zD>8ZjFBXR*|6YpH_DELqiKZjd%zWarWkLUC1MwPGc3o)6XwU#lH+Z3}|7nr9?}Pz= zXFf-!{V1o1+}7U;^_O5|+ErpU^3S)4j6x*p@lelVfU^oVmO6RX*@o(+ZWQpcZfsp` z6=abLM{^XG_CtNilV6F)CN-A^m7p^81v4g;pligQ z+{*QXA^m_%JyHU~=YmXd>4$(6JkS?om10_esBZ+>P%Kbt@g;3o7kW1XDMUgQcpw1i zd5CgEUhwD%3b%SnPF~yV-gEMBfRN7T#7098mj2eAo8m@xBD^SKTU)jKa+L9NlY?%; z?1NIBEvSEAO$N}!r(=7A|d;W%MwxdtC>!PFH7Gr z1zUtn$#~Et*2zwFM0Zn$5II#pz&ufbZ$S0#RhNb?ciu56L`qK6ykAVMThVZ+S2+xa= zUkGezR#jwieU;Io_j?6rPRnJYS!L-cQ<1onr)eAOKYlOR^Aka_B>qQH5p>k3c`&v% zBSIoXMw^A#rLvTCLdsgp+pm$LD_NG#qZUYLZ=nk^|6`+i5^!FUBT6J_W8!+xZ}8J0{$5m!S9xHNfW-zFOSy4Y%>l56<+ zh(y-Ahv4oDxw|SYtVYKU=%;P$LP=MfwIruRH5#HOuB3Irb<7@_D4Z&X=ue^+A0qMq z_w2X=it_k<4&%+LM0!Pp4<(Y>10^I|i?WyFLtCPsuk3vLX&hy)6g9i3grwcL$GKvp zYLaOEi7N;(d>C57i8s)QT%+j`n%S?nkatcWwnEPbBJoPACR{m*w?mV3@$V3HQJoHd zFTDJtNG|yMk!%!}#^+DRqn%9Xn25GOadCQ7NZ(y(ZiHpuz6h-`rO%&KJe(g-dQo zDl#>53Nka%v0}5Wof6~vYMkF@|)F-=h z%l;hLd|O@a5_*^%<<-V!m4OZR4xu6d|9=1gAP6)V0|kS?;Lq>?3Jd~*zaX(FG!6X@ z0K=ls_$+1#2!_L?FpvZaME{5ZBJk*BDo+i9L?7_!tUeDkl16}YDFj*-AcN51kr;#a z6$OpRXpng1UJL_>Ok|W;=zP)){egh#QTkPeIRmM`tn@kE8ioO))}r$W zCC=%2hR<(T+SB&^fx%$z)JrWg=>EBYXSF+hLSsvhL%_fcRGt|cgk7qz>*QLIafZO= z_DMW`yEwN`B=`vqPfanrRxlXJJliz{g5$3Zgu!!10_1gP`3 z>Fgm8%(KdFoWSU#w3HAYC@p{ZKYFgmExbumMc3QIbt>uQ9=yK@Ue9w~~d z5gw{E>!_u;aUw}PHww}?umA_*1_HV*B2?F^Y z(+XQ(T2{!?2JbS@N@FTC68v=~vyCDl5J43J9^bl_S_q9M)&nYkJQPy2;mYcJw9vj$ z3rj{fFJ!=)KJA3nC@)MZ`$8~Mdhr1ON$OEhrb}E7lP2ma)jGf|J1p})2@M+QrSIjt z1~`@@)mA=ii_(tA`BlF8A(DGuuUo(X2#Kr9=T^xe4upSd8lCR~!^zG{zUuBI zrFJLOzV7NDliCfOH>j!`ZL3O?Ec?qC;@1hKvb9X~&C3mojxH{Yi;un*6S3K?hB4eVu<*j&0X65OuLH%c_v zs_2L^`J7uLq?mdX@No1z0le34FM+UiJ@aMa#V?WfJ-ySKa*5U$lR5P%i&jhJ!~Oz8 zp3a#}mC-WSBId5yF4H1^3bf=sLdK`fN*!O%sPm>TB(lO-XLd~0>du{ReFjXSrmK+>L5dBJ{B?zOB z!7eLJK+u|D^k<#)Ls9EVro4CN+0gl^Bn}1bJ>;@{is_4iO{nKWK%faEqK4+wOmt>KNwLbIWANx3%hVyt<@3kly(iARB8-nv{*%~xog;xm zey#+($7QDIRD;F<1MT;}m0)ru;#xGzoYgEus6Uq?>O!z_8$1a_+9i1eHN<@brQ|R| z9O|N9PLcBvq)=m+BBgaJHCZ2$pq?6Z7jdy+f~uvC=M35HjlE5JjzP5w|2};DDQzgduH#mrPjxjEW4DiMBQT z&zPrek4%i8Y$CTxcShojnj5C3s(haVGO^uM%a|om#~T+nU&-~wVzeC}z{8Us+Y-ua zW=Scxif35Q$>Jil?aG-m>l!Covw-Qup)|I|2MPM_qqdz^P;;qRlv8*n@v079*)&e* zQdxM@@Zu{f@I#%srl81t;GH?MW3Tf1MP=!^QK%xcpHmq{6DbcU3?i9j72KG`O_rU! z9_rVj$YS%a6k&7eU8uxwylix#ng@MJsS9>2D4Q9~Ty%#Ev9q%!>4&vgR{ku#p)j(s z&6EZg5 zpfPcTqAFZltMPe#upsOo=X_Qm8Kig$9H3O3i4hG{va#pYezIsLx$&~5O^a5RzZkh_ zT{(TV<_#)L`B!e?G9RA!1)S9zgjWvSYccBR@~}C>66Sn3z-89RQ8yhPk?VLljFl=! z#UFObl;uhgw>Y3+1WPsPJvlHi2?loi zZ)@u02*21loYV5jjNtr*deL3URC6aR%odQclKMMG_u}LyIGVo`n`CkKJ(^tOK{zZb)Yl{q#j2=3anB@1# zFUpuLS$WovpSASotF*;E)Vc0f^Zx&^9&L5S`)Rq#C90-#) zO75xP)e|C}Hz7EB9AR0HGYM6=$;U7?wC@Q$1IQ};Q zd?@?mh%>9Kao97-?HH=Rv)VBXxg)0l&p^SC5(=_3aO0(_L87bfHxcPDaHxzqQ;kyE zuVJtmV2_x?0*_h|v;#7y@TesUNjw2Sh~p)R6g0U3gDiOgnxjyvaHFNkO@}Xfx>7pYu#RVj8HNI6mOPKG49nYp=X% zN(;#Qv$0qnYn#S18$og!onxmE*%84RgT#CMA6nW!1OAPvO%AG3z!095xxBpNK{E^6 z!Q+@jDw2#k$t1~)pKJ-E8-PDdHkrIHFIm7gnG^sc(5*P}DT?=^65=i!Of$3W!+Qmy z1Q*0fA0|4-I|K2w8}h0;mWjjW6APXvt?RrQsgaSa!Z}2w zz`}8>6rYI`q71&6oQkb0(wrI zD>SLH&2&RTnGnv1_)rXU2spk6(1S4&y17xP9lSr6RNx|6(y&XiuW{I!GY1H810HIW z%R&&&V`PrVm!?THx_Y`42@@C#rJ%B6xapfj%r%n)yh)TIH5D2}%)^Wd^0^_M3F|aR z-4rUM6&11xuld=$8o){0-Z-Ju9HVrMIp+w$NvXWS8$mdzDd-^JoS`_PnA!V^nrgwj z05-c}l+mOPb2~SRLW^+PynHyKdnvjTx~e?z88rx@!&Jbt56)^~KUmcxQX#|I6Vp`9 zA#i@JTPDgA=M({Km&udFNkp*YkjYYj92F-VR1QtJ{)oeqHkgpHTk161GM+JzCWN<~ zlgJ^X?oLfY(XhHqNajq;VGHwUrrY-`6XY@^r@j!!y=qR!s=iKRC&O1GQ90mlKM5kLeAJyH%xz!{W~98{{G%nY9jQmg}< zT0HU!?0=l%m`UP|La{i2AeINop;8F~F&H*P(lFdCEb7keO=7zIHeOVj{;?789IrC71#-ws#!wLln4=e2aK}Pk&(Gd@bD2p1i--I7ZX9; zyo@WW$KnaGA&7zFGqv6dhQToi;9^X<#o^lE=CxqBp^gMc4st`|r8-u9I8E%}6Qv#I zhdrxpk4(^tWN^!MN@>)t6;(gq@v$k6Do2z1Us)aBXxfo3V#x}?73iLapnL!T29y3e zo6DkNqvJSTA+zK(oS_|1V8koYIW-uX9&Ry}wuuNG=2p8oN&X6|x>MjrYz!PsKr73x zI(8sX)(z&V5~-c6aLM9cW!{VhC03)c8S=xmW)1F#La_>vy|`eE9%Kc!SPd1HnTM8< z#N&c5Xlu5*;e=ube8()}LR=BL z?kRd)Abwmj)>p0WEr~HXZ0Z&ULx^by7mS9{K?OqAw-b?&CRQ1p!3Py3_N0+9o^Hm7 zc$P|Dy@}`n=#jt^`fo1y{?yqbzoaMBxYJ}Yo2~9*N5-0q8wr#E(*PL_N}-6WA6%}%cv=PQWT@e^GUQGQi8&m~pCt}3?SMgvK+Zw9V{R1Ye( z4*&!3Hu=&yii$l1=m$l{F<=Y<+uX5hB-HktK4w(o{){}qoPPb%3>Oo?&*Z=XkkRJn z_`YAjn@vjh7JJT0iWZ3N8fLpK4xpAeLNJK0jwR#3xlo}Y*ol`W1UbUI2$`XHYc_7R zo^g71!)9ke5#5o*S9WS+2k7u)K9TAJObOd(8W5~+QQi{ecdg%}wjt1ojplC##jK^9 z4&L)&*NMMS$?edXb6zs~_HbQv3;1_2;<5acIMZ^-ht7ONlD3n;$qgGq9q>0g3!E1^ zQ5Z+p2OOUWCxJv`#n>}nLA#QXNLZH*sLx^@U`;hxa+T(Dnq#g?8jBeRU#I|aQ&dt> ze;jc>8{V;^FB-ly7ilD!ja4#;6r_YU1%Cb#aum(56k0YDFz-~a{y005y6@CX0`1OPu@(6~%CCk}tbArR

TxoOzvHwRL^eN0gv4P0 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%0Ar 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 L=Wf=f)(aP_aRv|q3Y@~S2tLXU!O;ZlSw4$ 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⌜X>+-QP&JvQMez?No9u`~`Lt8`oP;TmBbO=}!=Qsf zxWW2HTsOCv&^WLHLi^Y@^f5#b|BeKa8UzWL(-E=(ShZOhCHomDfQzh1t&3xlkQ@=f z3L2CvAuS|;y-Itd>qQsw?8^xwN|I=fA*eGNsSc3pBP44UR1TE-&B{S#NCKo5x+)oo z5E>}nzp7;~!2k#RK|O0yt}>Iv)4`7m+PV<&KG^WO;$}9iSd?Rd#`z_@Lg>lz5~n#3ZfOTjG4^v8*qorlWqLt@?ul%N}MenuG*gaAK8gGGtlI}0KeErNPD zu}HuKMouzw&OGFbMA|ku001!m%G{w280(zu(x(m7&C^?;y3W-M< zI}SVu6M0<4Qb;7v%NPC#JVCJBm54+Qjmk5}dsi&8L zzP?Ad3ufQZ+l>FDxuKvG@tOg9x-x z&TEq{9E1qO?x`4{P%2x_`w&RQ3NQe(lO({wIzq|J`k}f0ObQ2&`t+^k4~TR`MF}R6 z^d+j3l_9XO$gzx&soS*e9w-CY(d31dofyDz^rKoqEz4#p9xj;N9DAI?@J7XkNq9t?}_(c~nw z>{TaRN0SL%P3Vyjo+rq~6S3>af^N~l2vK??or(2Mv@z6OKF|{G3bmWIS^1G$o+*5N z$(5%n3cJDDgeRc8D~wzme0ZQmipt2l(+j0hiAdRT_nwM0L;Zf935F_>^R^V83{^S| z3!j^GxvWu_yXzKIHJQ-W!46ptiRk^Mtw#@7$0bD{uhgMCnyFfWTc9mY3$+-|;bW`Nf3ZI1lfISGX&Ko2-c5PoeYr>%mCRBS|Z^{xEmRsl8PZM zWe>y*Ok9D@7{bw>0rpE-kgBkqKzq9q*}F9HIf~{Q)hz9v#Vax_S6mWrwKAZ(0|6>C z1JL5ClU#cil|PKb5U-?!Lk0wtV28v)6IOuqT1e%Thyj+2q(50?oq-Uq#x+m-8VpFe zuNhS&?js&>e-Q`+05T&j(&-&0A(HujAd|QuMEA2;$tgJ|6RNpP#kWhK+ZpYH*7-qW zL3f&h-3v}0EKPBXRC+rMdlngY3E30}#KTBosay%<2{59unyS*A{}wCcl63wHISLZ^ z!!=P)4fPwN6!y@u;!pXW&VZ$~I**Q-MnyIISe%A5;E){hg&Mr4IW^G6v+~Yt+E0D; z4Am210&g$s*JGY1W5MhggiA4|A2yWhW&%uDA}Zi*teBCO8H-hsp>PwJx!$WvOMC#n z)%rWAmfpcX+>vVx^&?HY%P+;@x;TSkN|U&;yC^*VI}={R^8?7sQAk8><+T`~kj)YP zf|em$2hiuYh>>L20{}y?&Ae?`6|7duW5`>-xus4Mn0%o^>lb*}LwosXL=y`g3{gyo zY7qXk?IA<1API~_O{AZ)opQxpRS*1_88n(^l~XDLXutj}Ddp$Pfw2z_4kSpEo~EXW zK`PdyrQMT*GZIYYw1U^vxsskuisHLcNnH;)5P(LPyrh06ORkU$_A-HGO|Y)w64)1X zi6?c}u7li+_ICbQe$4R^NxO@7E@@N0Se)+Z(;GQDE2_@5k5OQLl3K&+)0e@ zfVCZkROe`zq8;qg97Y5D-4ihOqCC01gt3qp4;m|F=d0V`2Pm76s9?P>IqRT^DWkrG zn3VVfvcaCfNfSEdJi`PatQ2v&^1MA@lW!>8DcV@eR^l3afxC+8OPNBJ7?>59zw+Rx zJB3RLx^qqOFmbyHius%7X{G$o+#Co*;4+ynBNilIY>to+GNZjMmgVb@2}k@FQ(^3Z0}0pT3YOv z2-Z5M-UP8DGx13f?zxv!rW6ZK;9>t{&U7TDr6U^RbgHc z>I0B0H&iiUlV50TqigN%Ym8+j#U3OPCZ;Z430(95#r8&zSOfOkBfqM^E*pL)% zn3r$y<$|Sj6Z@LvJ=*fY?l4*L=TQ19L?+{y1hfwMfllbw_psL%_3Dq09MOq6YVn3= z?^TVh)DV#y)Oy3ne)&g%02B#By( z0w)VQx~-+FdkV5ZEmQ82B`O>x1ShZT8xJe#dMt%03Nl8dE6huc11j#^NTV^2+(QH+ zXp4-h#;WXS@Vkogs;9mylF*ICGAt_+p=hg|#HeYbe(E~Ok){y|{?09?a2?3X4XmNlGTYvWPV9mOUy8hfTl{ z6=O~=DO#%JA&eZqIRGyL2+T;d#XCDzuEV18GfW~C6}gDH`0b!i1RU0^)BNcyuT*<= zZ@o>uRH#1+Q?8~V4OLG!!H}}60RRWw(McjRyyG?aNquI>;85=d#J8I4H`b^97Lh^PvTQgOVCtvcyLve!#V z99))5(8k`#B6AzlvN<=JQxNMflf#@?__gZsVNHDSsW2x7!;E_RdLTc4$71Az-7HRHS#MK0~ z^I~V$DV>FB_`AaPCaqCYU5U|dE)AxfnHe6rggc73ek#SZL)~*fPtDPr!;}JqjMGGr1d=bnG>;n*(FrdrCA%u;sGpk~ zY?2HeR<@F{AxWvfX{Z_KN*D}yUc=FNQMC0q7RJ|{9Iim$?W-IARDN2mG2Omcq8&XZALYbF3ddE~~9 zM14|HDP$UHZb4`9(@smm46l?#)ME*{KaG9-E@GnRQ9~u6ttwAPc?{N691|vx?Qc=3 zTN&LkylT?ce8xy%+n^GjNa+=u5aYn;eE_wkWP>wC$F9!i%)2 zej`ZIn<1hfM9#T1)YZE1P-&BCvQD)blqBNG8zic$ER;`a4IG^-s;5>g`qOGbRLZq= zT#J=pnaYO;7~|QWF1|)SXolr1^u?moS?CrB(_b4s3z%+N%oT!YabvY_wNDzH9x7#C zqpZMcNQ{k0Qxd!j1ko~%?wu=>Uc$*;XG3zagb;cY0<3CMva?BzoposZr-7xcj?z>l zqJt{yn*yYS4w(RE3rp#7O=4x*Em5_Iw&VQ4cZ%K)q^UZb-x+1M59X^%myV=hwftTx zf<`urHBIK+bYLp|7p~d&UyhXAl&lDl-RVyiXA*aW&*goySFWbiz2jNTf@##XyA~go z87@?kNmZ(;1C~2TEdyeOz!z~E5 zH0K+|1?2YJW>%{Z%V!#4>I7?8HD_@ubk>u7Ud1}DrCrGAfAfqD>1~>iH*Kg? zQPuRzvU`;mi!DLS<0>fW@t1TJ!MPOS#@qPRtJC7x#i)^EmkM(&O76hMRmOD2dljD? zcOYIhjrX0{|639l!j~{J4AjZqb}%DjX>B>ML5xL#G^ptw_HT|(lmBTZn_SY;-F>61 z9GI$DOt|~oWJ=PB3vlb0Wo1NZ_uNOVHyy036xnR>CM2XD3Aw1@Z-&(PUR!d~N#5ax zfn5^8z1*pi-JYgcqc={Gv}vWU?421XJBwm%i8qCK%@&H4Z)|##OQ`mbgs`f--Md-p zbB@+^4_e_y#;J~A@JeQWNj``pAl&RMdPor6jY@NDDqF4M;Y)0yA`Tx(PU~%InoP8u zLqgxru5FG2$_BtZgQzZ!44lVOddDvHh``OSKA-7&W@PN^&%9^~etF6o(8f0G?A*96 zQ0)zEjUx+iuMDny z^YF~h&g4^T%&Mk{m{5YWFX}??2J9q6JcRsBYsl1z6ljRffd|?x z4}6J+c)03ZP>hc64U}evEPyMTU#sdZZ*JNHj-e2IcP37!{>x=xN_&RVePP; zjLd^aWcFp-9&1>a>>8)Sa@_@S2gw@}q|({YM;vZx3M&YQq-dK^ZxQL{RNAWCEcMyBb9pUFD@Kk^W-sAEZ-Ljv{&p2KB=s|%x;0C9&*tw1`!DkMSP}EiwX1gY12G$0xLa4 zSX5<8JH`Cm>Cko0Ei^_NFElh^&E}s(wo#JtN=>H^P~^0!i9RIQ$|NkC2GUaQ8BuD~ zA7TUn0<@+|y$}WH$EE2A1j;w9TPIL`QmkzIE=Nc&-jfe+K^4gak{1bZ>^rC570d#e z2Y`fBBUos%!fGP|F1|puW?L$NfwYe%0yQLVjET;ONM zAYKd}jr8vq@Z?vo>0YMf+Ves#hnDA}fZr81#-(*S&Qy*GPGZa!^y6MA2#)RS#XIUy zHbz@QY&`dc;v*`2#{fu2SyNB+o+tX$1b0c!xR-RI_$So`QjAhi zGZ@VeU=d`VC9L1)5bf(8YRhU$5q6=)q<#?xIf-0hs%1p*NJbK;2~u7`Q3Cu-q9|rW z#q2_kkl`@%?8FrZO9FhB01j_xGJ)vW#cB{=10LZqs3Wx{6p99R?yhG=yijINsSIdE zt1T6Y7gRRs}MA&{U?i3;;u(7>MK?$$5xS^F@@|U>I+vW{-+|IM8dQz3|igg zv;c-6QFVr+mX_d#w@8U8aD+&IFB(6N^mS6a#TBTu(oWz;Q$nl(T$a{N8TF-eTl;tDU1+T{>{$y8B|1iZQ`W<&7;pvAZ; z5UqIL$L_EfnOGP~oV!k>B;UB4jcm<(|*eQiQifM#$1&w10A@r&Pn#D*QKAK_ zh+2SnWtuX1r5}_Ld84ywMc_R8UhIyIB%+i=@y=vhA1T4P3qK@P{Pgae=%5Ni|FS(XSkcGrbMk}xjngyXa!wml=( z?yK{nB?2!|HNHGj@>-??nni`F;Z#WDqW zB;`=;W>2$505_!M^aVDF%psAolSl26s8f>r5rWJqp7gJuN7S^nfSBW&B)LmTk>bTC z*RzbaTPwbJdYwRTfFejT`=l0AG3MmMk+8;bdW0#YqL(Q95SrF_9wxsJyBf}BD9 zi04p9qtm(LHNxr4RnrZNc=?+Y5YTg9r8wZ6%!6nMwSZ%4uInwXPCKW%X%8F(X~S0s z%=|If!q)cnv5a(ZkX@t0fvO^2r;fWzcXrCfeQo=iFCYtBV%W-s8aLSGNW*8zqi7H8 z*+&P{D5@Hja@U|(sciZ?4Ln`U;+BbQhsfhqTXvd=k#1iCON-GsRAfZ8jKl+wE7;?{INVXC=c4kwb56}+2aUsoVy#1&eKRjU zriuVY_8%jl0NX@NgC8S?N5lLo_oDXPaRx<*%pi*NR={PU06_(~L ziR>vn>r^YnU9wJeO6A;Co9OoeS)QO_ zZ1i~Lx!vU1l!@kZQ=U=fq&f`H-?TW!^xHp17W63L>7sqBSX}e)w{Be>#_yR-v6e{% z=W%xcC0xGjOXfa?B4g+VGG+fxR@P90AF?7c0RCv{Y0@DAO?*gzqiquS9a;dH&5YBSkL)qIEJ!L`85f&CW9hKzxf5f!Mq?U7q*;bfLn>?C=2rov!~b@R!{Da*1<2 zS_B_rA^@_4)oKUP3{#&a`H7SrY37llBS~T{K#7P^Fsp8TH9F~1!$Sfcaz}IIzuS0} zN+19S@Bjn_06t%U04M|i0ER!G@aSj`9s&SA;VYC0)Zezzxl-BE zAbSfm3L*lOQSsDhmEzwlebjUC{I;(2|Bco0JFpDuErXbK<9&YDZ@JxqPkY`Nzh-?b z;lp!OZQcImBlS)t^USZhLlVbm_pw^_zCWewyb5}Bgs4l3sG~K>d(45K%fs66FU(u$ zw>v6ZEe0V>BJTsP&6{?eyio)~05lH?0zfTs3cdgUinDVFD-IM<5v7Z4Wf4a4#B&`y zKnuwo$MOVre>~9=dI7MIS|S3*i*o?jqRA@wy}_uv^4>*g{F?u>lB{6>JYE15`AL?6!3#4pI4)(SP zawUK9YqictGl+^wrSW8xvScO5<}_&Mj)tf>Y3> zuXbHelJuV4Bk!n@vWOr>$j*3M-D zz|Cudm8;3@eR93Bhy|WK&D7r@?emN3?m5v7Z4kIF-DZy5?Yd!u-OEf|_QLQ>QC}}8 zwll*>>x*p>uX~%XbU)j&vpF+si(tFn)4KA3fX+67r@}Z{^xn`MBN>UkFK0lKCNgsG zL7~qxM{q-lg5a0EEwgQv^Hi+z@oiIzvoOv(KH$;lYim!zB2(PZ03S*Y`2XNC!bv43 z9fZ3@xK7mg&g7}Lq|aM2?ski)nrigd>zNHk@%r>@s)ouSBo{aDE5QEQzfZgu)8yDs1Vro*H!mmXPtuE3GW3v@_Vb3hTHi@HzCi!=k_! zdht?-sg%~`7pKS^ii2wv}-RAgplUU=S!Nl zWlP-J#B>r{h)XLr%jP4Vln6hHB$k7QJyb5`N?n+IMI)r53Oo}H9amIycTBn=voZu) zRLr_;$64S$1H&X+f!l@%h2NG}`lV5N1dECA;I(p!amXX6OD5ET!r~h1lr$l4XJDwF zW$^6WbKz?UIbKFqq;QODR(rCMA2v3QZ5}c*l5;H_2mt<#rb!K22F*hhq%>pEe0!M_ z`iD^V>p-Z56K(N4?HxLTW;Q`7SHSV%H6q01=}Xp)Sx*Oo`McdzCf zBZ$0iD}_R>EGHPz&a&eoZ4KTjb0n0DS+1V0sxqOY(nwajGC>fIrAKn|hMnndO*3t( zPm*|lmgz8T)6vN?DpaIfor#$9G`6AjrpKun!DA4CA1Lx@`CQC~ONF6r$hv}U9)en| zHM!g+NAOai8B}w2i3p;rRbtOnfkDdl5+K#l399jMn@%xw7PPFbiK~aJQj!AD$I|H$ ze3mqF>XJC)vpeX+VRA=S-9T1Gdd$h6m~#NfL`VEr8LG!X&n1{qc_dj(p|nHqM2pSS zi1AvXkFoC2sub5Bd+ON)qEt}tBuSknS2h5kXKqQP=YHuT^;)YWaVj3hPEV|%j4vr! zHquIna-1AHc@KLEEh%Aa>$Fw?GG6IB7rJ$a>1njk6=Y6#v_TQ`3!zNvc(U6SG^dra z!=%RnNy;wqj}-k#D4~PD7Zm}O@}i*U zr-PBdP+=~yoKs$J;(~!Uv7FH9nvLIbk#7jbCYJowgOG|BvIUhwl)5@sV_k&FSDGm` zEVS2jGlpsnu(vREI-^*cihH0DcW6Z%r;kONaF%h#tV=+QVw5JV2cn}jGiu~4g|RZ# zIFUDlcQ&%6R8scQ-rH(W-wV{utH$j^P+G)`)S_m>6WT% zqGR&82Nou6Ar5VUR0%Q2LP+VVCdNIb7oQHa{Yj(g%#5(j2Q$J8>n92t17pp#txi?n zq9l>?cBX!zW@x^9pTVZJb0V?T2e802lIm^OJ(t^gC0?_&en=B4h&L=c*zdx7v#m<# zzLvP9%q7-T*J3q5q(^sgrBj#B9+N*sO^)z2i8c4Dn6qPg^qy%?N6mVhqAUA9gZ%+V zczum02adHfqZP=P`=?P1>(ly@KW#w6Lm!_4pH}sPO8TfzUC~VD}L>Sqvm)LIR?)7mPwHu zvUj*6Lyfs!n9If;!Zti?0+l-XI1AX66R@4Y^q`Shzv#7&kcOQx`4oZlI+*V#Ssk09 z5F4=X8^ipxaf-cbkU(I-nffli(v-K`HJz%@isEY)lBloB@~JtbAG@R}!QQ0XiKQ$X zrZU|yK*1up^(P_p3$g;6qzfxrBr_S`K4JPCXw1G_^tyVLeG z(=Ro8D?IFH8#tba;Zz&sC`K^&s*;^8aPzO&*(AJ6JF9~|fcd~&1S?b8kUPY=yWF7^ z2*j)`9ti#^)KxfK4G1`hfH3)~fwGB{Q$p(75aXAPS!$OwG(Mofnu#wsX^W6*5lDN4 zsB95MJS#sO8;;lkzmXicu^_xEbV3TZu^B2W0Sz*H{}myMq=^Tw)F(Z|J)ATtmAV>8 z+y=B;|2w1d6sygxdCW#^TpNR+kq|%;IUOCsKA=JRFByy|Y!FJE5z3^i5!7V0d^sXx zo0e;S9_i$kBsnU3>aXb2!qHgj%+$!x;iP-I zN`TLf)WN*bn7CZiiPCGRYO0Npra$T>E9}S@%2=pOqmctR(h0n}iR%cI&(m1$qG-kz z+Gsc_S`HDTD@ml!!%!+5Jw((-77W>YGQy8TY|NKKNi!Az$*Ymm~jPf>?5d@Es`C=#XY*9RW)r<+uL*GRW zU!|+;6M?t(T(OSYe%odMb5<#UFPApUy zp?r+%2iJ2~Hnlpj(mux+#Y$^{)TDS%n|{Fj%pJ(N(6HT;Dxxy^yqZE=CCh@6`46Ql zRXd~2mNG-Mog|7W9@C-W**!th8nmr+6D~|=rtNId?F-AmqachJPuSZJG%_9}%fCgP zFl{#$$#lx}7eShuo06{_bI(`fa3mR%*V@l+qWnNF>mPPyz2 zb!`?+uvPG^y5Y>ZvGdDR2Svp)wmfOZp>am3S*E#w8dDArT=iHKA5ubQ3?twt)mglV zi#{@KPCNyd6gg5AlGM|u(0#YjWa`#!D9Jk_G-(gi`2{;ocU?UV*FJtSZ@<{r z!Xy})V*^}B2 zp_yEXvz1|s5rycvb==wNE3e9f!6~F8nF?JRb3{aEV9BjX0UeZlkl|FkBOPr`jkrX_ zj57Lbum!9j{g>0?^5BdXNs7v`jhm2&kfPzSz+F(WrE?QpoT8=F-rSVX+{)m*CpnF! zsSzZ@dH!J7uA>d!T`Vk<34Gp06I#>PmsInN{jaVmNQu?35b_Ni?0~X6!CT;@91J}U z_1s^(NliVu-SDE`12x_h0?IAo(iE86@$5GO#Xc~6t_;GQ9qHI(nJ_{oxIp_F0j$zN zFRH7Us%^{`39OR)8ovbz(v+V_k@^=o8A%k6VRi#$aPK8)&Le{n-Jx>bu@POx*`Y=J z!orU_!q^%G;hyeOgMYl=Js$v zepOuZ5v-(qqa~~!3|$YTE8o^|-n6P-#E&^e7sfsvRxO@l>|g1f4QsTQ%lQDW z-g0OXnZqEsO+#2Vl94d16~5^%8eJJs<}KOvs_2B!n8HWdw8tO{^_%iSXYBAZ%o7ix3e{3R!stlOn$Cb|Zc1x8M`wF|54!omPE3@bk(yb#BN@nAwdHN;M&#R| zD3%sXRHMn7P#v|mX@vL4q?M2Mmeu4a-s&)r4F4cnVhGtNfJV+U zJAxplm0YZN%XDI9`>NFT>E$DJ9oB|UJqt4e`5bkC=#!ohbgmX|vu)#Wjq0P}4m$5H zw{V4oiR>}}K9al2erZewZic>}=9kE`$kWtm>>--Zj+nVzz z^VE+PSsFwXCSO9JWX(@=m~Hdp#qNKxPR61x@3w>*4vysFdnZ_Q^c=>HtRBeX>nLQ1 zk+iWct{S;$NbY8eh)PY6?L{iLWO7um29lo7=MDpPx{6`aMw=Ow9I}rgLb8ou`cER* zWRBztD(K?K=_gY?@AZw(1eYE7w39N+Gh0-b79S;>AiuF1WU=%Ti{mMKY8FFChw*$2 zn4*}`Qub-=3cD`rVhmrrmPoU|ZIQuucRsfc*J>I|W1$PJft;UGvAkhhL-{zH`RS!t z)g7L}4k_1*+92vrdb9P^+0*hW!Wtb+)AI}*m0cWteTp#>YnT8?2X)A%V+r;(*R8xX2-9}{t(Ii}T!&yn zt4!^ZcfnIDbEke}I@d6}`#uSd4ak%$8LlD^riq}0yum*VG<=Vbh!mfdMpEYzg*nS} z7i#d57(8NRWwQxjeJ3nIxL${dQ7Bp|S}juHpKqmWsR*5@+?Vy$BA073EcJEDiR>z7 zbyA6k>Gl-!!R0Ojpj>HdVpyeV8gxAQxu=X%vG~h#^G4x?6e~}AasrCD-H|5DSPN`! z0qmT5Z6ISe*b6qT@4))XnZK=?=)i1 zya>OhZA1Oxzn!C{~{Tq+p^fkB{P2p9?${e-~c5jdn82>yh@VR4AC00jqsLf_Cy zT&6h&gUTflS&YT`2LVgulBhTaSrm^!->}(?s%;mTfM9d?_zn#GgF@f%clr#$z6&9(#Gg>mG*YcKu}UaVYLoIG1)$5Kkl93>18Jwj=r$RJt}6(O z!7aGzv|gnDwMFr?2*p~}HJasd*02St2m`#!z>?}55|IOc*}zo!d`kzRic945Z~z+4 z`Kn34c!~VSC;*SnW1*s%&^J^)H?BUrk#jy$5NA5P=0r@ApL z(3C`n^Z6J%D3SRi&8?%KcC5X4Ckav9IrVvEZXq# zP&Az>O48H|hfC8`-8n#{=tOJ)#n4pVtV{5t0XsI2gxHKF;3{23C#g(a#3nR5KN+s_ zOAOjXZAxarCz6zpPq}C_V@5i#3qdc~$YiR_B?;M3-+vd8Xass~e$~1kD zoX9}TqpE^w6V-Y=@?2DgNWcV?fVp~A+^Fjr9z6ulKGj!!N{Z(OF*E~t>^w2pUC zGYX2xwMxihr~<7zwS=2s3I2D0Y0Op<%S`c#B&amWJ6RX2F31M6&O09Ju`Z69xQVuG z+iaSxFS=oMxd?NP0o!NZgBw9HUYlP_IR1L!>{_F6`oS=xM)yF?$_I$vTGhyjK&s~S z%q>7V7JOki+(Bcsmm+aO(6sF<;nI00iIlke{)VJ4sRAz&CU-*0l;n)x5u|X@veb{J zZXN*jI0$Qo11>zq#_+;U#78DOE3>6?0F8~dnXb&cfhsCZN!F0pa7YgW z0e#1jel%B3h=3Dod2Izuk>lM1)%x8#D&UHd_prrKnPOy)4K=+~qK%$Ye|aSFO~J&{ zbPt*>HA|TdoWvxkT1o>m?_GPQheo#*zyv$YwOARFKy4i|sauNOycWX_wbkqsQE6?q z#B|OWNhupDgA% z@M>G)dr@UT>@q?7HY7{Eghdr!LeiA3ASAy)2e{bF*2rU0GX0K;5YMzmXlT{~y=2Mt z9YrK(0@LC&DJpf;OXJ?o4$MtRv=#z#O1*E-erA7hJebSK`YRI0UB z)zUqym42`{LQ@7B-90kY1#=$w=FZ6#7i(x(-nY{}ir(QcKI(=hE|Lu=YB@+CvUVyP zMOwfXi*s1;jQ2&U0?TL1iF726ol=MS58~9{X9OK|Dt4f$UvWuXH6Y{@=5qL>6GY`PJ9!vU^=M)37b#9ri*|~#gPdRHNct@;aaPT&WjzW#Ds>=MKak(99*};Qc7j6674T#m1}JEkoiMW z73)T9HT?!EhFoVR=*YKee`-S#_mn>9;f!y2X;yriOc$kJ^hPc!UAZL(Pbr0s5?F?9A3+!B|J+2c&N40a#t zh1#+460GA@{G&5uGiW9)$>XTg7p9eaA8#?LA@zFdb1FNdpCu){`HL74E5K(oVR4~T zIV@zf6RnR9fxU``1RYedSqf8wW?2lLJxfn~@E;t^avhPUIk-chguW*FNnNeY>|h-? zRI(6VKtZnHr0#|sXvBWPmWHdg`K*kcHRD^8=J{ZdAw1q6(V`V8IRU zU5YZ%OTg^q%s4M5@8o1-1HOIkG-KxWdI|(tqFDliMS6= z>TWZnH1#6JS>kG9BzkwMV!X%dL!{2T3MT|E>b4cvj?wX6FeAq=&wy63dDmb5n5N{)}Lx`|sO%QU2^m*>& z(G4WGEqc#qe4FOv>MAlM(B?Tq#B1av;L2Wr0s1>?iv6$PW6xq!OoqyBj7$WC?8x~B z#Z*9x$W^8mPoy%=a3G5ZsjpDu+G85 zs`=_*_YewXM%ps3dc$l`F%3@+EKrz4{O(UYQ><|1aEfT>p2nq{2xr`SF2I(KUNNjH z_s=TohE$-@FuOu3NoI)>E?(lPB!5k!C+S9qkv9~oUV_IuQn3{Mg)G*E7N+Zo2_#;{ ztuFq=G*oC>wrXrqN@8CIJYQqvVk6*w4K8=`3jE8=vv5eT;*2$DOf)c3V+tzzQPk{; z48jN125lB?%NYj^mb;EM3b1;^=y3&uKxb$g$nVy$(2hSYVB|t{EW-p?>1v12ror)$ z>BWM5h4BdqF#Cj1c0+Ek=RWL7T+vV#b`JiFWHf+nnF4AMY|ASUh6yInHyuW$1I76p zXu}VSIJS&9Z6n;zl58gB*B!;EK@F(|szS6&{LSip6DKzZY2LvkWT1@bYpqO=Z#qDP z&erT=M{y8?Y1H&&{~gRM!Vt7PF-Yl(=BN`4DXV%bYDBb>4*v%0B*Z9K!-pzna`Q0h65?rQ4@MetHh^5*8Tg%HBl58(qbEWEMH4>c~-kLPJNbAD2-A2<_+M(476 zt`yy8H2y9)NM$~q$WT|r@gT0oaLj17vBu^KSu_&C7)~^3YilM_ob5{TfXgt%Ck*5Z z3U*Hj;RFR5jCf1ss6dfmWTY~hqsuDGQjAQ3@p| zl>5fMJ#PCoEW<4m^%`*seQ#|<$@>Zvew$KAXQF0-r(E*oa_egv{>DT}LzLBVHBCcJ zM2Hkt$e7dU;{a-qf>IicGGL6!^5s*B7G*6k$fDtduqW+o>&wzhF4;yha77BNoCh{D z!{j65w=jz6DQKu~i?nG^X3Z!HbneYeC;qPv2_t4)CeoQJ4M_avO+{h$p~&WG=G?}G z9UW8cIV|+dh@}{0Zj*x6AC)xjiPaTMw3~|v#)>OTFU>6Myw}s+N-(6H%m&GXu~JQP zNJE&}Y^cIB`xz3Rm}C;3OW_<$g*NjP(!vn+<#cIC=2JAFt**FhvY19CnN@DmzRT4k z<@lwObqvgdOYNNh2m)`@xkZpLl;T)M$~i_yW`8A4prS-zuZ;V}o;&qK;OSplk1i-bF-NU0Uo%L} z?&~X4PQvyVMsy;J!rJO)tp4YEq)ZzSk}-N|S2ENxYC?E?mLAMAT{T5Uo#`ZKY%I|z z$v}~A_{U#0$ejC)fV}DOBuVILE@?1~V+=KRJG4z=45-B|q;te3R?xI1;%8rk2tEnq zxgPW9TFf|N=(H^^7NEqdLKA_7YL!s)4*^a= zhqsENr~qIR6^SQbU?bL-u^c5!R9eKwoS2bGk>yEL{H-)}v+5RC$4vuHL1ZM_V2$y4 z3g;6}r(o~#kCU%yavrD5yG8Mr)<2HSC$3%X$vqlRZ{q9czA#f5szy)Hwb%&c9`g> z-LK6mH+OLKB1g*ScoScVF>!*k=?#YvZTFPr>K;;34KwTmn^`qQSE+>g)nsF0(bjsb zYnXl4y*?0%qryUnNHSgpuYA@!g7lkR4=acX8655YK{weyQob__w8&}kg2>5gL)MCv zDMwk>?e${OD9;250f9KW(-m8q&mDp0lBgBT_oKdYQ|W^SuO9dHjj7?Lr0SK_Mpw`b zfRhambN;Ny*tuE$ZK`J?EXR_S%lzY-jbD;lR(D>I8Cuplw>uWKhB9H0c9&}QH%+t8Sv_#!o~u`p0!+OcK0G4;)or~!1T{oU17$@? zwAO=)&`@2LV)Bdn=t+A1w#Q4lcJJAp9`U`ADm$RqCc%S2fD;;U4pP~az|H5R=k4Zd z+7$hdigRTdjOR5`b)l2uDCrP_A_Ex44Idd0=J}(9&2IN3S zjMiEICla1#79jF!B=IH2I3q6pyLFcIh^T1?T`E)+ z#lNI3r2~ekJXw(%<&IW%#~-ZljpewD+iQU{O8ex%b!2dJ(oFUTxai_xtmQYYB63kf zXto&;cbTZp_}9J*vN?&c)>+16d{pE~0^PITl~Fmp4MU_gBWKp9nZ!|kEr+H`fbZH# z##x8T$_KqnIe#P|u=x*@n*DTGSgF}&PsMPpg*%Wb4P&t0XqvWdw04ike|Up2kGH3S z=)#drMT~8zNpq*j#C^M5)qSRp?NC`pHxqhx^ipLKM`zHAHwcU z{B%2nCPnuzTVKIEmw_7t!p(!PwH95;(*XlUJI6nQtpMX0(=2j{SGzcmW6Rr+jgwJi zOyj>s_pIdo(-L|}=lsXI>mKFjr=Ha%*13nLcFZI)s?Hg4g8FZ~P^F<2I%_cry{coq z<`oFZd&ifnsT_;PL}q(CUC~+(T*61%yaHrg2fn#H`h;)joT^j8#eJM3#nJMG!^Nj|lyYYz z+BR(WW`loz1|tI}wfvUOB_jWj2r3ASu2_M|{y^E6!BC8-5CH#l%@S}!db{YjkaFUB z`q{KEVtF3(c2x!`mp-M=PD|}y#F7C*C9HiHy*^mx@pW18XgOho)OA9~q_dnP8-*H) zwl^a4Kl{0KV`Qgx#|cRY-L!@xY;>i38ABCXQPnW&Tmx(m|9vHLi1}5DIM1kg#HI#p zQXCObV>*s`18B}y4y2m>lzftcK`D-?{PpK57|{gY5pZHNUf6v+%W%8mMnTGZf)mLF zx%=^!1Y5r?q`rl?@>cN1y&8+PUz?kS0_bQgzW$GxElte1e+ZnVuE@77xq<)yfk41O z01Nm4|AD}OFt|(!{|bWu08pS5HTw;TL1B=XL^J^z00809D13ke4Sz#GFsJmIDJ6!- zAFtS?s#!CLN}*7AoEQiIe?lMe`OG>87=%Y7ktuvGFGzt$A`vK+9sM=|L1i>3L@rSV zmqLJ&N8BI>3V+eybUD3FLpGqnqZL@B7TsaGP_0pEoE7;Wt4C!KsZ~zZ1&zz8clwq; zAwtOHYdJV@3Q3mDSMC`oeiH3SkVNg#Ic>hzp3~OkF==!%SrEHOBa*w_7eBOtO@IJQ z1!{K*onH5uD6ASuRhT-!LQIIPm7pEWAG_S~z8Q|8n(ZIe!rHq638 zkEYK%n$w@^;)tH3OH!7_AWKSw>pu;X!m%z5E3mGssSc1H_NSnORDGf>pgh7%5LXbvn%n+-}%6gK#MUlH~0K_Otw23(=V$~~3jeNhULEUre;HC(=;i6Qv*OLbchE2=4qY5+gc%zX34>?>O6C5S2d z!A;V$&l1luD~`84sf}8qF;#^6pSp_uXDcM>gfxR(bc(*9q|XaR#w2!plBmU~bO5+O zu5x87&GADf+cMHx9Un3nyC}!h>*Ti_R`lBPwmS1`zc{{;Er(FBYD>9=|xA(<6K>gSl^%lAQ!JZc7HH&r~l9 z8?kiV0Uc?e3WGvCFVf!DJ#oSp0AtNhW{34x-tBQkGW%Glxl05}?(mbH#)JUKY4yTI zu=ZxxH!8(|k=d{xyh0C=x+!Ny;Z@lrXfHJeHUqS0NgKB@4xGX_BxS1!stW|S1Hb!LLD#w~>&|w2oMv-nbgxJr_{2yM#e|R{^sFM3E=Uap~$0V zG9U$QHj^sZ(3(Po$VGvi_^}oa(yLI)h}}pSFpbfP5Ju!J3l)OGo={uaAWmqely$n7 zh)@MHD=H(Ka$H=F3h#s@f=v)vHm23Vn$+7lP1s*%5GE3d>#0C!?;5m0Q)HP5)vL@mr^%Ph{VaH51Qo~5ofFHx?04H_% z58NTFf(Rm;JTk(2=JRV+2TU@iG(dy|QD(0~Cf^xDYiiQ6G?k;1L6b{zQcnoI z8TD*V8P z@ZH;`Wv~H&G}uWb_|sF^&i<8&6FsC!FPlQb&`x4Gj&-d@5S1cDpu|;?1ckV{Mzo08 z3`dD@QY03IA2+9|pRa6QK)yuZ2`wboknRP|sdG0~n@I~}X~_o_(%k$d3tCvnMk1+0 zbvP5!_bZ15Kgk*FS5hDZvux39E zRw`s#uda}oL>!aLAweIL2)G@rJr$JP$xRNb8MNd$tcg)tb0?Ckp9d2M$@}!CW-A4j zg3*N)_yc#7>ldL#vR)@-Zdv3qO&fTMQc0OXA4w%H(}U{>3G9!aO7zlHt{kh zsy7WTW2){5}EjTdj13c2EET@J~s$%Ws&o7#EU1 zFbi_lueG&ol0o!KA|9@kd7^})geJX;(Q|x+`oS*(N1h-|#DfJXkR1{vT+QTHZaCLj zM=Bi!NcjjK#1sN#h>IV{fi|dGZHL-(MSbs_P?AyMvDIkSTy4{gc&|0lyEf^(ro5v^ zcLB(i20yHikv4l*qM;DyGy=*9_Qz>K@nepWT;^QyjBOzQY&N~Gq=_gw7d8;EBNl6^Mv;eX~3&~E2Pw1z7a24`% z->WN08=H^ZNg4h!y{?qlJ%=~fHQuwB+ti*To@G;BsVYqxEohnHf6c}gvUqvl!(A16 znPyVgv7QFA&4cT&LU2#}Jc9W$nI=dUdmy9arPl(?e6Vhctxq9kSsuHKG`egFV;LbU zya?-ofB<}x8MzB`p)>KOnj6B1V+FksiV6tc7Q$um@4k~NYT zvnsAO(f}$+r5|Ac7vWH~2&ff6+dW!RqA^g9!SAP;d8TNv4r`E|TL+$rWf)T>t{Kt~ ziHwjVhbC&@Fayg$Lqnqx3pS|t9Yc;QNZB@996%wOn24A+5zq*FAere%w?iJJiZrW$ zpohyn37ZqPh^-LWUpWI@zDsd8;r1T;Sd*)PEcu9=A>=S9KZFb>JkcwzBhsuC96*Bu zM07{Qgh;LW28kf3u*wz{gF}uX0YEY_q^S!UAsn_@HXr+s5o8LNn3xT!j3HS+o%8pk z%OkZaC$9UAqU#SgD|rAIq7(BffGaeaqF1~GAd%47ku#?VGkcOUyOAo$j|;t*tGvO{ zH$NFp2xD$3lwYyw^@!Vq5(t+STWtsOIT*!U#}(l1KxrI@F}G2cPrCp+Vv{L5Gwf0TyB-#%ZS{A?qs}x-0udma@+#!1fZE z9y#CvFXAY#nTp-461usRUMT^4Ep(j<5>^`WMKEhq z4eC29*-Rao7?>-cmjZU1k=dZile)mikE777(r`whRm1r1j&q!uWJoxG%SY5enL&Y# znQAa0xr>pb4KVMKLEnvHW0xF(w-mL9=&m;Sm=fZdO8Ai`sMRImo2n#)6y$I{F<+iB zOFOvAq6|BF!aV599D}Vp2d*c4JmIkT;UqDoC%39#o6}`qQbrdeUoTKvx(geEblavUGM)5PDGu^=$&pAtO#ftkVLqGFHDF`k*aLP9yz(tD#DsZJHc zNXV)R(W_XCoW{N}42~FlpP|ew!KYATLASzqsKH^J@dvUi4=Wjm!UV$#L?{k)LmnY~ zl+m$IfZHBB2a0=T$nx&2T@omoYz?~MvMnk~nH-}i-JpSx6r<6~u)VdEOR)(0GN{ft z6+JbHYD+;DvP3r*1fUZ<5|~0X#C$;-kUs$pmG69uafGtrh5L>xO-A%Uy@y$Zg2qLdDv+|i*)|f(E3cJ6z%lZ?*sZ>nn zsR6yRoh7Wa-KuF_9{X$9IX01N(W=p# zy?SmM`l1e@jhCT0k>Ms=0OAX^qzD@lzauHT%Gxr~#tNAp2^Esg($ZAvp4+;OoK)>4 zto|M`ys5#a+5#XL4Ae~WT~pzQjyfNeAw5tl_ZmCv6|e2lP20Mw_Oc= z*NYmR!)uGgr;f@3&*ST~bl{RwOp4MJ#x;Qm>Zd8`O3xY`2}99{8p+!>7RH$37HGMd zb0}O%CRo9_n~Y}}1R5$0qh5*};Yy)AfT`IrqzG~yC1eP-oRVId&ZiM{3?dbhB(R@x z^PQ4!S5WMxh?(Ie@y25>9RuzbY6=bIq*s}YG^|$QE!CNPi`CmDn1Ht_GBKRwwO_On zO~e^BE=aY_1|w4i!lND-Vot#;D%6uoHlYFKXr$oi{Lh|Qlcm79V1-IG!sL=|nO*8* zkx<-WuSlVfh?G%{4qqDiOccpH%|ykfnN`B=^N4)8KRVXcGebEuhcA_DRzRc!{bi&A zT&7kC8KL{WHKf+wb(pqWXJkn*MTsoHmMC(lnOc|6vtFpICA!IQrEx~ooQn*-(Fyv! zPoUIJl_jR~h8<|{kdWbxXeF*4 zB7|GUqqS}d3PzP@%#)2dd)hSN7Mk=unq#ZE5fdt1lCBlRgU)P`vO-l*S1AS-(2+Rq zHdIj+M9P9UQw5LWF4L*mGA_Lg?IDVNAwks#=fV%V67>`Q(ovQT6#FP_VCkPrAU9Ug zlEPEdHVVgX#3vS7XY_^bqmQWGfzA$D%o&PFWrLnL;hfe?E2g2~!TsWE9-QKfvL4f) zwVC3@2O3f|rrQ0+iTe@cE;pr*o5_jfX!pN(mpV1q$hoLV86xUQmMV!$C>d>3)}|27 z@<~2!#j7D$4#gE2(8Jz<8vH8mUb8MCW9OCy5O)P=RAeud#mxhX#UZ6R97INl8JW!{oIC=AOGHC# zvxSdp_e%dI2x4iG7DlV`)iI+EFdWb%E=JxWv23=_vzXNxaTY2jtQ6Aezq-5Qdaf8K z15jNTE#RwLzTOLbnrlF)EZeRYvixUqT^fp!art8GBp;%w#qQyb zzx(k$!($0ZpO+no}TnMj;PwQ)JfwwalOx&{OxURFRphd5tnP~t{moSp9~G> ze`JiiiFQ?Oig8k790BD4)p93OaC~FqCe2i1?_jaPGJfEuQkFYj^%K>iYBv=3H$+(- zToS`7n)(yf63Uz=GPHpMb3M~lR~^=#{&5u;ptY!Hs(znxL1CefJ1)m>x@)Hg7xuQr z4|=*dagP?mXj)aH0~~biH^;rkB{l|s!~6gpJg7o$C8aSstvWeDocoOw&CUb&iE$AaZjNf?wg@1 zYbzE_lXQ4mSBLJtqeqRe6WWv!#4ab=i*2Cz&}XG~|7*+6$l1`lqp_Mp)h4cxzR=^sDeT^3$ z{FZ|F!`v_%c~ZBKdsI7cr!C{7DBJ4YZj?<_se1m_`J<@XanCI>wC;XNLAh&(PU7Kg&$ z(K$4>5e|z+X5c6^&Kow3$0gt?bkqSI0L!PaU>v?XBAdfzR9VDkSy7EYU|>oWN);1> zPXG_dEs8Z)hC*Ys+C3_D8IVQeR{8x#F&Lskp)i|uo+mt&$AA^eJaVsMwL|6=_$5+9 zN2q{oSA1ol2|SM9v9cIU@{^3ZNGj8i1|m5dx!kT7jD~JsZ->C-@8~WP?^n-&0C!pY z{r9||?)SR;4rhUSfN-o%jEYgpEh%HkagtN z>qP%w9kXKY9&YWkwK?ol;BiZzgO2~Dt~3Dww}b%z_P~kKM6fvtI@H-AY$7zDH?D*d zx~dSnfefe)BmWOWQ4B>9#Bk$CjUuWuKI^e-izuI;&d>m>sY|E z?}~L4tZ<7^)gbRHa*iYDdiK=2i24S$EpehEr><_C6v(^m@+^U;&JyCoE^8C&)4VP~ z1u#c1-Oj6#eJt-n+oW2pu$n!tblSbY(juL#^%P~7pxWGtk+=CxzSP=)`IS_xtoa4oGRe9$Tu`i%O#(XtG{*lQJOay-dxexFp3bjZ)G zNpk+WIS-wP^d?GWAyw9MBJ*ae6C{%(qxD68mf8^{LoGx$lnCzRZ#tO3TPRaKUEfLU zrp!aKgYfvfwIVY-+Y>5Hqpc`AWqBs)1Rn;gYBQwx)+xi(hC+xnjO?tbRwYj7ta_^! z)l=J%7f{+#w{tU!^{#3&T`J#Q7x1Fp;YsHU+DgjsmwBK)TppxfWFOA z2vKi50-qzC?Muo%bxs|#sm2iNAd-*rA)}vd305TF=3%LJcAfH5iQKP#w(W+ z${}eFX6GTv9zz^KKpMs$Yat||JUfJPCAAkS@o3Zdy897pS@$C*N72r;vi5Y=o?WnGW zoB&e74qPS;nl=VZa^nmhLo0DKOd}SVp;~Bav6;FlsGSU&DE&J?7H6mO)=iPwH%7`z zB|fy$c-Og@J4%H+nkS^H=3AjNOjv%CzzA%U;mdz2RlBL^gt{k$ZZB;iNh>C}VA47n zO7B6~F1jjY01`BN#{87f^6>T?^KnARqH38!M4X(H`5?pTDZ`2wM93P>lxc;LMf4g= zrRKQf1c3;iLdlyPf8v2XX_5I(%tBDMsIhP;(V1V8BjXK7T;w|_GFhq8`8~{> zU~C4W7%g_L)(O&KJf})`5ry$rjN1Y^8PZ_)NAe z(q|F6H+2;L02`)B4$uZClHGJ1rm%g@-~n%hhQ^!%@||rNx}U@rDF8PcA53ESgL3&( zAcJQf-Zdqt(BXl+$+XR9IY&uWu^inH4RzZQtaMX31vm$Z9LU{IF08Q)y4co$($(c! zN^-=?HiDh#N)BYErKumbH(VaVPnFLV%~TnMbjXRn0S4@Rz*PY*=%y2$QvQ#Y_G&@t zVS}a5`ee=vWfDs?&uX=mmL`Xiq>38xjZ@yNSQ^7O<8?}zcSOQAf)0Jo6GNM=AgfZ^ zs{KjgO;=D}Eu(qZLb;1( zmvNtk#%i+;gwSaPYU>lYw%pZYLp2upCB+qz2x)Azu>jV;h9?)JX#JLJONG~>ZaA|A1sgpIq$r8eSHaKW1xMYJ-Uw&mJJ zo;cus&D(a)1nBO{f;z3UlDK4j3kGWB)6zQ(PFg->$6(~&hIW1vRU3lU$-cg4SRQ7> z+tHlHY)0|-#0HGpzhkX>eOJjbvc%b19MgKx)hp?OlxPKw8Pa$@jrw9CDTwUU-H%lk z>=@t4fAPeN!1yaT`5|B!(n?!Rgr)06vqx^S)kJ!Zcu9}|km$bj4CL=63ZkF{fv9%3 zX53b1s-vjTd#z64%B&$ncEfINJpwqEXIPF4czX^G=;t7u10a>p$X6obtU_GnBqsCj zGF1)iaYcf4?mR#SszE5AWiC==4y<%zW^v6%qGhCMic&BMcrT~C`C<+&i`qNw2JY_0 z{v~+TB?SN~;u zt?=#Tia|-(b&OObj)p8P9<-;fOpLfC-~xf6_?~CLHwj{|iY)?=4C0H%Jf}#+ZydBD zdS7J*o-UebsRBzSpra?AFEENCB~<9Ap3cxN(BfXYERx`lPU$dWj_JUyqL&KC#|s5|DR8_!hzeh#x?&4dV$Nt-%>M{NLNgBR?Shsi zj*=t+^p1!Fpr$jJPxEC2xf56_4=4tO8yrwD}FJ}~rJ z3RNZ&fY%a(C}&nyq^8PIMurbm!BRlS<~%A!yArXA+9QN8hbmZwyh1U$G6TkP?E0y@NNZXj)A3?hDj z%hUi1Edy&-aVvC_Q$G$Z62~N3t0bskaRk~$2!vMFEeqxZ#F!I7K@{Vz47hk7kJc=D>pjkw20*5c2Hm zr%E;l`aa`q_c4fcZSb=TfJ~z>d9P44XZk0?J1}G_J*_Dyjr1;3tWfQ|G^%1JfDIGM z$WO~rFR7?$r#PE(kVx;yx}p}13q(1IR_rsYpOy3vf&C1a4ZN*X6iZf6Q8 zcOn=*qDWt3dmK+LAxfIbNm!cnVJG9dx{c2&@B)|Y)<4Hmwvu9HWIY6D;R2#iH(~ci zN36|`u_q@K$l?zttKv!H0;qHXJ43+OL%1~vyAv)-V#$=9Q8I_=)kSDHT;f2KaC1mg zW~6P=G^qs(=^SrTYOHhvDF&$6>vbuQluIWl(N!`n6KgdJuD9iRG^F7^&4kV=7dQfN zT93p+vc_n%(sM{lFQlld>oA=m{+@91=*~p^i{w9L_PhcRILe1ROGIcjq&bjmEo){m z(2}{65h7GPsY4cFhUr8LLrEoe+lG+jM%KM2jKhYtPLGR9dQzWwtyo@x6PY;AojHqprvr|ztveS_Rh@8RJHkXO# zIqT|92Pp5X5NXM^RLepjt<59QLN-Epv_k@DlEQVcWH*DgHKXK2UFGNkReWYG6LjORVyP==AhJqTaI9?il?inxMC+CP#M zEW{AWhrH!2MO;F#ZHQekEU_c*95zmhUlJ8-Ko21zRXSwx55lCjV~TC4MF^tCKW4rx z?I`&zrEaPWLTP3@pb|HBUeGIGBunkCOLa-KVE6j|2CWTV`SH)O;{e1uVw z{}rS(Rxl;jWOJf$9}H>%k`lOQ`xgjjK1S1Zr1XztnKO_KC9_R-0}*&+lDcVUHXsjp zW{7spLggp;Zz424)W03Jtox|a#pxECVpJ@%ZiU9!ZVc8tqD0_j$eH$jwkitaLs0*7 zQ2RCPelq_eFfCNWQ0a@PDalzRj^OIBo=y-#>BT!8Gv9z`QZzFvBqfkk<|^n24L=|N z9;|8sBE>p`AyCcsYbI5119Z{jw0{=Q4@P4?&SWs+BQFQH0m7>}g(`bO%pvtw+Clbx z!vr~%n!J-CGwIm8?n@-i3QHBuH1x(G*tEJXn*>S;YjPunHm;qqEU$4WKT}U}2s|uP zV{wMuHJ4;bHg>Sb!kiSCx%4pIWJKR1+^G!ThIcT9uyIC>QYgcFEpsA!f^(7r4T7Km z#;kI-V~r%jtd&zAk2iuXI3WCrFfj1}Jn|xTqBkBH1y<-XZ&F=Kr(bPKemLwed<^Qv zM6gRmM5uYH!I#oDtJwR^(8+=#yl?7>vLND6W0yD4b22EHLX016%mFeI^C@P_qn3$u zA8uEP7A&cCMuNfDTse1O%s3$`GT?dmy)_X0J?7(gr`aviqapd6&_b4_F*4Ea9LdZb zB-fH`&9+E*oKYuEbt;QQO32QyGVa)SBUUGCPNZz~5b=bbe-P_KPO58S$a{0_yTnl7 zciva(%AIdEDH2J3s6cxQ5HoDn9;t2thbfO`gu+izp(H_n1~nuY5fHaoB;x3X*Rb^t zIazbsTBmOBSkj3G#Zy*rK!nXx`0$Vp`{@q3~yuhI}` zw)bz_ac9dTw&pgTAVtGP+jgxEgsH$cH z&Z(MMc`G`t9(>#U#g4VS6Yp~BLhy*vC73l(hP7N3?FpysClap{nKaq7>qVH9sThi`MuVcv{7D!6n4TzuOOosqq#!&4rg74 zp#aBN;6u)z&@-qzzYxmNE=LbSv^ijFhy-Hd5(Bf3@f=r zQ>9UjF(DGX6>CX^Gs*Ji$ULaFX{rpQF9IfqPqL?2OUMN$LKNVJ7ViHwXEG14+DKgg z2q>(f_BUz%#D|dGn|L>oG)5M8a458EO7m}|i09e&L-H@hg>17GER%&QAvy|yt!Jfa z?o1Qfx|aZMc!DCFi_W?cuMP<>ltsHIx?m{8-*zNFxH zLt5ur3sCH_1W1ZlYJA)#H1H_XopmZ~s3?c2CNL|_Zv+L|e6_;QoJb-gE6kk40wbWj zLA`lwE5h=2{7m65hG{i`mM&>|+pTbgB%j#j#*nVQiZHJ;5MBkLMfG7h)ip^<8J-;q z{z6H;+upWHhC(OsnxxK1|D!=9U?@B? z1z?oaWV3JuBmn%O!YH*Vgbn>+xIn;iH|RbgT$fSqHY%owAlUhBQ+_bQ)1TrqyA^D!r>+JFcl^B0|H>_TPucpN3@+~a+;2erlruw zLn0NxH3LsdyVUJ;nyp@?B(yM&`)a>1Y&Zm$CTrT(@G;5LY{w$4>e#M7%5tv*ysbJI z-Lh_I2@I|&a0bM$2pRazv~L2Q!o_i9TNglabYmGKDDwLCrzolZler9{428uFb85UU z3Zw3mB5SkM%DoCB)|h}U(ngQ8a5G@SBPpA(jit*RK`peAYi7@(E~-|Wq3J7n`@!sL z^&h{kgE+||@EYj6LhGvJ{xnD2Y_uuPQZo9^uj`n_fQXV+1j?`@VHLX(YXuoFaGeU$ zM$ba28YM_%Jgqcng#gc|j`N{Vr)`6A9j;O88t6hPx`8IK)5=t?C6aYw!%gTcoSaT5 zIr^E?$_$dO(eKSCWjKpXYLGvaohrsfi!B)9#R+=fMZWDVe=A8Ws0hT!3@vXO!BYfU z@=B~#r&=QkjIB4^PEw&y*Q!z;_ej;%?9#%uM6T8)aw~$^+s&n_j{rs7_-WU+U!Oc$g>E%{idd?Y)=(4h|KK# zIWBwfh&GeWdWc9e)0EjO>?U(bEv?pFus!g)q_NseEE%9#QI2=QMYM!jXh%4_zL?2) zuK5_uOI3uWQ7#+dUB3|*D>vvb`bOMlF9R!UQ~4ryQY_GdK@@b*t>F7;Oqd4%@ElhU z-FJE#N1un~TS4 z?6q9B*HijIDJ6XRolwr{q^Csfa~iuZx3o^BbmnaB!8Mlmird}^=PD)nlTq z@X7;uj_^J-HJGNz&*7XrNjZhJ*kE#iAxR%<9LOVhQ5mB1XFZ3Vj>svp%*x?hQ^s{8 z5wvL1&$455(=7ZWmp+)y>QH>ficFSbNj~5N4~uUOf=hSQO&`NQV+YmZ&Qw}IQke(< z$OY#>6nvOq$vT-zIY1x7BtG6u6=sk@ctmo|G8vIwbWMI=$98z_A!2UN9SC#5~{sTMZR}L-~c|~Wh+B7Fp{+e zxS7=gHaD)_!OdkX_tk0-Yv>)w%sSAO-U=3I#!3bs=E!Dh+;t~$NyjV1X$`00jzQ7x z48K)Ex0dWdF=b{%whHM-;Z<0wtr@gD8HrWovQjQEw6~IUvi)2{J~pue0x0QFZxV~< zJ{Epfkr=3bJAW}nM^gfdPxGnEHPHd%aaNawCq%T%8Q zRK$Fz_S#*^Hv;tGv(#}l!ABZ&=P(Z}VY}0+SCyGmzZk@}C@PBawB@cUdd6>x}sS+cB z*DfYV-l@3Ja#+!)a+ms?o>FZ0iv7H!k&SG!1y>+gF)yA833%W84o1!4i-dP(jja5< z=Uc5;t`)leyVpca%PI`V4jQT*rhQ3sGn#fsy@wK&=~v-dlf|~4eqGqu(9@dml#`)# z=ksS6S7JlV*n*Fb$~wr`pg| z#e~JnhUCC0kzad-$ut=>VL;~=$^fn9OzqOb2a&EpD!$`SjETnN6W*pO`cgq(fl=}HwU6|EbLA4rn zRshgJs;UnYJwfW0U-kK=(5zY#>_v>(kYqb@%tL!(BPR#(ElnXS1w-SD+ZQbi*{73# z7?^86jR>~4ML692Q8Nofk&P8F*mcBVk_dj9!55Vg|0G2iGGHW&j)JIMqt#@ysqy;g z&S(uvk&P{7l|yemlo|xD1(}&?k}Y2tJsCH2S5XmvHc{^4wKYP~(pN)|O~p#^<>fri zbSnkL^((JqG^~W3d`)yj@Q`p?4~jAOD6-Sr6<+k0GcrFny=5t=pHq=Nk24jmPuY?5 zwnZo^mqo2E2QK7#nWRy^x0LI~o-K`d(rJn3&6j3I(eqvbGn0h z!-cFktECn`**TmMT=R4fOH_7wxHfh@A7(1!{mRv#>K4fBO!uZ0O-{L9EU7KHi|%64Nw{yQ)7ZsFrh;pk|G`zo^>HB{T>9C0dn=>^jF}M-C`$i0@~kW3 zL7pjvrCYBy>%1{}O)j%`rV|7(NI)I|-Y2X7AA!fDSwNC&3b5P}9=h$p91}Ln^rk6F z4e`~xiVQ4UR(x%q6mzrx$5YHN-`*`Cz4+2#bm0 zoao-Bi#0UUb+Eh;o!JDDS|qs{<0NEzuX|vMf*m^9Ml<8lGtk=*3pKU_E}?*z8i2YkS%NCbVZ>>Alkz?%@T7`5Q8`&SMj_0$0H~AW zG6?|vNgIl$;*7wk@HcpVIe`}dE3h5WzL%jXl-ec7!gC8S+X*n7HTkzO>Twzo!3b*m zh*}~mgflRK&5WqFGNG82d~q0v+Or~7CD8H^l(wWQaFL9srW>cM!?F(=qm-jCLgpALaES87G^8Ml7`-i8RF;sj!^|5w%3Hp`*)N&#AWU8# zEP6t4&p+d}pQ$&ti}47UkANgd3_J>_%rvV~q>X%6q|{v>d=@42q@;{ou<)12T7C-a z^e{X1qG=b%9H=UCxwAxP4oqo}^N>cgIi!pD*Zd!zMH^^uey6tOclwn_O-n1 z8pRI}Y4RgjzY?l$z&bLdlr525NWnQU!ATbc6bv2OFR4SBNX$$Y<1UYUBT^M99(3H& zohuUyn>I|6i=kDRyMRqHf1!eZ3($|m)OL%a`xs#F3xvfKY#qsHwTN7ypER}(RHc9b z1dM3zOCX4;(Rj8!8XO7?3g82XIDJbf(hcN{MAa2i2+2qMG#gqStQ3Wb3DT*X@j2RS zpg^@9umBk_002Z~wgPdjWb!N_S*au%NNQ{i6Emq({mofiEzxi?Eb)tIkAOJui!B<8 zyGOCiST5?KN1~ihW9S=Hw~lIPoTO9Jy!|#JjF*d_!W$@%te>LVI;lZKrr5TL7<~x% z1jVWV63s*nDBL`9Euj-u2#|fx%jb&aJBcM-7-MWnQ-Bc}y_Q3RR^vI;;w3;>tPc3@ z&^ZRVVD^c_kPc zge}v?#&l+soV}b24Gk@!rO_EusSTg$6h-PXm%`!9dZAPFOA)hHnoOA1g}}pnC(}UR zQ9E-hLsqCw!z4V|D#Ori1-5uywRyZoVlX(oZJ8; zXwh3jXEuG~(N+6g*^yRwe25(;4~+G#efGZd=I zL%3azFXfM5;W)_Iwh6i-EA^AmIXueD@DLY$f!_}kPcH9aETSEDc2(Y)U@T1LmWUuX-t(}*>iBp*z~P= z0IJg}Nf@0F*q*MkWXqi4&*S&Fq#MsUv$M%Xx!twHK$FS7XUTG*O&FNDm065z?^wF( zw=NP0$g#PDTuyz_)j7Q+X}eCtQmAo*HmCqpID#0xzKWoISr%cEoNb%aXtHzDSVjsx zT86PnY(c_XEgBqM!ZPt3M1>hf z!qvLYD3-#YwY{)BX!AfeVq;#aymoAaNQ5j<}hUR^9 z;-YotnG&kiZd`GCjqXdfZgWsG58UOv65~AOT@@i3BuTvt4`8-uRJ+8cW9NQnKZ!}3a?;}Aff0TyXUpG0x%Cf={+l+hNlufwO!xuTfV_2t`Aw>l*b5zgm+ z;)%gTh+3^3F{r$`*GMUj$fMDXCkqQEX^5V|@f5gZ#+ywhoG#u(Q27isl>CnVT*C<^ zAgU{8gX9bKPiK2#DilT>@+d1!C(v;aWEOoX8&exR)XugSyH<0|{(=a5TfNB!Cgl9( zVH~??!E0FmNs!Wx)h<(}ijM<|=);mdZ9-HwVDf15D%Bu>5CifvWQj)zxXVklJH2hS zZm;hf)bM}guA0fw|&ku-3dZbT=H;i6uxc^uP>|iq`$d4dqKl z0;Xu?v^%lzpD6`4Jpy$P6o}r=8PQY}4My`haWE za6ch~PrK7k?ZBs9<#_&W4w_)Ib#7N`l$Z>_ zBceaHdT6I?F|50_j zyw1o3I5KTMGdl#{g&{I9_by9RMJoPt?pLNtqCnZi6)^h+knApHk z$Q$-+I+RPF^LYHK6EdcNA9GmrBIE*xTj7_f?T#OQxmf1XnQXS<8;{Q67^~G98BxE0 zAFzlWb`gf2$E4Y4CT1&hxn6WNXk9wH4$s1DFiU1*VVk1Vz*Ah@!tMY9PA0JoUPlqU zg}*kr{Qb(^Vu?pAlS?IL?Z&gr(6UVP9{i}#Lc0dSOPlnrvno0mrJ`zlc%!~@3^1ZF zN&C*mE3Hakel3l{$sfOo+@PI0$?K|us_o(^m87l&YKAQ-)2j8$YeK-xK4@I5o*=8* zB)+1G#K42Na1)@+r3#9c@1?C$`x++cJjWo=)HH`f(BuIBM8}Ksr6(qFLKN#WXj>qu z(Nx_zPSes1cK}U5vcFH%RUJsc%gIaBzO_g)#M3b8a)S3Y5B*-sFVo#L!7(!xc=4x- zTAt0P2yh68AB~ivz_?DVKQE?H`wpbVitGiaohLIp0WZu4Ppq44WW znKh7np)k`(ds>1YPB03zTnTdomD2HC+{eSrt3H1_Z;K51-^rXh{L1p29VM=IlUlt- zj|?va$aKQ75VemwjFX_Kb1vdP>?Qup$L+g7kG*kfUpwDSs{J>nwcX&fq^&g_NV_+5 z!I-&@>@ej*FRQlBHmyEcOtT`gNp4Wrx=QBmgt^L8)tGP5 zPE3>Q?P5z=uC7x0xI6XEXozpyqPWvwIh;*oBeH}=yTvv8H_z1dFJVqq^)$m~HIvjB z#SCy*!oD&7n@cHpFf2Hm zo^s1^ng}%v=2_S5e!TCBus(T2t@h!$OFH1IgELz*Uk_>WP6Y>2v z-HJhg>KH$$)jF%(BrSDD{T4IYD@f@ghe-66lv0QMUXC&TYLLCT7vo+5h#}iVkEOt# zigL*$TChTF9F3O*Qn}NUd`u7V>c|k}ph|^%g~Z z{$@#VJS@Ho+3N8HVTEWcmFTJ?d9t<8DUDMSg~3rJd1w&HrF>{E0=C-bz0dmKhKwa# z(ik&hiArRmg&MIf$mt)n z5m9%-_lIXIgn);Xmj9|$iqxKpSuv~O?^P?iRpG-IX{;E^HkqVtR2#WwR^2+vy4wWh zTz@jxg9_LB$8=XYTYEGj{1jqzzgbJ$yXT++oLEgU8kvt;lulq%+4UOD9YM!65R|gJ z^C#}YEU{`nlV6Jw8dmKNFL)ABzB(B@RiC!jT zy_ee5m~rsJ3g>rINs`@n`Cwu6MS8Yb{~RKD{yLw7yw?evKM4VhmJ75 zRCHI%ZgDluk||1^qT&2N(Q<}Z&mHN`nz<_(lSIDRk1glalRNYNg-N6ZG9)K;aVMuA zbpRcERPPkZrL_S_u*5J~3jw3#@}9VnJ`+dT^tB~&SenM;$IVctRI#FZj7LR4|0RGA1LMy6;?6zgZT zyDoV+^`Y~88_y3{cGgO1s7iTZzvQI%PAiA{k|5m`aM=d8jVE+l2G!Xasnz($K}hb+v1k{R6B|z`9Nz)=ma?4EFlW z1i7ZtW$ld62CVlCXu4|#@oau)t-emFl5cCEz6xOeOfG>bzM;lYIYcmlFI3g;s3=X2 z!i)T1=}1lv&TWV4>5BF#L^LKT=;~%*sO->T>R`F;LWw7S!!N?24rHjv5GZbpZ|5R! zkU};C`k3aLo{!8$XR?b&h`$fwlI3@=h*v5%ChN<@vpkoCx*ucR{4tJ z)e2n83an-h+N;KxgG%b;1tv4Eh|9ya%8Fn_=jLV#E=3GXzbo`0#`ONN3k)sNw`H#T zEDYDB((vLiz42EIkyf0DL`yE@!gctHqNT#uT9$Rh8#sJ z(s>PBtz-g_WN^{~TslrVu`3$+Nrbf|hA*m``|Fzy>b(>R-sWoB&P7I?Oz546gyq|1g)6|&)nz4JFcIpJNzgBSjys&V(<%ute&ZsI)d~ z!r$sb?+n!yaFE|`2_kD8V~0?!E#|yTqDCdkY6r%o?hs-Gn$C(0$g7~?4a6`fGa4>? z2_v9Hks_J}0!xdX2g+(EKn@~JM*szse2i+321aVxqIEDpj+1OyY&>J?DI5Y2A0ie3327tF5idjV?&WhA@XHUWStV~?)QYZ8 z=3gVoymG5*cOwlu2V*3vOrX!8&Cpc1vgG=VHb*hc?4`t!2a^Bsm`0B}#?idh<`p0> ze#5hl`iN-{F?MA#%RW=2Pm|E+Exuy0r!6CQ9Bg|CrFxOATy1b`L5Y^|lXDnwQu{>h zA_(&qgU=0RJVs>%QBVx9!{*^i#JCH5N)&oB$0agJV8?M3hm$WnZ|f;D zZ5NX)qskd6%HA_9S1Kw(z;qU2r+it=HwwT3W-6+vqm1FJy; zQ(*g1n(&h_CN!XAL-twCtX~Dh#OiwXj}VuuD+;lPH86BTah7L`igQrZh0Pf(M2!tn zU{JsV4g!B3;)q&GHoHeeq0k!Ng9s^V2GtCNOf)e6Q3~(L>fEEax)92L;s*BaJfJaH zceBLb=F>s)Cb>?avNT@swZK%fzNH}oqeVD3bC$m-%;`-4!84yGRy#*lJ!BQMA%(LH zg^)@@*Anqh9PL7Th_qBK#K9!XJIAS7V$D6%8u{h~9~VX;19mX+ZBcfbMQZWq87m!&P2|Tq#(VulQ&$vf3sU z|0yIVB69?)QkO2Gc9*ZHQA+h;(u_^`(t|kID0yFjW*Rhg>gRZ>Rc-jZcHs6l5JhbF zZ1AG=Q=lwM{)>1?gwWcvg9{=NaZf9oh3IHHqcdzJ^JOqko~lWeMLG}w{UwaKk2Ot1 z>bDD6Q)D_~DH>&DC_7&*PJZNfZA;l@^ZaelKS1@#cO%^_3wlH4sPi#~GsgE2XBC45 zzoUw1g#whH5!*o%xEFqW35wWKu$TP`Wf%A|&Id)^qOgYC^?cQ#-Rql3=*> zlWGQJI=w*gaET*8#g|;#C{88<#vg->l!h8d`;8je)h7rcWeeL{lceOh?%0WTKx7|z z@LVM0bc7GtwC|cpq-mI_NN{AxHAEJuYE!|dVBx8LR_jo?^E$FRs?xGlaL9rm&N^MF znv$j7XY^@+3UIB(PMN|S0OXr;*#Mk)mY#Y1}C`z?@0R5K~syzuoF!$)2MTeLcN zD|&kyQWo}#<$UXVy)}!BIQvyx2C^EN!|%A%I#U`Vi1Gpo=E*O5!%0oqSi{95QLC4w z?YWuk9+MefcKc``jy_UR?x<$sEw`VM^>=P_BBBU0eA@O(bf!ONaj*oV&1iLg?SD6#B*Jcm=$hXmGPEMNwREvV_Hra|Y@;5vxM;X;d92tv$RtLi{jj^TT00OpqDD1X*15%<4@$#9hq1D#RbjBUwF{&lKrgsu&b$-<(Jin%+1(ar#{lo;gOvwm#u$;TN_yH%HY+~$Br|G{2tj93__^L zRYNVkM{zaFQXhgw0Hj0CoMx}54u3Hc;(G~$!wym+*tra@uxezQ0wIBM9Bm3D`p3&g^ z;Aus7+zQ$D^ch29_+)D@*NM$7`-X&r^Y*#mxV4ph=3|=fqB@<1W{2qDJk~qsa6E8C zm2hG|N{hDE2@DeT@{-e7gx-$yZ>-1De}oM!Gwz8?!wP(lFlnw_0ssU703WaL1RMYX z0Ky@U_%u2b1_1#85NJGF4*rQjpReEm7AXaa!J%-NybJ{cj=>*b05p~s{)NmT6Bt|m zJOGaXrjZFWB6&KCNn_BcNDhS=r2t})SUlcKPli%JPui3IZzPgU>QI@zB7GRC*zA^D zEB*OqwOZkT7?px&Dyv(m(RhdgQ+1q9p2vg0zRpL4nAda_KNXM# zNV9bz58F;gu@&F;A)2WAD2pHLYbL!S%!9(XvFxfIr>AavXwD#MDpuGqNLv=1zKAmX z03UF2sGu&YBgUkn4P*A7!ig$S;ioVneEveNLfWXUit5U|tZ&Qb0mkmT>V`fln#91T z@5}<6vo8ziuPW}NGVMb$O4|7-sR|__unWR+>AfvHY%IY%u99@0~TAU=>1V%7n$FMKeI)m41}@<-Zszp!jNZV$0+yEe^I zV{m2zr?Gv1EN-o%b8p-?q8BgB(;S;wFj$l=ZaPgeIS;e5 z{rO0M2h=XHGwSWCgTtKF%@J8pn=25&D@{E^I0)Js2%w27TO7RnMSz_yd?F5&=2|NV z@aW1)V8E!)&8xoD+aji`B5+e#T)L`}_?Cd$KV2VK7^)=+S2#SmTP+FuFICqt3TNBe z&8mKyrA+0SZn@F)XQST|BW{{rme1I0z0!)7pqq3kZ;*yOLmc{Gszz7u ztsg)JUXI~k)iZBrqrR6N#2MNOvMq$=uVA^ zb8Ae1%99kdYY5^SB7^DZuZLujV`>Rw>TQFxm%kbjF~*GKnF^lsBxFf2{BVa31eB$K zdI`&NWh!yuGK1d7qH{Q7F;W`0q>P&rdMI!4R!kV@2OV9MZ)e~V#xN~!)P zyTm%?Bh*zRC5QqMLHzBV1W|6Q<`W{bpuS*wJ7-1_TsVc?hfE~YVoN~iKofL<)cHGN z27OCGw}SoT<7|e-w6e@I;KEBJlp^dgxt26~kf5Q0UMZx=>89_`aj$en36vN& zhCY-za4PhLZc`^-tKqSrHptC0%^EsCi%XTMPuQSuz>~YD(Iw=b;7E#gb%PiX&?H zXL8bPFO{&5&2q)=pvv301*6jVO|B4NSK2SSSTI za16U1Wff&^%8SUR5^8#FL-mfTc9?9|9-0OCJKI(pXNA1y3r4ci4BBdhoo}GvQ$e{cvt^wi7I6Y=1?!>wACdrhBEu9SIC49QR zeP8Jcn-ICNo@F@jU{=*b<;g(7PxEK5!caDoXLwP0rSZT_c!kq5>s7$^KtHV;J zQPMVcC92SzOHW=+F$}>wmca1b(!{VrmA`uZ;Ujt$qNs90rg@V$sk*Ne%IV*i^bIh^ zca+7L8r#o@>C$99wKlXK6FU5wx?=r^Q4O(CiP+XgoRuU*tKQMl+i`M`Jp;}lVn^hlHPt`!XBNo=G&h_*1OYn3+X2T#F~vo!2BUVVIL zsc}5W%WU2JxUAeJs!pvJ5<;66ZkZ+|Up5l17>}8Dl0&o?-GFU7*24(7Ncvhf0Ft6f zyt9^+i>MLsaVFWkDgQk9y!S-sPdkm0^hF_h*LEqsdr7Cl)-<|*Iy0#m3a>r6gFeu< zF6uQe181lEQ$PjrZA90(&q4^t8kBz&gmD0Wot9r5NCk(6`4QryPqNXA{xGL#uAP~tmBDtpF z1usDUB+G{nLQ4gd>y@JkYOZsGEwL6OOerx#CKn4wx*H!jQJ1v&_OxLN zAyJ${({PTvN(|y6mC0v0*~X4+Au$9Zj)Wz^G50*f&k6}p2>bFu>SZO=9>O8ntEo>S zq$#F*LbWpK!68quA?mBy#wFv5jVt*yVL(9pE5cH7v2e4bD>*P}MKLl69N5Y^=-?2z z%0jbODS0EjNZvi6E--XcE3x$`d;}!X*$S!iD@-Fe3KAyCrbC%wmkQdrv7DDFHW=#S zjDg3wIZv@s$3oNruc|dbae~Jho2;`FF{`q*0d~GT8AU;7prHN3!~Mca;yL6bJ^_ib z@e?qqiHtDJuZqRGyfG{L+AfITCbABfg6WDN=fXlZryDRqL&ZiiDGLj&EZZZ&i|wq5 ze69l(wURm@VkJH5HXb@-5yOa^vPm}U`#+S77RhBABF;uT9x0S5Ns*wD0qVpI4?@}I zs92z&`%)9jF1HjiD8sg^np7?^T^LiSvpBUxQRgF=`Z~(|8e>qre48Q*(7pruoxu_@ zdul&ZYort`x3Yz=LmQ=}A2cjLtbs=!3tJ-6=dGKopDUD`WSXAY0vS3$me_~1VE4-e zt0}tQxtRIIY$ZF8&>)cDq?q(T(BcrnLdY7InYod;3B$q|?WB=?ZB{$De%oNfL4$YaEHuU;Dv$3;b^UvHcJKB7^B4?T8+Ygc@B9ctBQGYtRj3Vs4 zu)A^=u_~hKbx<@_CyZ#R3$97*5S~3Dxum8Dk{3vHRv@9QMAYHCh=#gUPQk>eG&)V0 zL((48>60stPO!=hSxL~XN4T@ougrU+g0HP(wh_7xBO-)Q+YmQ8>Lcw@i>lu>nyNc; z+fX5=PH}}&L`fy;wIG>EtQm*V==2#n%@EC4Q6mb@Se&c;{;iD*NyK6f`?8!7IVqF= zE9kKi%lXQ@3PquJByj2^Wi3kDoK&?EI5`fcT@XAVnVbO^NU2|nY#vvg@ihgwaTjcDv=;Kg%eP;Dm8-{ze`A{a?rRVy%-G1zOl@!NuHNQdLU&M zP(?S;r93F@rB@P@~_NJ^$o{MZkxzOj4_76X1M+WE9H!9ww6SsgsA z+dtN_rcZN_KT*EXtqx3t1XAO+4@HnCq8(ESK(C7C*~K#!bE4Ljth4lg)vQylpuWfp zAB`(PB$4}<11%E?^45r-v?-Q0wOKxWiMFkHy0y{3Q#8IUm(ZN()*Jd$TRE<+Zc)=k z4k3WML6j2w>q0_DG-^`9>TN2TyxaT1B78wYX#yebY|^Wc8|{5hS+Gy-2|AH7Ky6_+ z6n)d&My+H)UWM)6g{-Ns7|mPBGG7w|_g$krwhXWon3s@I ze@vpt82cwMQUNbWyjvo1Qls`G35yPG^CO+WK0WO-qP>#o6J2F+umZYARbWveZM%g< z7uz%${7k^?5Sp@lQQ}k!q^GpxmzaT~ko|(O160A>mycvdD3JZv@ousJrl7iP#M$sS z;~S{F+qXHI^FmU@>e_B0zOi+(`$?wdRXjL zBk2L(0t+%J)!oz)&jrjn@r@6XP1GHeIH6A9%eTTX@Q`cSoslU%)VQwMCQ2liFOb0r zLnkDA5S^snEE5z6!S-6ha>nSrr9MsAjH{;1zDil*;d06i+$WkVAyu)!VA@OCv%(!+ z8Cs1BIYI_P)+P%hK;S*9;cE#LJxilPP7+b`VOvrqIeLgm09Bo{3o4nIDrB&6=TSQg zTa&%kw4-2Ulf{ZM*2`Cm&M(s&=oXC;oGuItu-%!g{af^kufon?fnn6eQa#ZdS&4#{ z46Mogt=YmWLgs?yn(0Rk<0@kuVSIVqefZOJwI?u-pUOPP_Cpnf!!C%t;(Z!KWLn~z zHtB1~R0FcE9MfXt*hS4}CoRL$!XwkH31H2-Wo3xdGWTPHMA_J&D`kocz7sjSb}Yd9 zw7WUe>UFBbXv9u@nIrKUrv#v<6c;c<-7R=q#qUrL5)( zMtKlgFbrHot2@sO@y@Y95z*OUU@<1Q?HpdIw(5-@X(|Ve+n&PFvS_^0m+X>Ex-bAJ zp4{^=OB>75OGppElws}*K=Skz`cc+H84en8$z<^qI+ml}lRiTpGCX2sc*Z0u%?sH2 zaCQfr7Y80eNIcT%KbD#n?1PweLCZWFk?k9lQgEyO`m)0+$8xO|o# z$h#`B@{R#%qCD#_j6lxnBALpCC#S*`|NK6DhDqc;&N;x&ku z3P601Jo+|oXT>foh`-BAn z>=j0*c#o;kaKxc5zKhvy=H5Fu=HA`4U=1ns84Qb^-5~IkR4PV^or?efe2Y!{6f)cL z&%TSm?QgCnym7=#^o$X$XS%@+!mA6?x3DI(c^*;#LlqqIsDJ=pzyJsU0RMl%0AL67 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