- Replaced placeholder podiums in round 2 with velvet rope.

- Video player more reliably loads videos on restarts.
This commit is contained in:
2026-04-16 03:21:06 -04:00
parent ace89dc62d
commit 3a68516eaf
23 changed files with 898 additions and 631 deletions
+91
View File
@@ -0,0 +1,91 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M_Velvet
m_Shader: {fileID: 4800000, guid: 0b7113dea2069fc4e8943843eff19f70, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _ENABLE_GEOMETRIC_SPECULAR_AA
- _GLOSSYREFLECTIONS_OFF
m_InvalidKeywords:
- _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 511a2a95e47da9a4fb1b0b8146ad3e70, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 5, y: 5}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 5, y: 5}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 2800000, guid: d998877a999be404b89138ca135c4131, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _Bicubic: 0
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableGeometricSpecularAA: 1
- _GlossMapScale: 1
- _Glossiness: 0.302
- _GlossyReflections: 0
- _LightmapType: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 0.75
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularAAScreenSpaceVariance: 0.1
- _SpecularAAThreshold: 0.2
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.78431374, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e938c08786a400b4eac8b275aec1eabf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+109
View File
@@ -0,0 +1,109 @@
fileFormatVersion: 2
guid: 041fc504ffe97874884e52d5d72fe840
ModelImporter:
serializedVersion: 22200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
+3 -3
View File
@@ -173,7 +173,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: DESTINATION m_text:
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 9672859a94551274b9079efbf9adc4a9, type: 2} m_fontAsset: {fileID: 11400000, guid: 9672859a94551274b9079efbf9adc4a9, type: 2}
m_sharedMaterial: {fileID: -1369706839575089024, guid: 9672859a94551274b9079efbf9adc4a9, m_sharedMaterial: {fileID: -1369706839575089024, guid: 9672859a94551274b9079efbf9adc4a9,
@@ -201,7 +201,7 @@ MonoBehaviour:
m_faceColor: m_faceColor:
serializedVersion: 2 serializedVersion: 2
rgba: 4294967295 rgba: 4294967295
m_fontSize: 183.8 m_fontSize: 200
m_fontSizeBase: 200 m_fontSizeBase: 200
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 1 m_enableAutoSizing: 1
@@ -324,7 +324,7 @@ PrefabInstance:
- target: {fileID: 919132149155446097, guid: 85fb9450493e0894191f35f1bc4e8edf, - target: {fileID: 919132149155446097, guid: 85fb9450493e0894191f35f1bc4e8edf,
type: 3} type: 3}
propertyPath: m_StaticEditorFlags propertyPath: m_StaticEditorFlags
value: 0 value: 2147483647
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 KiB

After

Width:  |  Height:  |  Size: 622 KiB

Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -4
View File
@@ -2,8 +2,6 @@
using TMPro; using TMPro;
using UdonSharp; using UdonSharp;
using UnityEngine; using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
@@ -12,8 +10,8 @@ public class ArrivalDisplay : UdonSharpBehaviour
[SerializeField] private GameObject _Sign; [SerializeField] private GameObject _Sign;
[SerializeField] private TextMeshProUGUI _Display; [SerializeField] private TextMeshProUGUI _Display;
[UdonSynced, FieldChangeCallback(nameof(ActivateSign))] private bool _ActivateSign; [UdonSynced, FieldChangeCallback(nameof(ActivateSign))] private bool _ActivateSign = false;
[UdonSynced, FieldChangeCallback(nameof(DisplayText))] private string _DisplayText; [UdonSynced, FieldChangeCallback(nameof(DisplayText))] private string _DisplayText = "";
public void Activate(bool Active) public void Activate(bool Active)
@@ -1964,25 +1964,25 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _ArrivalDisplays
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 125|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 125|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _ArrivalDisplays
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 126|System.RuntimeType, mscorlib Data: 126|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: ArrivalDisplay, Assembly-CSharp Data: ArrivalDisplay[], Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 4 Data: 33
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -53,7 +53,8 @@ public class GameManagerRound1 : GameManagerBase
[SerializeField] private DetectiveNoirEffect _DetectiveNoirEffect; [SerializeField] private DetectiveNoirEffect _DetectiveNoirEffect;
[SerializeField] private FilingCabinet _FilingCabinet; [SerializeField] private FilingCabinet _FilingCabinet;
[SerializeField] private Modem _Modem; [SerializeField] private Modem _Modem;
[SerializeField] private ArrivalDisplay _ArrivalDisplay;
[SerializeField] private ArrivalDisplay[] _ArrivalDisplays;
[Space, Header("Effects")] [Space, Header("Effects")]
[SerializeField] private Animator _LightningRoundAnimator; [SerializeField] private Animator _LightningRoundAnimator;
@@ -100,7 +101,11 @@ public class GameManagerRound1 : GameManagerBase
_PlayerBuzzInAllowed = new bool[_PlayerPodiums.Length]; _PlayerBuzzInAllowed = new bool[_PlayerPodiums.Length];
_Modem.Activate(false); _Modem.Activate(false);
_ArrivalDisplay.Activate(false);
foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Display.Activate(false);
}
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(EnableAudienceSilencer), true); SendCustomNetworkEvent(NetworkEventTarget.All, nameof(EnableAudienceSilencer), true);
@@ -114,6 +119,8 @@ public class GameManagerRound1 : GameManagerBase
DisableInteraction(); DisableInteraction();
_VideoPlayer.PrepareMapsAndVideos(_CaseManager);
base.InitialiseGameMode(); base.InitialiseGameMode();
RequestSerialization(); RequestSerialization();
@@ -146,7 +153,11 @@ public class GameManagerRound1 : GameManagerBase
Networking.SetOwner(NewOwner, _DetectiveNoirEffect.gameObject); Networking.SetOwner(NewOwner, _DetectiveNoirEffect.gameObject);
Networking.SetOwner(NewOwner, _FilingCabinet.gameObject); Networking.SetOwner(NewOwner, _FilingCabinet.gameObject);
Networking.SetOwner(NewOwner, _Modem.gameObject); Networking.SetOwner(NewOwner, _Modem.gameObject);
Networking.SetOwner(NewOwner, _ArrivalDisplay.gameObject);
foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Networking.SetOwner(NewOwner, Display.gameObject);
}
Networking.SetOwner(NewOwner, _CameraController.gameObject); Networking.SetOwner(NewOwner, _CameraController.gameObject);
Networking.SetOwner(NewOwner, _CameraControllerRound1.gameObject); Networking.SetOwner(NewOwner, _CameraControllerRound1.gameObject);
@@ -198,8 +209,6 @@ public class GameManagerRound1 : GameManagerBase
Interface.CommentUI.text = _CaseManager.GetCaseDescription(); Interface.CommentUI.text = _CaseManager.GetCaseDescription();
_GameHasBegun = false; _GameHasBegun = false;
_VideoPlayer.PrepareMapsAndVideos(_CaseManager);
} }
@@ -1487,7 +1496,11 @@ public class GameManagerRound1 : GameManagerBase
"PlayMusicLoop", MusicEventType.CapitalLoop); "PlayMusicLoop", MusicEventType.CapitalLoop);
_Modem.Activate(true); _Modem.Activate(true);
_ArrivalDisplay.Activate(true);
foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Display.Activate(true);
}
_CameraControllerRound1.ActivateModemCameraTrigger(); _CameraControllerRound1.ActivateModemCameraTrigger();
@@ -716,19 +716,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _LocationBoard
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _LocationBoard
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 47|System.RuntimeType, mscorlib Data: 47|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: ArrivalDisplay, Assembly-CSharp Data: LocationBoard, Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@@ -785,19 +785,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _LocationBoard Data: _JailChain
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _LocationBoard Data: _JailChain
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 52|System.RuntimeType, mscorlib Data: 52|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: LocationBoard, Assembly-CSharp Data: JailChain, Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@@ -845,19 +845,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _JailChain Data: _JailPhone
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _JailChain Data: _JailPhone
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 56|System.RuntimeType, mscorlib Data: 56|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: JailChain, Assembly-CSharp Data: JailPhone, Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@@ -905,25 +905,25 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _JailPhone Data: _PlayerConfettiCannons
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _JailPhone Data: _PlayerConfettiCannons
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 60|System.RuntimeType, mscorlib Data: 60|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: JailPhone, Assembly-CSharp Data: UnityEngine.ParticleSystem[], UnityEngine.ParticleSystemModule
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 4 Data: 60
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -965,25 +965,25 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _PlayerConfettiCannons Data: _ArrivalDisplays
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _PlayerConfettiCannons Data: _ArrivalDisplays
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 64|System.RuntimeType, mscorlib Data: 64|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: UnityEngine.ParticleSystem[], UnityEngine.ParticleSystemModule Data: ArrivalDisplay[], Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 64 Data: 33
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -21,12 +21,13 @@ public class GameManagerRound2 : GameManagerBase
{ {
[Space] [Space]
[SerializeField] private ArrivalDisplay _ArrivalDisplay;
[SerializeField] private LocationBoard _LocationBoard; [SerializeField] private LocationBoard _LocationBoard;
[SerializeField] private JailChain _JailChain; [SerializeField] private JailChain _JailChain;
[SerializeField] private JailPhone _JailPhone; [SerializeField] private JailPhone _JailPhone;
[SerializeField] private ParticleSystem[] _PlayerConfettiCannons; [SerializeField] private ParticleSystem[] _PlayerConfettiCannons;
[SerializeField] private ArrivalDisplay[] _ArrivalDisplays;
[SerializeField] private RandomVideoPlayer _JailPlayer; [SerializeField] private RandomVideoPlayer _JailPlayer;
[UdonSynced, FieldChangeCallback(nameof(Location))] private string _Location = ""; [UdonSynced, FieldChangeCallback(nameof(Location))] private string _Location = "";
@@ -104,12 +105,16 @@ public class GameManagerRound2 : GameManagerBase
public override void SetOwnershipOfObjects(VRCPlayerApi NewOwner) public override void SetOwnershipOfObjects(VRCPlayerApi NewOwner)
{ {
Networking.SetOwner(NewOwner, _ArrivalDisplay.gameObject);
Networking.SetOwner(NewOwner, _LocationBoard.gameObject); Networking.SetOwner(NewOwner, _LocationBoard.gameObject);
Networking.SetOwner(NewOwner, _JailChain.gameObject); Networking.SetOwner(NewOwner, _JailChain.gameObject);
Networking.SetOwner(NewOwner, _JailPlayer.gameObject); Networking.SetOwner(NewOwner, _JailPlayer.gameObject);
Networking.SetOwner(NewOwner, _JailPhone.gameObject); Networking.SetOwner(NewOwner, _JailPhone.gameObject);
foreach(ArrivalDisplay Display in _ArrivalDisplays)
{
Networking.SetOwner(NewOwner, Display.gameObject);
}
Networking.SetOwner(NewOwner, _CameraController.gameObject); Networking.SetOwner(NewOwner, _CameraController.gameObject);
Networking.SetOwner(NewOwner, _CameraControllerRound2.gameObject); Networking.SetOwner(NewOwner, _CameraControllerRound2.gameObject);
@@ -611,7 +616,10 @@ public class GameManagerRound2 : GameManagerBase
set set
{ {
_Location = value; _Location = value;
_ArrivalDisplay.SetDisplayText(_Location); foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Display.SetDisplayText(_Location);
}
} }
get => _Location; get => _Location;
} }
Binary file not shown.