From 162dc2cdb4b170efdbcfa39c4899ed068a72a888 Mon Sep 17 00:00:00 2001 From: logzinga <65839350+logzinga@users.noreply.github.com> Date: Thu, 2 Mar 2023 10:54:21 +1100 Subject: [PATCH] working relays hopefully --- Assets/Noble Connect.meta | 10 - Assets/Noble Connect/Common.meta | 8 - Assets/Noble Connect/Common/Config.cs | 123 - Assets/Noble Connect/Common/Config.cs.meta | 11 - .../Common/Noble Example Player.png | Bin 26198 -> 0 bytes .../Common/Noble Example Player.png.meta | 140 - .../Common/NobleConnectSettings.cs | 19 - .../Common/NobleConnectSettings.cs.meta | 11 - Assets/Noble Connect/Common/TextFromFile.cs | 15 - .../Noble Connect/Common/TextFromFile.cs.meta | 11 - Assets/Noble Connect/Common/UnityLogger.cs | 17 - .../Noble Connect/Common/UnityLogger.cs.meta | 11 - Assets/Noble Connect/Common/white.png | Bin 17700 -> 0 bytes Assets/Noble Connect/Common/white.png.meta | 77 - Assets/Noble Connect/Editor.meta | 10 - .../Editor/AddNobleConnectScriptingDefine.cs | 52 - .../AddNobleConnectScriptingDefine.cs.meta | 13 - .../Editor/AmazonCertificateHandler.cs | 42 - .../Editor/AmazonCertificateHandler.cs.meta | 11 - .../Editor/Noble Setup Title Background.png | Bin 21914 -> 0 bytes .../Noble Setup Title Background.png.meta | 77 - Assets/Noble Connect/Editor/SetupWizard.cs | 386 -- .../Noble Connect/Editor/SetupWizard.cs.meta | 13 - Assets/Noble Connect/Editor/whale_256.png | Bin 26198 -> 0 bytes .../Noble Connect/Editor/whale_256.png.meta | 117 - Assets/Noble Connect/Mirror.meta | 8 - Assets/Noble Connect/Mirror/INSTALL.md | 3 - Assets/Noble Connect/Mirror/INSTALL.md.meta | 9 - .../Mirror Noble Connect.unitypackage.meta | 7 - .../NetCode for GameObjects.meta | 8 - .../NetCode for GameObjects/Examples.meta | 8 - .../Examples/Basic.meta | 8 - .../Example NetCode for GameObjects.unity | 4708 ----------------- ...Example NetCode for GameObjects.unity.meta | 7 - .../Basic/ExampleNetCodeNetworkHUD.cs | 118 - .../Basic/ExampleNetCodeNetworkHUD.cs.meta | 11 - .../Examples/Basic/README.txt | 12 - .../Examples/Basic/README.txt.meta | 9 - .../Examples/GUILabelFromText.cs | 27 - .../Examples/GUILabelFromText.cs.meta | 13 - .../Examples/Match Up.meta | 8 - ...Example Match Up Package.unitypackage.meta | 7 - .../Examples/Match Up/INSTALL.txt | 3 - .../Examples/Match Up/INSTALL.txt.meta | 8 - ...Code for GameObjects Example Player.prefab | 172 - ...for GameObjects Example Player.prefab.meta | 10 - .../NetCodeForGameObjectsExamplePlayer.cs | 29 - ...NetCodeForGameObjectsExamplePlayer.cs.meta | 13 - .../NetCode for GameObjects/INSTALL.md | 3 - .../NetCode for GameObjects/INSTALL.md.meta | 9 - .../NetCode for GameObjects/Internal.meta | 8 - .../Internal/NobleUnityTransport.cs | 277 - .../Internal/NobleUnityTransport.cs.meta | 11 - ...ameObjects Noble Connect.unitypackage.meta | 7 - Assets/Noble Connect/NobleConnect.dll | Bin 163840 -> 0 bytes Assets/Noble Connect/NobleConnect.dll.meta | 33 - Assets/Noble Connect/README.md | 91 - Assets/Noble Connect/README.md.meta | 9 - Assets/Noble Connect/Resources.meta | 8 - .../Resources/NobleConnectSettings.asset | 16 - .../Resources/NobleConnectSettings.asset.meta | 8 - Assets/Noble Connect/UNet.meta | 8 - Assets/Noble Connect/UNet/INSTALL.md | 2 - Assets/Noble Connect/UNet/INSTALL.md.meta | 8 - .../UNet/UNet Noble Connect.unitypackage.meta | 7 - Assets/Scenes/Level01.unity | 455 +- Assets/Scripts/ServerMenu.cs | 32 +- UserSettings/Layouts/default-2021.dwlt | 32 +- 68 files changed, 487 insertions(+), 6917 deletions(-) delete mode 100644 Assets/Noble Connect.meta delete mode 100644 Assets/Noble Connect/Common.meta delete mode 100644 Assets/Noble Connect/Common/Config.cs delete mode 100644 Assets/Noble Connect/Common/Config.cs.meta delete mode 100644 Assets/Noble Connect/Common/Noble Example Player.png delete mode 100644 Assets/Noble Connect/Common/Noble Example Player.png.meta delete mode 100644 Assets/Noble Connect/Common/NobleConnectSettings.cs delete mode 100644 Assets/Noble Connect/Common/NobleConnectSettings.cs.meta delete mode 100644 Assets/Noble Connect/Common/TextFromFile.cs delete mode 100644 Assets/Noble Connect/Common/TextFromFile.cs.meta delete mode 100644 Assets/Noble Connect/Common/UnityLogger.cs delete mode 100644 Assets/Noble Connect/Common/UnityLogger.cs.meta delete mode 100644 Assets/Noble Connect/Common/white.png delete mode 100644 Assets/Noble Connect/Common/white.png.meta delete mode 100644 Assets/Noble Connect/Editor.meta delete mode 100644 Assets/Noble Connect/Editor/AddNobleConnectScriptingDefine.cs delete mode 100644 Assets/Noble Connect/Editor/AddNobleConnectScriptingDefine.cs.meta delete mode 100644 Assets/Noble Connect/Editor/AmazonCertificateHandler.cs delete mode 100644 Assets/Noble Connect/Editor/AmazonCertificateHandler.cs.meta delete mode 100644 Assets/Noble Connect/Editor/Noble Setup Title Background.png delete mode 100644 Assets/Noble Connect/Editor/Noble Setup Title Background.png.meta delete mode 100644 Assets/Noble Connect/Editor/SetupWizard.cs delete mode 100644 Assets/Noble Connect/Editor/SetupWizard.cs.meta delete mode 100644 Assets/Noble Connect/Editor/whale_256.png delete mode 100644 Assets/Noble Connect/Editor/whale_256.png.meta delete mode 100644 Assets/Noble Connect/Mirror.meta delete mode 100644 Assets/Noble Connect/Mirror/INSTALL.md delete mode 100644 Assets/Noble Connect/Mirror/INSTALL.md.meta delete mode 100644 Assets/Noble Connect/Mirror/Mirror Noble Connect.unitypackage.meta delete mode 100644 Assets/Noble Connect/NetCode for GameObjects.meta delete mode 100644 Assets/Noble Connect/NetCode for GameObjects/Examples.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Basic.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs.meta delete mode 100644 Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/Example Match Up Package.unitypackage.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs.meta delete mode 100644 Assets/Noble Connect/NetCode for GameObjects/INSTALL.md delete mode 100644 Assets/Noble Connect/NetCode for GameObjects/INSTALL.md.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Internal.meta delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs delete mode 100755 Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs.meta delete mode 100644 Assets/Noble Connect/NetCode for GameObjects/NetCode for GameObjects Noble Connect.unitypackage.meta delete mode 100644 Assets/Noble Connect/NobleConnect.dll delete mode 100644 Assets/Noble Connect/NobleConnect.dll.meta delete mode 100644 Assets/Noble Connect/README.md delete mode 100644 Assets/Noble Connect/README.md.meta delete mode 100644 Assets/Noble Connect/Resources.meta delete mode 100644 Assets/Noble Connect/Resources/NobleConnectSettings.asset delete mode 100644 Assets/Noble Connect/Resources/NobleConnectSettings.asset.meta delete mode 100644 Assets/Noble Connect/UNet.meta delete mode 100644 Assets/Noble Connect/UNet/INSTALL.md delete mode 100644 Assets/Noble Connect/UNet/INSTALL.md.meta delete mode 100644 Assets/Noble Connect/UNet/UNet Noble Connect.unitypackage.meta diff --git a/Assets/Noble Connect.meta b/Assets/Noble Connect.meta deleted file mode 100644 index fe010b7..0000000 --- a/Assets/Noble Connect.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 47960fcc1509505478abb826d0ddd57b -folderAsset: yes -timeCreated: 1538747955 -licenseType: Store -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Common.meta b/Assets/Noble Connect/Common.meta deleted file mode 100644 index 6c8751f..0000000 --- a/Assets/Noble Connect/Common.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f8b65a10719a36e458516ffd952b1bc7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Common/Config.cs b/Assets/Noble Connect/Common/Config.cs deleted file mode 100644 index c26e8e9..0000000 --- a/Assets/Noble Connect/Common/Config.cs +++ /dev/null @@ -1,123 +0,0 @@ -using NobleConnect.Ice; -using System; -using System.Text; -using UnityEngine; - -namespace NobleConnect -{ - [Serializable] - public class Config - { - [NonSerialized] - public ushort IcePort; - [NonSerialized] - public string Username; - [NonSerialized] - public string Password; - [NonSerialized] - public string Origin; - [NonSerialized] - public bool UseSimpleAddressGathering = false; - - public Action OnFatalError; - public Action OnOfferFailed; - - /// The geographic region to use when selecting a relay server. - /// - /// Defaults to AUTO which will automatically select the closest region. - /// This is useful if you would like your players to be able to choose - /// their region at run time. - /// Note that players are not prevented from connecting across regions. - /// That would need to be implementing separately via matchmaking for - /// example, by filtering out matches from undesired regions. - /// - [Tooltip("The geographic region to use when selecting a relay server.")] - public GeographicRegion Region; - - /// You can enable this to force relay connections to be used for testing purposes. - /// - /// Disables punchthrough and direct connections. Forces connections to use the relays. - /// This is useful if you want to test your game with the unavoidable latency that is - /// introduced when the relay servers are used. - /// - [Tooltip("Enable this to force relay connections to be used for testing purposes.")] - public bool ForceRelayOnly = false; - - /// By default IPv6 is enabled, but you can disable it if you're using a transport that does not support IPv6 - [Tooltip("By default IPv6 is enabled, but you can disable it if you're using a transport that does not support IPv6.")] - public bool EnableIPv6 = true; - - /// Request timeout. - /// - /// This effects how long to wait before considering a request to have failed. - /// Requests are used during the punchthrough process and for setting up and maintaining relays. - /// If you are allowing cross-region play or expect high latency you can increase this so that requests won't time out. - /// The drawback is that waiting longer for timeouts causes it take take longer to detect actual failed requests so the - /// connection process may take longer. - /// - [Tooltip("How long to wait before considering a request to have failed.")] - public float RequestTimeout = .2f; - - /// Initial timeout before resending refresh messages. This is doubled for each failed resend. - [Tooltip("Initial timeout before resending refresh messages. This is doubled for each failed resend.")] - public float RelayRequestTimeout = .1f; - - /// Max number of times to try and resend refresh messages before giving up and shutting down the relay connection. - [Tooltip("Max number of times to try and resend refresh messages before giving up and shutting down the relay connection.")] - public int RelayRefreshMaxAttempts = 8; - - /// How long a relay will stay alive without being refreshed - /// - /// Setting this value higher means relays will stay alive longer even if the host temporarily loses connection or otherwise fails to send the refresh request in time. - /// This can be helpful to maintain connection on an undependable network or when heavy application load (such as loading large levels synchronously) temporarily prevents requests from being processed. - /// The drawback is that CCU is used for as long as the relay stays alive, so players that crash or otherwise don't clean up properly can cause lingering CCU usage for up to relayLifetime seconds. - /// - [Tooltip("How long a relay will stay alive without being refreshed.")] - public int RelayLifetime = 60; - - /// How often to send relay refresh requests. - [Tooltip("How often to send relay refresh requests.")] - public int RelayRefreshTime = 30; - - public IceConfig AsIceConfig() - { - // Get a reference to the NobleConnectSettings - var settings = (NobleConnectSettings)Resources.Load("NobleConnectSettings", typeof(NobleConnectSettings)); - - // Parse the username, password, and origin from the game id - string username = "", password = "", origin = ""; - if (!string.IsNullOrEmpty(settings.gameID)) - { - string decodedGameID = Encoding.UTF8.GetString(Convert.FromBase64String(settings.gameID)); - string[] parts = decodedGameID.Split('\n'); - - if (parts.Length == 3) - { - username = parts[1]; - password = parts[2]; - origin = parts[0]; - } - } - - var iceConfig = new IceConfig { - iceServerAddress = RegionURL.FromRegion(Region), - icePort = settings.relayServerPort, - username = username, - password = password, - origin = origin, - useSimpleAddressGathering = (Application.platform == RuntimePlatform.IPhonePlayer || Application.platform == RuntimePlatform.Android) && !Application.isEditor, - onFatalError = OnFatalError, - onOfferFailed = () => OnFatalError("Offer failed"), - forceRelayOnly = ForceRelayOnly, - enableIPv6 = EnableIPv6, - RequestTimeout = RequestTimeout, - RelayRequestTimeout = RelayRequestTimeout, - RelayRefreshMaxAttempts = RelayRefreshMaxAttempts, - RelayLifetime = RelayLifetime, - RelayRefreshTime = RelayRefreshTime - }; - - return iceConfig; - } - } -} \ No newline at end of file diff --git a/Assets/Noble Connect/Common/Config.cs.meta b/Assets/Noble Connect/Common/Config.cs.meta deleted file mode 100644 index 963ea09..0000000 --- a/Assets/Noble Connect/Common/Config.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 959d07654e99fd345a7ae965ae68fad7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Common/Noble Example Player.png b/Assets/Noble Connect/Common/Noble Example Player.png deleted file mode 100644 index dc252adee2040d8bd4928f15a432115d1b794860..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26198 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

L;KuoC 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 bP6)hsemw{6Y=Q6Be}0jdRhB81HV*thTCB?Q diff --git a/Assets/Noble Connect/Common/Noble Example Player.png.meta b/Assets/Noble Connect/Common/Noble Example Player.png.meta deleted file mode 100644 index 36ace77..0000000 --- a/Assets/Noble Connect/Common/Noble Example Player.png.meta +++ /dev/null @@ -1,140 +0,0 @@ -fileFormatVersion: 2 -guid: 2c0f41f48ef7e7248a5db28d31441b2c -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 0 - lightmap: 0 - compressionQuality: 50 - spriteMode: 1 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 1 - spriteTessellationDetail: -1 - textureType: 8 - textureShape: 1 - singleChannelComponent: 0 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - applyGammaDecoding: 1 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - - serializedVersion: 3 - buildTarget: iPhone - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - - serializedVersion: 3 - buildTarget: Android - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - - serializedVersion: 3 - buildTarget: Windows Store Apps - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 1 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Common/NobleConnectSettings.cs b/Assets/Noble Connect/Common/NobleConnectSettings.cs deleted file mode 100644 index 9c08c7b..0000000 --- a/Assets/Noble Connect/Common/NobleConnectSettings.cs +++ /dev/null @@ -1,19 +0,0 @@ -using UnityEngine; - -namespace NobleConnect -{ - /// Settings used by Noble Connect to authenticate with the relay and punchthrough services - public class NobleConnectSettings : ScriptableObject - { - /// Used to identify your game and authenticate with the relay servers - /// - /// This is populated for you when you go through the setup wizard but you can also set it manually here. - /// Your game ID is available any time on the dashboard at noblewhale.com - /// - [Tooltip("Used to identify your game and authenticate with the relay servers")] - public string gameID; - - [HideInInspector] - public ushort relayServerPort = 3478; - } -} diff --git a/Assets/Noble Connect/Common/NobleConnectSettings.cs.meta b/Assets/Noble Connect/Common/NobleConnectSettings.cs.meta deleted file mode 100644 index 8ee34e2..0000000 --- a/Assets/Noble Connect/Common/NobleConnectSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0154c6ffa997c574c9f0f2680c03e82f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Common/TextFromFile.cs b/Assets/Noble Connect/Common/TextFromFile.cs deleted file mode 100644 index 6dc6ae9..0000000 --- a/Assets/Noble Connect/Common/TextFromFile.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; - -namespace NobleConnect.Examples -{ - public class TextFromFile : MonoBehaviour - { - public TextAsset TextFile; - - void OnValidate() - { - GetComponent().text = TextFile.text; - } - } -} diff --git a/Assets/Noble Connect/Common/TextFromFile.cs.meta b/Assets/Noble Connect/Common/TextFromFile.cs.meta deleted file mode 100644 index 6ce9140..0000000 --- a/Assets/Noble Connect/Common/TextFromFile.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 35c73af1cf66d43448d976a70078d546 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Common/UnityLogger.cs b/Assets/Noble Connect/Common/UnityLogger.cs deleted file mode 100644 index 3094ffb..0000000 --- a/Assets/Noble Connect/Common/UnityLogger.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace NobleConnect -{ - public class UnityLogger - { - public static void Init() - { - Logger.logger = Debug.Log; - Logger.warnLogger = Debug.LogWarning; - Logger.errorLogger = Debug.LogError; - //Logger.logLevel = Logger.Level.Developer; - } - } -} diff --git a/Assets/Noble Connect/Common/UnityLogger.cs.meta b/Assets/Noble Connect/Common/UnityLogger.cs.meta deleted file mode 100644 index cbf85cb..0000000 --- a/Assets/Noble Connect/Common/UnityLogger.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 59351c3313ddebb45a3153e4cc90a575 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Common/white.png b/Assets/Noble Connect/Common/white.png deleted file mode 100644 index fd1468e0292a1fee1058eaf57539331877b327be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17700 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 - /// Adds the given define symbols to PlayerSettings define symbols. - /// Just add your own define symbols to the Symbols property at the below. - /// - [InitializeOnLoad] - public class AddNobleConnectScriptingDefine : Editor - { - - /// - /// Symbols that will be added to the editor - /// - public static readonly string[] Symbols = new string[] { - "NOBLE_CONNECT", // Noble Connect exists - "NOBLE_CONNECT_1", // Major version - "NOBLE_CONNECT_1_37" // Major and minor version - }; - - /// - /// Add define symbols as soon as Unity gets done compiling. - /// - static AddNobleConnectScriptingDefine() - { - // Get the current scripting defines - string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); - // Convert the string to a list - List allDefines = definesString.Split(';').ToList(); - // Remove any old version defines from previous installs - for (int i = allDefines.Count-1; i >= 0; i--) - { - if (allDefines[i].StartsWith("NOBLE_CONNECT") && !Symbols.Contains(allDefines[i])) - { - allDefines.RemoveAt(i); - } - } - // Add any symbols that weren't already in the list - allDefines.AddRange(Symbols.Except(allDefines)); - PlayerSettings.SetScriptingDefineSymbolsForGroup( - EditorUserBuildSettings.selectedBuildTargetGroup, - string.Join(";", allDefines.ToArray()) - ); - } - - } -} -#endif \ No newline at end of file diff --git a/Assets/Noble Connect/Editor/AddNobleConnectScriptingDefine.cs.meta b/Assets/Noble Connect/Editor/AddNobleConnectScriptingDefine.cs.meta deleted file mode 100644 index 2e18524..0000000 --- a/Assets/Noble Connect/Editor/AddNobleConnectScriptingDefine.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: b53ae3111803795478bcbb739ad557f1 -timeCreated: 1551018990 -licenseType: Store -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 35ce04e51d0abb847890436754a88096, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Editor/AmazonCertificateHandler.cs b/Assets/Noble Connect/Editor/AmazonCertificateHandler.cs deleted file mode 100644 index 31a2ddf..0000000 --- a/Assets/Noble Connect/Editor/AmazonCertificateHandler.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using UnityEngine.Networking; -using System.Security.Cryptography.X509Certificates; -using UnityEngine; - -namespace NobleConnect.Internal -{ - #if !UNITY_5 && !UNITY_2017 - public class AmazonCertificateHandler : CertificateHandler - { - // Encoded RSAPublicKey - private static readonly string PUB_KEY = "3082010A0282010100CCCC0263917F8002CD937BEDCD06F29" + - "919F82E724EE5012E2C02991AD7FA06603D927975B099FF23" + - "CA94A876ED8F9871051ED81A13D1486534BCF1B07277DC0DA" + - "26C79C03B58590C9B2724917C68E3A10368ABFC214C20D8DF" + - "E3BC8ACE0519C776E9F9EC93FADD6C6A5E1CDA1A24867D67F" + - "EC0AF2B0DB8DD1BBB7D020331B7C0ECF838B57C73E6FF6722" + - "F17A9DF74391CFC4914B44B77655B79223E1E550F715AD6F1" + - "4BF3E755FFF815526C162BB3F379FFB5272D3C0EA59A35D1E" + - "9E49B94872EB768250BA3DBBFFD042015BDD2B1DFD164B950" + - "6D7DA324B63348122CE9EB368DB2FF0E02AD6B7A453A28B11" + - "E67591FC2CC0B74E1C80688C535D32DC692C08ED0203010001"; - - /// - /// Validate the Certificate Against the Amazon public Cert - /// - /// Certifcate to validate - /// - protected override bool ValidateCertificate(byte[] certificateData) - { - X509Certificate2 certificate = new X509Certificate2(certificateData); - string pk = certificate.GetPublicKeyString(); - if (pk.ToLower().Equals(PUB_KEY.ToLower())) - { - return true; - } - - return false; - } - } - #endif -} \ No newline at end of file diff --git a/Assets/Noble Connect/Editor/AmazonCertificateHandler.cs.meta b/Assets/Noble Connect/Editor/AmazonCertificateHandler.cs.meta deleted file mode 100644 index 1741b68..0000000 --- a/Assets/Noble Connect/Editor/AmazonCertificateHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a832db3337d4187499b35f1b02b16042 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Editor/Noble Setup Title Background.png b/Assets/Noble Connect/Editor/Noble Setup Title Background.png deleted file mode 100644 index 1d4ab9be0a2ea35f34270f70f44ce93e752f05cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21914 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 diff --git a/Assets/Noble Connect/Editor/Noble Setup Title Background.png.meta b/Assets/Noble Connect/Editor/Noble Setup Title Background.png.meta deleted file mode 100644 index 3696997..0000000 --- a/Assets/Noble Connect/Editor/Noble Setup Title Background.png.meta +++ /dev/null @@ -1,77 +0,0 @@ -fileFormatVersion: 2 -guid: e2718437b8b970d43918120542ad4bcd -timeCreated: 1539817181 -licenseType: Store -TextureImporter: - fileIDToRecycleName: {} - externalObjects: {} - serializedVersion: 4 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - 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: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapU: -1 - wrapV: -1 - wrapW: -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 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - spritePackingTag: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Editor/SetupWizard.cs b/Assets/Noble Connect/Editor/SetupWizard.cs deleted file mode 100644 index 8696fd3..0000000 --- a/Assets/Noble Connect/Editor/SetupWizard.cs +++ /dev/null @@ -1,386 +0,0 @@ -using System; -using System.Collections; -using System.Text; -using NobleConnect; -using UnityEditor; -using UnityEngine; -using UnityEngine.Networking; - -public class SetupWizard : EditorWindow -{ - const string windowTitle = "Noble Connect"; - const string titleText = "Noble Connect Setup"; - const string bodyText = "\nEnter your game id or email address to enable Noble Connect.\n\n" + - "The service is free to use for development but bandwidth and CCU is limited.\n" + - "Visit noblewhale.com to upgrade to a paid account and remove the bandwidth and CCU limits."; - const string signUpSuccessText = "Successful account signup. \n\n" + - "Load up an example to get started or visit our website to upgrade to a paid account.\n"; - const string accountAlreadyExistsText = "User already exists. \n\n" + - "Log in at noblewhale.com to get your game ID.\n"; - const string otherErrorText = "An error has occurred. \n\n" + - "Log in at noblewhale.com to get your game ID.\n"; - const string enteredGameIDText = "GameID entered. \n\n" + - "Welcome back. Visit noblewhale.com to upgrade to a paid account\n" + - "and remove the bandwidth and CCU limits.\n"; - Texture2D logo, bg; - - GUIStyle headerStyle = new GUIStyle(); - GUIStyle titleStyle = new GUIStyle(); - GUIStyle logoStyle = new GUIStyle(); - GUIStyle bodyStyle = new GUIStyle(); - GUIStyle secondScreenStyle = new GUIStyle(); - - bool clickedActivate = false; - bool accountActivated = false; - bool accountAlreadyExists = false; - bool otherError = false; - bool enteredGameID = false; - - IEnumerator createAccountRequest; - - string emailOrGameID; - - SetupWizard() - { - minSize = new Vector2(530, 300); - } - - void OnEnable() - { - if (logo == null) - { - string[] paths = AssetDatabase.FindAssets("whale_256 t:Texture2D"); - if (paths != null && paths.Length > 0) - { - logo = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(paths[0])); - } - } - if (bg == null) - { - string[] paths = AssetDatabase.FindAssets("Noble Setup Title Background t:Texture2D"); - if (paths != null && paths.Length > 0) - { - bg = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(paths[0])); - } - } - } - - void Update() - { - if (createAccountRequest != null) createAccountRequest.MoveNext(); - } - - void OnGUI() - { - DrawHeader(); - - if (!accountActivated && !accountAlreadyExists && !otherError && !enteredGameID) - { - bodyStyle.padding = new RectOffset(10, 10, 0, 5); - EditorGUILayout.BeginVertical(bodyStyle); - - GUILayout.Label(bodyText); - GUILayout.Label("\nEmail or Game ID"); - emailOrGameID = EditorGUILayout.TextField(emailOrGameID); - - EditorGUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - if (!clickedActivate && GUILayout.Button("Activate")) - { - createAccountRequest = ActivateAccount(); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - } - // Account creation success. - if (accountActivated) - { - bodyStyle.padding = new RectOffset(15, 10, 15, 5); - EditorGUILayout.BeginVertical(bodyStyle); - GUILayout.Label(signUpSuccessText); - EditorGUILayout.EndVertical(); - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - secondScreenStyle.padding = new RectOffset(15, Screen.width, 10, 5); - if (GUILayout.Button("Sign Up for Pro")) - { - Application.OpenURL("http://noblewhale.com"); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - if (GUILayout.Button("Close Window")) - { - this.Close(); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - } - // Found account with this email already. - else if (accountAlreadyExists) - { - bodyStyle.padding = new RectOffset(15, 10, 15, 5); - //GUI.contentColor = Color.red; - //bodyStyle.normal.textColor = Color.red; - EditorGUILayout.BeginVertical(bodyStyle); - GUILayout.Label(accountAlreadyExistsText);// secondScreenStyle); - EditorGUILayout.EndVertical(); - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - secondScreenStyle.padding = new RectOffset(15, Screen.width, 10, 5); - if (GUILayout.Button("Go to noblewhale.com")) - { - Application.OpenURL("http://noblewhale.com"); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - if (GUILayout.Button("Close Window")) - { - this.Close(); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - } - else if (otherError) - { - bodyStyle.padding = new RectOffset(15, 10, 15, 5); - //bodyStyle.normal.textColor = new Color(204,0,0); - EditorGUILayout.BeginVertical(); - GUILayout.Label(otherErrorText, bodyStyle); - EditorGUILayout.EndVertical(); - //bodyStyle.normal.textColor = Color.black; - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - secondScreenStyle.padding = new RectOffset(15, Screen.width, 10, 5); - if (GUILayout.Button("Go to noblewhale.com")) - { - Application.OpenURL("http://noblewhale.com"); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - if (GUILayout.Button("Close Window")) - { - this.Close(); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - } - else if (enteredGameID) - { - bodyStyle.padding = new RectOffset(15, 10, 15, 5); - //bodyStyle.normal.textColor = new Color(204,0,0); - EditorGUILayout.BeginVertical(); - GUILayout.Label(enteredGameIDText, bodyStyle); - EditorGUILayout.EndVertical(); - //bodyStyle.normal.textColor = Color.black; - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - secondScreenStyle.padding = new RectOffset(15, Screen.width, 10, 5); - if (GUILayout.Button("Go to noblewhale.com")) - { - Application.OpenURL("http://noblewhale.com"); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - EditorGUILayout.BeginVertical(secondScreenStyle); - EditorGUILayout.BeginHorizontal(); - if (GUILayout.Button("Close Window")) - { - this.Close(); - } - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - } - } - - IEnumerator ActivateAccount() - { - clickedActivate = true; - string gameID = emailOrGameID; - if (emailOrGameID.Contains("@")) - { - gameID = null; - WWWForm form = new WWWForm(); - form.AddField("username", emailOrGameID); - form.AddField("email", emailOrGameID); - -#if UNITY_5 || UNITY_2017 - WWW w = new WWW("https://robot:z3hZAY*1ESiq7ecUR&OxFFNO@noblewhale.com/wp-json/wp/v2/users", form); - - while (!w.isDone) yield return 0; - - if (w.error != null && w.error != "") - { - if (w.text.Contains("existing_user_login")) - { - Debug.LogError("User already exists. Log in at noblewhale.com to get your game ID."); - // TODO: Display error notification window - accountAlreadyExists = true; - } - else - { - Debug.LogError(w.error + " " + w.text); - otherError = true; - } - } - else - { - // Get the newly created game id from the response text - // Manually parsing some json to avoid third party libraries and a bunch of needless overhead - string key = "\"game_id_0\""; - int keyIndex = w.text.IndexOf(key); - int valueStartIndex = w.text.IndexOf("\"", keyIndex + key.Length + 1) + 1; - int valueEndIndex = w.text.IndexOf("\"", valueStartIndex + 1); - string value = w.text.Substring(valueStartIndex, valueEndIndex - valueStartIndex); - gameID = value; - - accountActivated = true; - } - - w.Dispose(); -#else - using (var w = UnityEngine.Networking.UnityWebRequest.Post("https://robot:z3hZAY*1ESiq7ecUR&OxFFNO@noblewhale.com/wp-json/wp/v2/users", form)) - { - var amazonCertificateHandler = new CertificateDisregarder(); - w.certificateHandler = amazonCertificateHandler; - - yield return w.SendWebRequest(); - while (!w.isDone) yield return 0; - - var result = w.downloadHandler.text; -#if UNITY_2020_1_OR_NEWER - if (w.result == UnityEngine.Networking.UnityWebRequest.Result.ConnectionError || w.result == UnityEngine.Networking.UnityWebRequest.Result.ProtocolError) -#else - if (w.isNetworkError || w.isHttpError) -#endif - { - if (result.Contains("existing_user_login")) - { - Debug.LogError("User already exists. Log in at noblewhale.com to get your game ID."); - // TODO: Display error notification window - accountAlreadyExists = true; - } - else - { - Debug.LogError(w.error + " " + result); - otherError = true; - } - } - else - { - // Get the newly created game id from the response text - // Manually parsing some json to avoid third party libraries and a bunch of needless overhead - Debug.Log(result); - - StringBuilder sb = new StringBuilder(); - foreach (var dict in w.GetResponseHeaders()) - { - sb.Append(dict.Key).Append(": \t[").Append(dict.Value).Append("]\n"); - } - - // Print Headers - Debug.Log(sb.ToString()); - - string key = "\"game_id_0\""; - int keyIndex = result.IndexOf(key); - int valueStartIndex = result.IndexOf("\"", keyIndex + key.Length + 1) + 1; - int valueEndIndex = result.IndexOf("\"", valueStartIndex + 1); - string value = result.Substring(valueStartIndex, valueEndIndex - valueStartIndex); - gameID = value; - - accountActivated = true; - } - } -#endif - } - else - { - enteredGameID = true; - // TODO: Test gameID somehow - } - - if (gameID != null) - { - var settings = (NobleConnectSettings)Resources.Load("NobleConnectSettings", typeof(NobleConnectSettings)); - if (!settings) - { - settings = ScriptableObject.CreateInstance(); - if (!AssetDatabase.IsValidFolder("Assets/Noble Connect")) - { - AssetDatabase.CreateFolder("Assets", "Noble Connect"); - } - if (!AssetDatabase.IsValidFolder("Assets/Noble Connect/Resources")) - { - AssetDatabase.CreateFolder("Assets/Noble Connect", "Resources"); - } - AssetDatabase.CreateAsset(settings, "Assets/Noble Connect/Resources/NobleConnectSettings.asset"); - } - settings.gameID = gameID; - EditorUtility.SetDirty(settings); - AssetDatabase.SaveAssets(); - AssetDatabase.Refresh(); - } - } - - void DrawHeader() - { - headerStyle.normal.background = bg; - headerStyle.fixedHeight = 68; - EditorGUILayout.BeginHorizontal(headerStyle); - - titleStyle.fontSize = 22; - titleStyle.fontStyle = FontStyle.Bold; - titleStyle.padding = new RectOffset(10, 10, 20, 10); - GUILayout.Label(titleText, titleStyle); - - GUILayout.FlexibleSpace(); - - logoStyle.fixedWidth = 50; - logoStyle.margin = new RectOffset(0, 11, 7, 7); - GUILayout.Label(logo, logoStyle); - - EditorGUILayout.EndHorizontal(); - } - - [MenuItem("Window/Noble Connect/Setup", false, 0)] - protected static void MenuItemOpenWizard() - { - GetWindow(typeof(SetupWizard), false, windowTitle, true); - } - - [InitializeOnLoad] - public class ShowSetupWizard : EditorWindow - { - static bool hasChecked = false; - static ShowSetupWizard() - { - EditorApplication.update += Update; - } - static void Update() - { - if (EditorApplication.timeSinceStartup > 3.0f && !hasChecked) - { - hasChecked = true; - var settings = (NobleConnectSettings)Resources.Load("NobleConnectSettings", typeof(NobleConnectSettings)); - if (!settings || (settings.gameID == "")) - { - SetupWizard window = (SetupWizard)GetWindow(typeof(SetupWizard)); - window.Show(); - } - } - } - } - - public class CertificateDisregarder : CertificateHandler - { - protected override bool ValidateCertificate(byte[] certificateData) - { - return true; - } - } -} \ No newline at end of file diff --git a/Assets/Noble Connect/Editor/SetupWizard.cs.meta b/Assets/Noble Connect/Editor/SetupWizard.cs.meta deleted file mode 100644 index 2feade4..0000000 --- a/Assets/Noble Connect/Editor/SetupWizard.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: 6ed5d5a6469ade6438c50b3489f723a8 -timeCreated: 1551019118 -licenseType: Store -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: 35ce04e51d0abb847890436754a88096, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Editor/whale_256.png b/Assets/Noble Connect/Editor/whale_256.png deleted file mode 100644 index dc252adee2040d8bd4928f15a432115d1b794860..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26198 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

L;KuoC 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 bP6)hsemw{6Y=Q6Be}0jdRhB81HV*thTCB?Q diff --git a/Assets/Noble Connect/Editor/whale_256.png.meta b/Assets/Noble Connect/Editor/whale_256.png.meta deleted file mode 100644 index ca4429f..0000000 --- a/Assets/Noble Connect/Editor/whale_256.png.meta +++ /dev/null @@ -1,117 +0,0 @@ -fileFormatVersion: 2 -guid: 35ce04e51d0abb847890436754a88096 -timeCreated: 1551018934 -licenseType: Store -TextureImporter: - fileIDToRecycleName: {} - externalObjects: {} - serializedVersion: 4 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - 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: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapU: 1 - wrapV: 1 - wrapW: 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: 1 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - platformSettings: - - buildTarget: DefaultTexturePlatform - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - buildTarget: Standalone - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - buildTarget: iPhone - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - buildTarget: Android - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - - buildTarget: Windows Store Apps - maxTextureSize: 256 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - spritePackingTag: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Mirror.meta b/Assets/Noble Connect/Mirror.meta deleted file mode 100644 index b687291..0000000 --- a/Assets/Noble Connect/Mirror.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d1429e7cc1a99a1479ef93aac006070c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Mirror/INSTALL.md b/Assets/Noble Connect/Mirror/INSTALL.md deleted file mode 100644 index b0ef41a..0000000 --- a/Assets/Noble Connect/Mirror/INSTALL.md +++ /dev/null @@ -1,3 +0,0 @@ -Step 1: Download and import Mirror: https://assetstore.unity.com/packages/tools/network/mirror-129321 -Step 2: Import the package "Assets/Noble Connect/Mirror/Mirror Noble Connect.unitypackage" to add Mirror support to Noble Connect. -Step 3: Check out the example scenes in "Assets/Noble Connect/Mirror/Examples" to get started. \ No newline at end of file diff --git a/Assets/Noble Connect/Mirror/INSTALL.md.meta b/Assets/Noble Connect/Mirror/INSTALL.md.meta deleted file mode 100644 index 82db2e5..0000000 --- a/Assets/Noble Connect/Mirror/INSTALL.md.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 8efcd80227d51204789cd37b3318fb67 -timeCreated: 1552034575 -licenseType: Store -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Mirror/Mirror Noble Connect.unitypackage.meta b/Assets/Noble Connect/Mirror/Mirror Noble Connect.unitypackage.meta deleted file mode 100644 index 550ac36..0000000 --- a/Assets/Noble Connect/Mirror/Mirror Noble Connect.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 4677f09a6725cea43abfebd58f5f6ba7 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects.meta b/Assets/Noble Connect/NetCode for GameObjects.meta deleted file mode 100644 index 244e8c0..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e51f6bc6724c0df41b0ef45a5cd354f8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples.meta deleted file mode 100644 index f5ad184..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2bda7b958fad5863396916316ca9c9d9 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic.meta deleted file mode 100755 index 1c2a875..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0ff014219851d6143bb979c87f09c424 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity b/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity deleted file mode 100755 index 444cbd4..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity +++ /dev/null @@ -1,4708 +0,0 @@ -%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: 9 - 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: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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.37311953, g: 0.38074014, b: 0.3587274, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !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 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &2361110 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2361113} - - component: {fileID: 2361112} - - component: {fileID: 2361111} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2361111 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2361110} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: "\u200B" - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 32 - m_fontSizeBase: 32 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &2361112 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2361110} - m_CullTransparentMesh: 1 ---- !u!224 &2361113 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2361110} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1862019069} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &99035608 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 99035609} - - component: {fileID: 99035612} - - component: {fileID: 99035611} - - component: {fileID: 99035610} - m_Layer: 5 - m_Name: Client Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &99035609 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 99035608} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1135436653} - m_Father: {fileID: 527756435} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 37, y: -104} - m_SizeDelta: {x: 160, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &99035610 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 99035608} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 99035611} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 274042907} - m_TargetAssemblyTypeName: NobleConnect.Examples.NetCodeForGameObjects.ExampleNetCodeNetworkHUD, - Assembly-CSharp - m_MethodName: ShowClientPanel - 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 ---- !u!114 &99035611 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 99035608} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &99035612 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 99035608} - m_CullTransparentMesh: 1 ---- !u!1 &199717955 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 199717956} - - component: {fileID: 199717958} - - component: {fileID: 199717957} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &199717956 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 199717955} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 954142103} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &199717957 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 199717955} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Disconnect - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &199717958 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 199717955} - m_CullTransparentMesh: 1 ---- !u!1 &206929422 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 206929423} - - component: {fileID: 206929426} - - component: {fileID: 206929425} - - component: {fileID: 206929424} - m_Layer: 5 - m_Name: Connect Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &206929423 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206929422} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1899971716} - m_Father: {fileID: 1068850386} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 37, y: -171} - m_SizeDelta: {x: 160, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &206929424 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206929422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 206929425} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 274042907} - m_TargetAssemblyTypeName: NobleConnect.Examples.NetCodeForGameObjects.ExampleNetCodeNetworkHUD, - Assembly-CSharp - m_MethodName: StartClient - 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 ---- !u!114 &206929425 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206929422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &206929426 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 206929422} - m_CullTransparentMesh: 1 ---- !u!1 &274042902 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 274042906} - - component: {fileID: 274042905} - - component: {fileID: 274042904} - - component: {fileID: 274042903} - - component: {fileID: 274042907} - m_Layer: 5 - m_Name: HUD - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &274042903 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274042902} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &274042904 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274042902} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - 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 - m_PresetInfoIsWorld: 0 ---- !u!223 &274042905 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274042902} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &274042906 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274042902} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 527756435} - - {fileID: 1068850386} - - {fileID: 710210894} - - {fileID: 772365835} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!114 &274042907 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274042902} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ba5623206fa16f649bf1c1fe1f121507, type: 3} - m_Name: - m_EditorClassIdentifier: - hostAddressField: {fileID: 1970235077} - hostPortField: {fileID: 1321243011} - hostAddressText: {fileID: 1792565321} - hostPortText: {fileID: 549122573} - connectionStatusText: {fileID: 1316767516} - startPanel: {fileID: 527756434} - clientPanel: {fileID: 1068850385} - clientConnectedPanel: {fileID: 772365834} - hostPanel: {fileID: 710210893} ---- !u!1 &418251956 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 418251959} - - component: {fileID: 418251958} - - component: {fileID: 418251957} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &418251957 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 418251956} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &418251958 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 418251956} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &418251959 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 418251956} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &435225297 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 435225298} - - component: {fileID: 435225300} - - component: {fileID: 435225299} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &435225298 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 435225297} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1770474749} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &435225299 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 435225297} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Stop Host - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &435225300 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 435225297} - m_CullTransparentMesh: 1 ---- !u!1 &465056855 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 465056856} - - component: {fileID: 465056859} - - component: {fileID: 465056858} - - component: {fileID: 465056857} - m_Layer: 5 - m_Name: Placeholder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &465056856 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 465056855} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1213756627} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &465056857 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 465056855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &465056858 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 465056855} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Host Address - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 2150773298 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 32 - m_fontSizeBase: 32 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 2 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &465056859 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 465056855} - m_CullTransparentMesh: 1 ---- !u!1 &497751353 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 497751354} - - component: {fileID: 497751356} - - component: {fileID: 497751357} - m_Layer: 0 - m_Name: NetworkManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &497751354 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 497751353} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &497751356 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 497751353} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3} - m_Name: - m_EditorClassIdentifier: - RunInBackground: 1 - LogLevel: 1 - NetworkConfig: - ProtocolVersion: 0 - NetworkTransport: {fileID: 497751357} - PlayerPrefab: {fileID: 1536319450925060, guid: bad715cc405134b43aa5e949bf067444, - type: 3} - NetworkPrefabs: [] - TickRate: 30 - ClientConnectionBufferTimeout: 10 - ConnectionApproval: 0 - ConnectionData: - EnableTimeResync: 0 - TimeResyncInterval: 30 - EnsureNetworkVariableLengthSafety: 0 - EnableSceneManagement: 1 - ForceSamePrefabs: 1 - RecycleNetworkIds: 1 - NetworkIdRecycleDelay: 120 - RpcHashSize: 0 - LoadSceneTimeOut: 120 - SpawnTimeout: 1 - EnableNetworkLogs: 1 ---- !u!114 &497751357 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 497751353} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6845a83acce19754b928d0bee185ea3d, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ProtocolType: 0 - m_MaxPacketQueueSize: 128 - m_MaxPayloadSize: 6144 - m_MaxSendQueueSize: 98304 - m_HeartbeatTimeoutMS: 500 - m_ConnectTimeoutMS: 1000 - m_MaxConnectAttempts: 60 - m_DisconnectTimeoutMS: 30000 - ConnectionData: - Address: 127.0.0.1 - Port: 7777 - ServerListenAddress: - DebugSimulator: - PacketDelayMS: 0 - PacketJitterMS: 0 - PacketDropRate: 0 - Config: - Region: 0 - ForceRelayOnly: 0 - EnableIPv6: 0 - RequestTimeout: 0.2 - RelayRequestTimeout: 0.1 - RelayRefreshMaxAttempts: 8 - RelayLifetime: 60 - RelayRefreshTime: 30 ---- !u!1 &519346358 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 519346359} - - component: {fileID: 519346361} - - component: {fileID: 519346360} - m_Layer: 5 - m_Name: Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &519346359 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519346358} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 921863361} - m_Father: {fileID: 527756435} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 5.001526, y: -76.07901} - m_SizeDelta: {x: -63.997, y: -197.24} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &519346360 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519346358} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &519346361 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519346358} - m_CullTransparentMesh: 1 ---- !u!1 &527756434 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 527756435} - - component: {fileID: 527756437} - - component: {fileID: 527756436} - m_Layer: 5 - m_Name: Start Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &527756435 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 527756434} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1342437693} - - {fileID: 99035609} - - {fileID: 519346359} - m_Father: {fileID: 274042906} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &527756436 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 527756434} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &527756437 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 527756434} - m_CullTransparentMesh: 1 ---- !u!1 &549122571 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 549122572} - - component: {fileID: 549122575} - - component: {fileID: 549122574} - - component: {fileID: 549122573} - m_Layer: 5 - m_Name: Port Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &549122572 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 549122571} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1774466771} - m_Father: {fileID: 710210894} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 132.02, y: -104.38} - m_SizeDelta: {x: -235, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &549122573 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 549122571} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 549122574} - m_TextViewport: {fileID: 1774466771} - m_TextComponent: {fileID: 978959422} - m_Placeholder: {fileID: 0} - m_VerticalScrollbar: {fileID: 0} - m_VerticalScrollbarEventHandler: {fileID: 0} - m_LayoutGroup: {fileID: 0} - m_ScrollSensitivity: 1 - m_ContentType: 0 - m_InputType: 0 - m_AsteriskChar: 42 - m_KeyboardType: 0 - m_LineType: 0 - m_HideMobileInput: 0 - m_HideSoftKeyboard: 0 - m_CharacterValidation: 0 - m_RegexValue: - m_GlobalPointSize: 32 - m_CharacterLimit: 0 - m_OnEndEdit: - m_PersistentCalls: - m_Calls: [] - m_OnSubmit: - m_PersistentCalls: - m_Calls: [] - m_OnSelect: - m_PersistentCalls: - m_Calls: [] - m_OnDeselect: - m_PersistentCalls: - m_Calls: [] - m_OnTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnEndTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_OnTouchScreenKeyboardStatusChanged: - m_PersistentCalls: - m_Calls: [] - m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_CustomCaretColor: 0 - m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: Initializing... - m_CaretBlinkRate: 0.85 - m_CaretWidth: 1 - m_ReadOnly: 0 - m_RichText: 1 - m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_OnFocusSelectAll: 1 - m_ResetOnDeActivation: 1 - m_RestoreOriginalTextOnEscape: 1 - m_isRichTextEditingAllowed: 0 - m_LineLimit: 0 - m_InputValidator: {fileID: 0} ---- !u!114 &549122574 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 549122571} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &549122575 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 549122571} - m_CullTransparentMesh: 1 ---- !u!1 &576893055 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 576893056} - - component: {fileID: 576893057} - m_Layer: 5 - m_Name: Text Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &576893056 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 576893055} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1437425323} - m_Father: {fileID: 1792565320} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &576893057 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 576893055} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: {x: -8, y: -5, z: -8, w: -5} - m_Softness: {x: 0, y: 0} ---- !u!1 &710210893 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 710210894} - - component: {fileID: 710210896} - - component: {fileID: 710210895} - m_Layer: 5 - m_Name: Host Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &710210894 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 710210893} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1109890396} - - {fileID: 1792565320} - - {fileID: 1152914347} - - {fileID: 549122572} - - {fileID: 1770474749} - m_Father: {fileID: 274042906} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &710210895 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 710210893} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &710210896 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 710210893} - m_CullTransparentMesh: 1 ---- !u!1 &772365834 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 772365835} - - component: {fileID: 772365837} - - component: {fileID: 772365836} - m_Layer: 5 - m_Name: Client Connected Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &772365835 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772365834} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 954142103} - - {fileID: 1446932782} - - {fileID: 1316767515} - m_Father: {fileID: 274042906} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &772365836 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772365834} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &772365837 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 772365834} - m_CullTransparentMesh: 1 ---- !u!1 &921863360 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 921863361} - - component: {fileID: 921863363} - - component: {fileID: 921863362} - - component: {fileID: 921863364} - m_Layer: 5 - m_Name: Instructions - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &921863361 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 921863360} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 519346359} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 12.101685, y: -13.615295} - m_SizeDelta: {x: -25.7162, y: -19.6678} - m_Pivot: {x: 0, y: 1} ---- !u!114 &921863362 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 921863360} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &921863363 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 921863360} - m_CullTransparentMesh: 1 ---- !u!114 &921863364 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 921863360} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5de42016644089e4abe784ea3895c274, type: 3} - m_Name: - m_EditorClassIdentifier: - textFile: {fileID: 4900000, guid: a25369528e091a448ac1885300f43ed1, type: 3} ---- !u!1 &954142102 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 954142103} - - component: {fileID: 954142106} - - component: {fileID: 954142105} - - component: {fileID: 954142104} - m_Layer: 5 - m_Name: Disconnect Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &954142103 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 954142102} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 199717956} - m_Father: {fileID: 772365835} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 37, y: -171} - m_SizeDelta: {x: 160, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &954142104 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 954142102} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 954142105} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 274042907} - m_TargetAssemblyTypeName: NobleConnect.Examples.NetCodeForGameObjects.ExampleNetCodeNetworkHUD, - Assembly-CSharp - m_MethodName: Disconnect - 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 ---- !u!114 &954142105 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 954142102} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &954142106 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 954142102} - m_CullTransparentMesh: 1 ---- !u!1 &978959420 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 978959421} - - component: {fileID: 978959423} - - component: {fileID: 978959422} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &978959421 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 978959420} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1774466771} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &978959422 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 978959420} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: "Initializing...\u200B" - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 32 - m_fontSizeBase: 32 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 3.75, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &978959423 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 978959420} - m_CullTransparentMesh: 1 ---- !u!1 &1068850385 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1068850386} - - component: {fileID: 1068850388} - - component: {fileID: 1068850387} - m_Layer: 5 - m_Name: Client Panel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &1068850386 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1068850385} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1970235076} - - {fileID: 1321243012} - - {fileID: 206929423} - m_Father: {fileID: 274042906} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1068850387 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1068850385} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1068850388 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1068850385} - m_CullTransparentMesh: 1 ---- !u!1 &1109890395 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1109890396} - - component: {fileID: 1109890398} - - component: {fileID: 1109890397} - m_Layer: 5 - m_Name: Address Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1109890396 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1109890395} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 710210894} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 44, y: -35.375} - m_SizeDelta: {x: 154, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1109890397 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1109890395} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 'Address:' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1109890398 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1109890395} - m_CullTransparentMesh: 1 ---- !u!1 &1135436652 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1135436653} - - component: {fileID: 1135436655} - - component: {fileID: 1135436654} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1135436653 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135436652} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 99035609} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1135436654 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135436652} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Client - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1135436655 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1135436652} - m_CullTransparentMesh: 1 ---- !u!1 &1152914346 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1152914347} - - component: {fileID: 1152914349} - - component: {fileID: 1152914348} - m_Layer: 5 - m_Name: Port Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1152914347 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1152914346} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 710210894} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 44, y: -103} - m_SizeDelta: {x: 88.0179, y: 51.375} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1152914348 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1152914346} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 'Port:' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1152914349 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1152914346} - m_CullTransparentMesh: 1 ---- !u!1 &1213756626 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1213756627} - - component: {fileID: 1213756628} - m_Layer: 5 - m_Name: Text Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1213756627 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1213756626} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 465056856} - - {fileID: 1307634700} - m_Father: {fileID: 1970235076} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.5} - m_SizeDelta: {x: -20, y: -13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1213756628 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1213756626} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: {x: -8, y: -5, z: -8, w: -5} - m_Softness: {x: 0, y: 0} ---- !u!1 &1307634699 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1307634700} - - component: {fileID: 1307634702} - - component: {fileID: 1307634701} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1307634700 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1307634699} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1213756627} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1307634701 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1307634699} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: "\u200B" - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 32 - m_fontSizeBase: 32 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1307634702 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1307634699} - m_CullTransparentMesh: 1 ---- !u!1 &1316767514 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1316767515} - - component: {fileID: 1316767517} - - component: {fileID: 1316767516} - m_Layer: 5 - m_Name: Status Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1316767515 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1316767514} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 772365835} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 156.48, y: -36.4} - m_SizeDelta: {x: -204.48, y: 48.1085} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1316767516 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1316767514} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Connecting... - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1316767517 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1316767514} - m_CullTransparentMesh: 1 ---- !u!1 &1321243010 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1321243012} - - component: {fileID: 1321243014} - - component: {fileID: 1321243013} - - component: {fileID: 1321243011} - m_Layer: 5 - m_Name: Port Field - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1321243011 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1321243010} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1321243013} - m_TextViewport: {fileID: 1862019069} - m_TextComponent: {fileID: 2361111} - m_Placeholder: {fileID: 1611680620} - m_VerticalScrollbar: {fileID: 0} - m_VerticalScrollbarEventHandler: {fileID: 0} - m_LayoutGroup: {fileID: 0} - m_ScrollSensitivity: 1 - m_ContentType: 2 - m_InputType: 0 - m_AsteriskChar: 42 - m_KeyboardType: 4 - m_LineType: 0 - m_HideMobileInput: 0 - m_HideSoftKeyboard: 0 - m_CharacterValidation: 2 - m_RegexValue: - m_GlobalPointSize: 32 - m_CharacterLimit: 0 - m_OnEndEdit: - m_PersistentCalls: - m_Calls: [] - m_OnSubmit: - m_PersistentCalls: - m_Calls: [] - m_OnSelect: - m_PersistentCalls: - m_Calls: [] - m_OnDeselect: - m_PersistentCalls: - m_Calls: [] - m_OnTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnEndTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_OnTouchScreenKeyboardStatusChanged: - m_PersistentCalls: - m_Calls: [] - m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_CustomCaretColor: 0 - m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: - m_CaretBlinkRate: 0.85 - m_CaretWidth: 1 - m_ReadOnly: 0 - m_RichText: 1 - m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_OnFocusSelectAll: 1 - m_ResetOnDeActivation: 1 - m_RestoreOriginalTextOnEscape: 1 - m_isRichTextEditingAllowed: 0 - m_LineLimit: 0 - m_InputValidator: {fileID: 0} ---- !u!224 &1321243012 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1321243010} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1862019069} - m_Father: {fileID: 1068850386} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 37, y: -100} - m_SizeDelta: {x: -74, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1321243013 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1321243010} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1321243014 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1321243010} - m_CullTransparentMesh: 1 ---- !u!1 &1342437692 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1342437693} - - component: {fileID: 1342437696} - - component: {fileID: 1342437695} - - component: {fileID: 1342437694} - m_Layer: 5 - m_Name: Host Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1342437693 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342437692} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2098851976} - m_Father: {fileID: 527756435} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 37, y: -36} - m_SizeDelta: {x: 160, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1342437694 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342437692} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1342437695} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 274042907} - m_TargetAssemblyTypeName: NobleConnect.Examples.NetCodeForGameObjects.ExampleNetCodeNetworkHUD, - Assembly-CSharp - m_MethodName: StartHost - 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 ---- !u!114 &1342437695 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342437692} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1342437696 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342437692} - m_CullTransparentMesh: 1 ---- !u!1 &1437425322 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1437425323} - - component: {fileID: 1437425325} - - component: {fileID: 1437425324} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1437425323 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1437425322} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 576893056} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1437425324 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1437425322} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: "Initializing...\u200B" - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 32 - m_fontSizeBase: 32 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 3.75, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1437425325 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1437425322} - m_CullTransparentMesh: 1 ---- !u!1 &1446932781 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1446932782} - - component: {fileID: 1446932784} - - component: {fileID: 1446932783} - m_Layer: 5 - m_Name: Status Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1446932782 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1446932781} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 772365835} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 39.7, y: -36.4} - m_SizeDelta: {x: 116.775, y: 48.1085} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1446932783 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1446932781} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 'Status:' - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1446932784 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1446932781} - m_CullTransparentMesh: 1 ---- !u!1 &1578070486 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1578070489} - - component: {fileID: 1578070488} - - component: {fileID: 1578070487} - m_Layer: 0 - m_Name: Camera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &1578070487 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1578070486} - m_Enabled: 1 ---- !u!20 &1578070488 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1578070486} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - 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: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &1578070489 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1578070486} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1611680619 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1611680623} - - component: {fileID: 1611680622} - - component: {fileID: 1611680620} - - component: {fileID: 1611680621} - m_Layer: 5 - m_Name: Placeholder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1611680620 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1611680619} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Host Port - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 2150773298 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 32 - m_fontSizeBase: 32 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 2 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 1 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &1611680621 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1611680619} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!222 &1611680622 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1611680619} - m_CullTransparentMesh: 1 ---- !u!224 &1611680623 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1611680619} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1862019069} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &1770474748 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1770474749} - - component: {fileID: 1770474752} - - component: {fileID: 1770474751} - - component: {fileID: 1770474750} - m_Layer: 5 - m_Name: Stop Host Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1770474749 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770474748} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 435225298} - m_Father: {fileID: 710210894} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 38, y: -174} - m_SizeDelta: {x: 160, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1770474750 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770474748} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1770474751} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 274042907} - m_TargetAssemblyTypeName: NobleConnect.Examples.NetCodeForGameObjects.ExampleNetCodeNetworkHUD, - Assembly-CSharp - m_MethodName: StopHost - 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 ---- !u!114 &1770474751 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770474748} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1770474752 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770474748} - m_CullTransparentMesh: 1 ---- !u!1 &1774466770 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1774466771} - - component: {fileID: 1774466772} - m_Layer: 5 - m_Name: Text Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1774466771 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1774466770} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 978959421} - m_Father: {fileID: 549122572} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1774466772 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1774466770} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: {x: -8, y: -5, z: -8, w: -5} - m_Softness: {x: 0, y: 0} ---- !u!1 &1792565319 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1792565320} - - component: {fileID: 1792565323} - - component: {fileID: 1792565322} - - component: {fileID: 1792565321} - m_Layer: 5 - m_Name: Address Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1792565320 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1792565319} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 576893056} - m_Father: {fileID: 710210894} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 198, y: -35.375} - m_SizeDelta: {x: -235, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1792565321 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1792565319} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1792565322} - m_TextViewport: {fileID: 576893056} - m_TextComponent: {fileID: 1437425324} - m_Placeholder: {fileID: 0} - m_VerticalScrollbar: {fileID: 0} - m_VerticalScrollbarEventHandler: {fileID: 0} - m_LayoutGroup: {fileID: 0} - m_ScrollSensitivity: 1 - m_ContentType: 0 - m_InputType: 0 - m_AsteriskChar: 42 - m_KeyboardType: 0 - m_LineType: 0 - m_HideMobileInput: 0 - m_HideSoftKeyboard: 0 - m_CharacterValidation: 0 - m_RegexValue: - m_GlobalPointSize: 32 - m_CharacterLimit: 0 - m_OnEndEdit: - m_PersistentCalls: - m_Calls: [] - m_OnSubmit: - m_PersistentCalls: - m_Calls: [] - m_OnSelect: - m_PersistentCalls: - m_Calls: [] - m_OnDeselect: - m_PersistentCalls: - m_Calls: [] - m_OnTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnEndTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_OnTouchScreenKeyboardStatusChanged: - m_PersistentCalls: - m_Calls: [] - m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_CustomCaretColor: 0 - m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: Initializing... - m_CaretBlinkRate: 0.85 - m_CaretWidth: 1 - m_ReadOnly: 0 - m_RichText: 1 - m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_OnFocusSelectAll: 1 - m_ResetOnDeActivation: 1 - m_RestoreOriginalTextOnEscape: 1 - m_isRichTextEditingAllowed: 0 - m_LineLimit: 0 - m_InputValidator: {fileID: 0} ---- !u!114 &1792565322 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1792565319} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1792565323 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1792565319} - m_CullTransparentMesh: 1 ---- !u!1 &1862019068 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1862019069} - - component: {fileID: 1862019070} - m_Layer: 5 - m_Name: Text Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1862019069 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1862019068} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1611680623} - - {fileID: 2361113} - m_Father: {fileID: 1321243012} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.5} - m_SizeDelta: {x: -20, y: -13} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1862019070 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1862019068} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: {x: -8, y: -5, z: -8, w: -5} - m_Softness: {x: 0, y: 0} ---- !u!1 &1899971715 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1899971716} - - component: {fileID: 1899971718} - - component: {fileID: 1899971717} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1899971716 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1899971715} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 206929423} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1899971717 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1899971715} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Connect - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &1899971718 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1899971715} - m_CullTransparentMesh: 1 ---- !u!1 &1970235075 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1970235076} - - component: {fileID: 1970235079} - - component: {fileID: 1970235078} - - component: {fileID: 1970235077} - m_Layer: 5 - m_Name: Address Field - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1970235076 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1970235075} - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1213756627} - m_Father: {fileID: 1068850386} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 37, y: -34} - m_SizeDelta: {x: -74, y: 50} - m_Pivot: {x: 0, y: 1} ---- !u!114 &1970235077 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1970235075} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1970235078} - m_TextViewport: {fileID: 1213756627} - m_TextComponent: {fileID: 1307634701} - m_Placeholder: {fileID: 465056858} - m_VerticalScrollbar: {fileID: 0} - m_VerticalScrollbarEventHandler: {fileID: 0} - m_LayoutGroup: {fileID: 0} - m_ScrollSensitivity: 1 - m_ContentType: 0 - m_InputType: 0 - m_AsteriskChar: 42 - m_KeyboardType: 0 - m_LineType: 0 - m_HideMobileInput: 0 - m_HideSoftKeyboard: 0 - m_CharacterValidation: 0 - m_RegexValue: - m_GlobalPointSize: 32 - m_CharacterLimit: 0 - m_OnEndEdit: - m_PersistentCalls: - m_Calls: [] - m_OnSubmit: - m_PersistentCalls: - m_Calls: [] - m_OnSelect: - m_PersistentCalls: - m_Calls: [] - m_OnDeselect: - m_PersistentCalls: - m_Calls: [] - m_OnTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnEndTextSelection: - m_PersistentCalls: - m_Calls: [] - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] - m_OnTouchScreenKeyboardStatusChanged: - m_PersistentCalls: - m_Calls: [] - m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_CustomCaretColor: 0 - m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: - m_CaretBlinkRate: 0.85 - m_CaretWidth: 1 - m_ReadOnly: 0 - m_RichText: 1 - m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_OnFocusSelectAll: 1 - m_ResetOnDeActivation: 1 - m_RestoreOriginalTextOnEscape: 1 - m_isRichTextEditingAllowed: 0 - m_LineLimit: 0 - m_InputValidator: {fileID: 0} ---- !u!114 &1970235078 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1970235075} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1970235079 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1970235075} - m_CullTransparentMesh: 1 ---- !u!1 &2098851975 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2098851976} - - component: {fileID: 2098851978} - - component: {fileID: 2098851977} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2098851976 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098851975} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1342437693} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2098851977 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098851975} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Host - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 24 - m_fontSizeBase: 24 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 0 - m_fontSizeMax: 0 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 0 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!222 &2098851978 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2098851975} - m_CullTransparentMesh: 1 diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity.meta deleted file mode 100755 index f9b4b49..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/Example NetCode for GameObjects.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b8b4909b7b411cb468ee5071779c402d -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs b/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs deleted file mode 100755 index 8ffc1ae..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs +++ /dev/null @@ -1,118 +0,0 @@ -using NobleConnect.NetCodeForGameObjects; -using System; -using Unity.Netcode; -using Unity.Netcode.Transports.UTP; -using Unity.Networking.Transport; -using UnityEngine; - -namespace NobleConnect.Examples.NetCodeForGameObjects -{ - public class ExampleNetCodeNetworkHUD : MonoBehaviour - { - public TMPro.TMP_InputField hostAddressField; - public TMPro.TMP_InputField hostPortField; - public TMPro.TMP_InputField hostAddressText; - public TMPro.TMP_InputField hostPortText; - public TMPro.TMP_Text connectionStatusText; - - public GameObject startPanel; - public GameObject clientPanel; - public GameObject clientConnectedPanel; - public GameObject hostPanel; - - NobleUnityTransport transport; - - private void Start() - { - transport = (NobleUnityTransport)NetworkManager.Singleton.NetworkConfig.NetworkTransport; - - NetworkManager.Singleton.OnClientConnectedCallback += OnClientConnected; - NetworkManager.Singleton.OnClientDisconnectCallback += OnClientDisconnected; - transport.OnServerPreparedCallback += OnServerPrepared; - } - - private void OnDestroy() - { - if (NetworkManager.Singleton) - { - NetworkManager.Singleton.OnClientConnectedCallback -= OnClientConnected; - NetworkManager.Singleton.OnClientDisconnectCallback -= OnClientDisconnected; - } - if (transport) - { - transport.OnServerPreparedCallback -= OnServerPrepared; - } - } - - public void StartHost() - { - NetworkManager.Singleton.StartHost(); - - startPanel.SetActive(false); - hostPanel.SetActive(true); - - hostAddressText.text = "Initializing.."; - hostPortText.text = "Initializing.."; - } - - private void OnServerPrepared(string relayAddress, ushort relayPort) - { - hostAddressText.text = relayAddress; - hostPortText.text = relayPort.ToString(); - } - - public void ShowClientPanel() - { - startPanel.SetActive(false); - clientPanel.SetActive(true); - - - hostAddressField.text = ""; - hostPortField.text = ""; - connectionStatusText.text = ""; - } - - public void StartClient() - { - transport.ConnectionData.Address = hostAddressField.text; - transport.ConnectionData.Port = ushort.Parse(hostPortField.text); - - NetworkManager.Singleton.StartClient(); - - clientPanel.SetActive(false); - clientConnectedPanel.SetActive(true); - - connectionStatusText.text = "Connecting..."; - } - - private void OnClientConnected(ulong clientID) - { - connectionStatusText.text = "Connected via " + transport.ConnectionType.ToString(); - } - - private void OnClientDisconnected(ulong obj) - { - if (!NetworkManager.Singleton.IsServer) - { - clientConnectedPanel.SetActive(false); - startPanel.SetActive(true); - } - } - - public void StopHost() - { - NetworkManager.Singleton.Shutdown(); - - hostPanel.SetActive(false); - startPanel.SetActive(true); - } - - public void Disconnect() - { - NetworkManager.Singleton.Shutdown(); - - clientConnectedPanel.SetActive(false); - startPanel.SetActive(true); - } - } -} \ No newline at end of file diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs.meta deleted file mode 100755 index af8ef2a..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/ExampleNetCodeNetworkHUD.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ba5623206fa16f649bf1c1fe1f121507 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt b/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt deleted file mode 100755 index 154a7c2..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -Example scene that demonstrates how to utilize the Noble Connect relay and punchthrough services with Netcode for GameObjects - -The buttons and text boxes can be used to host a server or connect as a client. When running as a host, the -host IP and port are displayed. When running as a client, the host IP and port can be entered in the text boxes -to connect to the host. - -When a client connects, a player will be spawned that can be moved around with the arrow keys. - -The connection type will be displayed on the client: -DIRECT - The connection was made directly to the host's IP. -PUNCHTHROUGH - The connection was made to an address on the host's router discovered via punchthrough. -RELAY - The connection is using the Noble Connect relays. \ No newline at end of file diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt.meta deleted file mode 100755 index 82b9d16..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Basic/README.txt.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: a25369528e091a448ac1885300f43ed1 -timeCreated: 1539666870 -licenseType: Free -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs b/Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs deleted file mode 100755 index 4a3ce9e..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Unity.Netcode; -using UnityEngine; - -namespace NobleConnect.Examples.NetCodeForGameObjects -{ - public class GUILabelFromText : MonoBehaviour - { - public TextAsset textFile; - TMPro.TMP_Text textComponent; - string text; - - void Start() - { - text = textFile.text; - textComponent = GetComponent(); - textComponent.text = text; - } - - private void Update() - { - if (NetworkManager.Singleton && textComponent) - { - textComponent.enabled = !NetworkManager.Singleton.IsServer && !NetworkManager.Singleton.IsClient; - } - } - } -} \ No newline at end of file diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs.meta deleted file mode 100755 index 93320f0..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/GUILabelFromText.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: 5de42016644089e4abe784ea3895c274 -timeCreated: 1551004256 -licenseType: Free -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up.meta deleted file mode 100644 index ce17ac0..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: afe62a97c2928e16c8cf02e746313170 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/Example Match Up Package.unitypackage.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/Example Match Up Package.unitypackage.meta deleted file mode 100755 index 1d31160..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/Example Match Up Package.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 13f8d67022c71714d97870d1843d38d6 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt b/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt deleted file mode 100755 index 2b6d52f..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt +++ /dev/null @@ -1,3 +0,0 @@ -Step 1: Download and Import the Match Up plugin - * If you purchased the Starter Pack or a monthly plan you should already have Match Up -Step 2: Import Example Match Up Package.unitypackage \ No newline at end of file diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt.meta deleted file mode 100755 index b8b9a04..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/Match Up/INSTALL.txt.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e91a5b06f65d194428755e7556c1b294 -timeCreated: 1553109880 -licenseType: Free -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab b/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab deleted file mode 100755 index 5fb5e60..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab +++ /dev/null @@ -1,172 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1536319450925060 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4332269479232276} - - component: {fileID: 212516290045392758} - - component: {fileID: 6637994057718233789} - - component: {fileID: 4360000840590759850} - - component: {fileID: 4139990911018570439} - m_Layer: 0 - m_Name: NetCode for GameObjects Example Player - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4332269479232276 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536319450925060} - 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_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &212516290045392758 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536319450925060} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: 2c0f41f48ef7e7248a5db28d31441b2c, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 2.56, y: 2.56} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!114 &6637994057718233789 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536319450925060} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} - m_Name: - m_EditorClassIdentifier: - GlobalObjectIdHash: 951099334 - AlwaysReplicateAsRoot: 0 - DontDestroyWithOwner: 0 - AutoObjectParentSync: 1 ---- !u!114 &4360000840590759850 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536319450925060} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: daef147c05839a94b97d7962538ed2c8, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &4139990911018570439 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536319450925060} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: cca18b1aff5bb3e498b69d39cea4db5d, type: 3} - m_Name: - m_EditorClassIdentifier: - interpolationBackTime: 0.1 - extrapolationMode: 1 - useExtrapolationTimeLimit: 1 - extrapolationTimeLimit: 5 - useExtrapolationDistanceLimit: 0 - extrapolationDistanceLimit: 20 - sendPositionThreshold: 0 - sendRotationThreshold: 0 - sendScaleThreshold: 0 - sendVelocityThreshold: 0 - sendAngularVelocityThreshold: 0 - receivedPositionThreshold: 0 - receivedRotationThreshold: 0 - snapPositionThreshold: 0 - snapRotationThreshold: 0 - snapScaleThreshold: 0 - positionLerpSpeed: 0.85 - rotationLerpSpeed: 0.85 - scaleLerpSpeed: 0.85 - timeCorrectionSpeed: 0.1 - snapTimeThreshold: 3 - syncPosition: 0 - syncRotation: 0 - syncScale: 0 - syncVelocity: 0 - syncAngularVelocity: 0 - isPositionCompressed: 0 - isRotationCompressed: 0 - isScaleCompressed: 0 - isVelocityCompressed: 0 - isAngularVelocityCompressed: 0 - automaticallyResetTime: 1 - isSmoothingAuthorityChanges: 0 - transformSource: 1 - whenToUpdateTransform: 0 - sendRate: 30 - networkChannel: - childObjectToSync: {fileID: 0} - setVelocityInsteadOfPositionOnNonOwners: 0 - maxPositionDifferenceForVelocitySyncing: 10 - useLocalTransformOnly: 0 - ownerChangeIndicator: 1 - receivedStatesCounter: 0 diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab.meta deleted file mode 100755 index 8b74a68..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCode for GameObjects Example Player.prefab.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: bad715cc405134b43aa5e949bf067444 -timeCreated: 1552365448 -licenseType: Free -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs b/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs deleted file mode 100755 index 7b047d7..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Unity.Netcode; -using UnityEngine; - -namespace NobleConnect.Examples.NetCodeForGameObjects -{ - // A super simple example player. Use arrow keys to move - public class NetCodeForGameObjectsExamplePlayer : NetworkBehaviour - { - void Update() - { - if (!IsLocalPlayer) return; - - Vector3 dir = Vector3.zero; - - if (Input.GetKey(KeyCode.UpArrow)) dir = Vector3.up; - else if (Input.GetKey(KeyCode.DownArrow)) dir = Vector3.down; - else if (Input.GetKey(KeyCode.LeftArrow)) dir = Vector3.left; - else if (Input.GetKey(KeyCode.RightArrow)) dir = Vector3.right; - - MoveServerRpc(dir); - } - - [ServerRpc] - void MoveServerRpc(Vector3 dir) - { - transform.position += dir * Time.deltaTime * 5; - } - } -} \ No newline at end of file diff --git a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs.meta b/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs.meta deleted file mode 100755 index dffcdf4..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Examples/NetCodeForGameObjectsExamplePlayer.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: daef147c05839a94b97d7962538ed2c8 -timeCreated: 1550909788 -licenseType: Free -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {fileID: 2800000, guid: ffc16905f3ed6244d8bd4624bf34cf82, type: 3} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/INSTALL.md b/Assets/Noble Connect/NetCode for GameObjects/INSTALL.md deleted file mode 100644 index e47e8cb..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/INSTALL.md +++ /dev/null @@ -1,3 +0,0 @@ -Step 1: Use the PackageManager to get NetCode for GameObjects -Step 2: Import the package "Assets/Noble Connect/NetCode for GameObjects/NetCode for GameObjects Noble Connect.unitypackage" to add NetCode for GameObjects support to Noble Connect. -Step 3: Check out the example scenes in "Assets/Noble Connect/NetCode for GameObjects/Examples" to get started. \ No newline at end of file diff --git a/Assets/Noble Connect/NetCode for GameObjects/INSTALL.md.meta b/Assets/Noble Connect/NetCode for GameObjects/INSTALL.md.meta deleted file mode 100644 index f70a718..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/INSTALL.md.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 06e66bd298fb6824b8c530a0da552ba3 -timeCreated: 1552034575 -licenseType: Store -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Internal.meta b/Assets/Noble Connect/NetCode for GameObjects/Internal.meta deleted file mode 100755 index 673a9cd..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Internal.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a008abdf62d15f24ea86f6a697caff98 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs b/Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs deleted file mode 100755 index 6143ad0..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs +++ /dev/null @@ -1,277 +0,0 @@ -using Unity.Netcode.Transports.UTP; -using Unity.Netcode; -using NobleConnect.Ice; -using System; -using System.Collections.Generic; -using System.Net; -using UnityEngine; -using System.Reflection; -using Unity.Networking.Transport; -using NetworkEvent = Unity.Netcode.NetworkEvent; -using System.Collections; - -namespace NobleConnect.NetCodeForGameObjects -{ - /// Extends UnityTransport to use Noble Connect for punchthrough and relays - public class NobleUnityTransport : UnityTransport - { - /// Some useful configuration settings like geographic region and timeouts. - [Header("Noble Connect Settings")] - public Config Config; - - /// You can enable this to force relay connections to be used for testing purposes. - /// - /// Disables punchthrough and direct connections. Forces connections to use the relays. - /// This is useful if you want to test your game with the unavoidable latency that is - /// introduced when the relay servers are used. - /// - public bool ForceRelayOnly { get => Config.ForceRelayOnly; set => Config.ForceRelayOnly = value; } - - /// This is the address that clients should connect to. It is assigned by the relay server. - /// - /// Note that this is not the host's actual IP address, but one assigned to the host by the relay server. - /// When clients connect to this address, Noble Connect will find the best possible connection and use it. - /// This means that the client may actually end up connecting to an address on the local network, or an address - /// on the router, or an address on the relay. But you don't need to worry about any of that, it is all - /// handled for you internally. - /// - public IPEndPoint HostRelayEndPoint; - - /// You can check this on the client after they connect, it will either be Direct, Punchthrough, or Relay. - public ConnectionType LatestConnectionType - { - get - { - if (Peer != null) return Peer.latestConnectionType; - else return ConnectionType.NONE; - } - } - - /// Use this callback to be informed when something goes horribly wrong. - /// - /// You should see an error in your console with more info any time this is called. Generally - /// it will either mean you've completely lost connection to the relay server or you - /// have exceeded your CCU or bandwidth limit. - /// - public event Action OnFatalErrorCallback; - - /// Use this callback to know when a Server has received their HostRelayEndPoint and is ready to receive incoming connections. - /// - /// If you are using some sort matchmaking this is a good time to create a match now that you have the HostRelayEndPoint that clients will need to connect to. - /// - /// The address of the HostRelayEndPoint the clients should use when connecting to the host. - /// The port of the HostRelayEndPoint that clients should use when connecting to the host - public event Action OnServerPreparedCallback; - - public ConnectionType ConnectionType => Peer.latestConnectionType; - - /// Keeps track of which end point each connection belongs to so that when they disconnect we can clean up. - Dictionary EndPointByConnection = new Dictionary(); - - /// Represents a peer (client or server) in Noble Connect. Handles creating and destroying connection routes. - /// - /// This is the interface to the relay and punchthrough services. - /// It is used to find the best route to connect and to clean up when a client disconnects. - /// - Peer Peer; - - /// This delegate allows us to call the private base.Update method - Action BaseUpdateDelegate; - - /// This delegate allows us to call the private ParseClientId method - Func ParseClientIdDelegate; - - /// Used to get the remote address of connecting clients - FieldInfo DriverField; - - private void Awake() - { - // Set up logging using the LogLevel from the NetworkManager - Logger.logger = Debug.Log; - Logger.warnLogger = Debug.LogWarning; - Logger.errorLogger = Debug.LogError; - switch (NetworkManager.Singleton.LogLevel) - { - case LogLevel.Developer: Logger.logLevel = Logger.Level.Developer; break; - case LogLevel.Error: Logger.logLevel = Logger.Level.Error; break; - case LogLevel.Normal: Logger.logLevel = Logger.Level.Info; break; - case LogLevel.Nothing: Logger.logLevel = Logger.Level.Fatal; break; - } - - // The base update method is inaccessible but we need it to be called, so use reflection - var baseUpdateMethod = typeof(UnityTransport).GetMethod("Update", BindingFlags.NonPublic | BindingFlags.Instance); - // Creating a delegate allows for faster method calls than Invoke, and we call Update a lot, so let's do that - BaseUpdateDelegate = (Action)Delegate.CreateDelegate(typeof(Action), this, baseUpdateMethod); - - // We need access to the private m_Driver field in order to get the remote address of clients - DriverField = typeof(UnityTransport).GetField("m_Driver", BindingFlags.NonPublic | BindingFlags.Instance); - - // We need this private method to convert the ulong network id into a NetworkConnection - MethodInfo ParseClientIdMethod = typeof(UnityTransport).GetMethod("ParseClientId", BindingFlags.NonPublic | BindingFlags.Static, null, new Type[] { typeof(ulong) }, null); - ParseClientIdDelegate = (Func)Delegate.CreateDelegate(typeof(Func), ParseClientIdMethod); - - // Set up the callbacks we need - OnFatalErrorCallback += OnFatalError; - OnServerPreparedCallback += OnServerPrepared; - Config.OnFatalError = OnFatalErrorCallback; - - // The Unity Transport apparently does not support ipv6, so disable it - Config.EnableIPv6 = false; - - // Hook in to the transport level events so we can know when a client connects / disconnects - OnTransportEvent += OnReceivedTransportEvent; - } - - public override void Initialize(NetworkManager netMan) - { - // Initialize the Peer - Peer = new Peer(Config.AsIceConfig()); - - base.Initialize(netMan); - } - - /// Start a server and allocate a relay. - /// - /// When the server has received a relay address the OnServerPreparedCallback will be triggered. - /// This callback is a good place to do things like create a match in your matchmaking system of choice, - /// or anything else that you want to do as soon as you have the host's address. - /// - public override bool StartServer() - { - bool success = base.StartServer(); - Peer.InitializeHosting(ConnectionData.Port, OnServerPreparedCallback); - return success; - } - - /// Start a client and connect to ConnectionData.Address at ConnectionData.Port - /// - /// ConnectionData.Address and ConnectionData.Port should be set to a host's HostRelayEndPoint before calling this method. - /// - public override bool StartClient() - { - Peer.InitializeClient(new IPEndPoint(IPAddress.Parse(ConnectionData.Address), ConnectionData.Port), OnClientPrepared); - return true; - } - - /// Shut down, disconnect, and clean up - public override void Shutdown() - { - base.Shutdown(); - if (Peer != null) - { - Peer.CleanUpEverything(); - Peer.Dispose(); - Peer = null; - } - } - - /// Calls the Peer's Update() method to process messages. Also calls the base Update method via reflection - void Update() - { - if (Peer != null) - { - Peer.Update(); - } - - // Equivalent to base.Update() - BaseUpdateDelegate(); - } - - /// Transport level events are received here. Used to handle client connect / disconnect - /// The type of NetworkEvent that occurred - /// The network id of the client that instigated the event - /// Any payload related to the event - /// The time that the event was triggered - private void OnReceivedTransportEvent(NetworkEvent eventType, ulong clientId, ArraySegment payload, float receiveTime) - { - if (NetworkManager.Singleton.IsServer) - { - if (eventType == NetworkEvent.Connect) - { - OnIncomingClientConnection(clientId); - } - else if (eventType == NetworkEvent.Disconnect) - { - OnServerLostClient(clientId); - } - } - } - - /// Keep track of the incoming client and their associated end point - /// - /// We need to know the disconnecting client's EndPoint in order to clean up properly when they disconnect. - /// Ideally we would just look this up via the transport when the disconnect happens, but by the time we get the event the transport has already - /// purged that info, so instead we store it ourselves on connect so we can look it up on disconnect. - /// - /// The network Id of the disconnecting client - void OnIncomingClientConnection(ulong clientId) - { - var clientEndPoint = GetClientEndPoint(clientId); - EndPointByConnection[clientId] = clientEndPoint; - } - - /// Clean up resources associated with the disconnecting client - /// - /// This uses the end point that was associated with the clientId in OnIncomingClientConnection - /// - /// The network Id of the disconnecting client - void OnServerLostClient(ulong clientId) - { - if (EndPointByConnection.ContainsKey(clientId)) - { - IPEndPoint endPoint = EndPointByConnection[clientId]; - Peer.EndSession(endPoint); - EndPointByConnection.Remove(clientId); - } - } - - /// Called when the client has been allocated a relay. This is where the Transport level connection starts. - /// The IPv4 EndPoint to connect to - /// The IPv6 EndPoint to connect to. Not used here. - void OnClientPrepared(IPEndPoint bridgeEndPoint, IPEndPoint bridgeEndPointIPv6) - { - ConnectionData.Address = bridgeEndPoint.Address.ToString(); - ConnectionData.Port = (ushort)bridgeEndPoint.Port; - - StartCoroutine(ConnectEventually()); - } - - IEnumerator ConnectEventually() - { - yield return new WaitForSeconds(1); - base.StartClient(); - } - - - /// Called when the server has been allocated a relay and is ready to receive incoming connections - /// The host relay address that clients should connect to - /// The host relay port that clients should connect to - void OnServerPrepared(string address, ushort port) - { - HostRelayEndPoint = new IPEndPoint(IPAddress.Parse(address), port); - } - - /// If anythin goes horribly wrong, stop hosting / disconnect. - /// The error message from Noble Connect - void OnFatalError(string errorMessage) - { - NetworkManager.Singleton.Shutdown(); - } - - /// Get a client's end point from their network id - /// The network id of the client - /// The IPEndPoint of the client - IPEndPoint GetClientEndPoint(ulong clientId) - { - var driver = (NetworkDriver)DriverField.GetValue(this); - - var clientNetworkConnection = ParseClientIdDelegate(clientId); - var remoteEndPoint = driver.RemoteEndPoint(clientNetworkConnection); - - var ip = new IPAddress(remoteEndPoint.GetRawAddressBytes().ToArray()); - var port = remoteEndPoint.Port; - - return new IPEndPoint(ip, port); - } - } -} \ No newline at end of file diff --git a/Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs.meta b/Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs.meta deleted file mode 100755 index 4cbb926..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/Internal/NobleUnityTransport.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6845a83acce19754b928d0bee185ea3d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NetCode for GameObjects/NetCode for GameObjects Noble Connect.unitypackage.meta b/Assets/Noble Connect/NetCode for GameObjects/NetCode for GameObjects Noble Connect.unitypackage.meta deleted file mode 100644 index 83fd168..0000000 --- a/Assets/Noble Connect/NetCode for GameObjects/NetCode for GameObjects Noble Connect.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 078540d8d7d4dd644a7466811097da56 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/NobleConnect.dll b/Assets/Noble Connect/NobleConnect.dll deleted file mode 100644 index 2bf44368051b23d60548797c4c35ee95f425855e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163840 zcmce<2b`owarfW*JTuRv-MyXLz1iJMyLZx^MmxKwES&^Gr-*b&Ac26r1Lc4uK#!Oa zNuyaGCYT@uBH3V(gt1LD`Naeyf&pV=B!R&M9XT3DzyzDq`~6k-GxO};oe2N1pSyYb z>8|dsuCA`GuCDIqyxlK$v2(7#|NHK9?)^OVx5Iw#|7Q=$qca~Eb?>QscGLTZ&i(AB z3$MAhGkZfjeO&vpC(d4R+4a|_H_l#u)olC8*Uw&i{p=YJd&KM$(<`sqHZoE@G!%XQ zna-U%6uYne`adtvYWs%UJX;$&(z&NZ&Xs-a+{+2i5`G;|=f*5dP6SDuZrUDpI;Wahbch0*YpcfMEJWia>E2)_tMC%&*FZY=WHK!gD&%ab}rwx z8?SoWjl3WEWRNAz+8XfAz=*zdTf5V~f(XM699_c8)0PA7aBj!8_Ek?v0TiwdoSi_H z_Jcc3$@#xw(Um{p7P+GP!I?wu{pSt2A&dRpe_j%G=A5hc$X|$>ErOKWoadP?D4yC1 z0JwEWM(zflz|{c&Dshc!)K$J(skzN(wAb_qUaD?yxzvOws_tv8W1I&ZsVoOPisWGc zD*>>a9<2A5R%r@FBVd{}rL176@+ck#r&p=vT8 zwGKNVVsQ#2m=7?Ub3^c2R$A0Ny!PZECqPL{nMfRoJxNIgWUhbv#eXIzgBuT|EY69Tv)p?izvO z&Fv&ME21=opU6w+Bz}D1D*IB(E~@MY5UsKw$dj^9=0Vwd49ebqu(G4OAi;{tpg^^A z3O`nv>Ut7&!OHc{4q{c;sXVC*231{p4C*@Px2`L?Yka@TPp7QT8TfpJ%E@xC&Um5cixBn$c zak>+DSfsf9m3qAkR*wSEaGBU=E{{zg0{BP;)_r1p*Ny?KMgWnE@m*6HTKk5^i}fOr zr^k0q=OUB3IDcC%(h40f)l0-T+Kkj2;`ChVX`aVV=b`-EG^f7Z0xqyw-3`Wl)Q#ZV zFq&%Z*O51509JV@0>Z2P47jrx-wYT=MNE^|gtrvluexZWrzGMS27;jZg3wzZLNCtE z&ADhYt%=d*eihAX8hGIq5Vvza1+DE+T+)N)g@Yu~giM6Zf#ZW3z&M^qrd?%nairqg zm@WdluOK#AcqzHZqSAP|3WR z(#xnQ8@e``%mniLA}zgEO4o{$OXJDj2V?@H-$h+JQv_wBqWSm$} z0xzy|U-@Cii;=qmdeHI%&_kV?(jGnHZh@wbj?B{2s{pcOIwtO1 z&0Ftr{J?S7=uzxl%ftAm=#Z*zQhAq9Y&F_Vd_KQVx}_PSmuC4fsm+wSV36&*09o2Z ze0m+F4X=)xkLTI`52B;y69}eHa>i~VdO-DECVffZ9y@gQiOHMK{LYF-bLd(@0T52klC zaM5z|g-~v2OJnAwSEngZ)g-y~+R0t7szr?`y@805{qCCFl|G5L;c~OhW2DsV@E9*t z>V?jY3Kf~aip)1P_eRQwkLxT}nolMvN}nQt(fVl8d@7-lWaDC0F9=6UNY>`wiut!% z_VRQ9hf5o;xMw^m-7{V)&&*zNZOz`xyjRM+%uJD5EzOMa@JYiYjeuUgSWoJudbwVy zSL?OX!mF}=`!G1KI|w~)y>@C}!TRJE;+HO&Z-Pcs`yw0eN4a)0b~hvq zqg(T4l2;EkdptD#OK%)@?Rg-4PS@JRLhDsI5NQa@K|&WanoBAyYW_heOnN1d=l2UM zl|Avj_MkQ(_s-%8my7;WQ#19>9&*=QY3Ug%#o$v^dn9H0OddC)iVmgEB6K$kNI0}q zN}sLduO&hE_Ve0^YaS=HOMD)?Q+UGHb=STQWTNJfbFHQOSfy=QnB2OwkHEg-& zrA?VOHtfrK8U)JyGG-JuNfC^v(Yx**?b8|R>61*u;xqq7z+-5kZw*t z0;jQ^!Chm3cMsa;%RDrLeOZ7N6`C(!R;KEPcD_sr50!ZkxUCtS#D(BCs=Qb1SKeV6 z+#eqdu4wu;RD||9G8Ot%DlA^O^d~Bq;gU38Nyz!pA{vXI(SPgi{%E{k_Rgy)#W+ZF z9pgcLRcG34{;AO158gAIV40dV|7iT&E>QRb&0phmNb_Y#YrdMaF;>K{`7K~xdp|I* z3+23iCCpU6u4|eCx?8o~F@Rcu&l^HHe>Q;F59bW#jmu#ocRF>UkJer1&z01uwKlq_ zl>P-T3x$~@ThYu>!$~>)OWwD-(&S>T6s2$CMS^_cpAs7!;{|4b!rW=_YoUqIOqy^8 z>tONn!zq7W$Z)_yZ%uK8w)PT!)Rw_1(m$;IJv zTv)W~KEJFw-$wKtw_ttNc^f&+ZM5m+#>T&QfhT-!Qtr=&fM zR3>@JRrLq*2fo;EZD_*xKrk0jL|6j`nEZOdmm?TUG(7iDzwiL*N96E$M3#PW-})K% z4gqa6H)Mj@K7|`C(KrPEE?pr_2_ZP@U((Z42|+$8RPkvXgv^FsJb3Ks~+mD8xY7Bz+HQEOxtUO`N`$w{D4G_eQFs?*gfq8&-v?lJudfMb#KzJ)S31hU$3% zxtUz3r2tny+DB+=VFosh=N)jjUtGk7k5n4zptbhaVwMu7wAiH2%&_LQ_X$Toqh)d` zc2`j^M4?`ET=0upyK*h1y5HQ=YBFdmtEK0uT~X4!QsXwG$p4}4t-h_YG6y?b)O@Uf zs9Ida*bI96#{!WG(Y}QBLehCZ*$LAbN$0N#r>w6iJifbmi3+g3D!KbnU*dTx(c34kMsYe`G%0jb`mcMLI{}8A5sYI z(`Xvgv*?#6(q{0<(Rng`u2H~an9lLiyhx;|C%LE|3|1hfCtl1_tT`axD-s!XH56mt zwkv30YCRPqt|WrK886q%^V1-ngH@7;4e=RvMkSS0Ptp(57T>*>%-UGE5pnz{UuS7iC#q< z-c=mMA~80&1P*^E`8#(~_r%P^n$AZF7+@yTq`#eLxTFPU>}t%=x|BLP_mHnwpk02h z5}e`O7hsIiVgHiu1eOBTS7-F$OpeF4oavz{6`CKT?gNsIlE$4E^8x;F;Qc)R&y;tP z@Qb=CWC2@}5)n{gRqnPU5CY#7Ru82grY=wy)$@8xET-r)JebPQCe@)(!4ns&ZT1y%!-0$4jnWNx$op@Z0c|W}IBcTj%eov0SQj-pm+C|ACjSu66uD@`2^QFko7BchE>!`<8F~!5eJ96 zxC=`bY@835i%5D+1vzp5Q`!T|J}>|lt?5N;dLGyp(~YRexUi9KSKH6FA)_{|JF@J4 z2~VHwanrnMvr;u4$ZsZ{8j690!Y)C*mdk%hWSoEZ2)Z-gx)D9-FFvsaLFv zco;U744ajFR&sI(F-FZNYLEuUrs+OgjY=ewR&xS?Q&pE{{h&w|Arx)D`d+; zVe3Sz=%wGk4bqe+pJsw!(hCAlY3Ujos1K$x#7dZ!2eWFZvHdFw&2`|iLeHZCq0m6q z1I|C=8ta34`s6nuxV)Zz+QI7?A4L|9+E`u>bFsU5Ni;O2G0W;_=#m%vu;xl88TnP1 zzKzm*q9F2vv{u@0h<;x~)DOUwY2n?p)XO1n*HpNNX;fy~+KTZW)H{tcsEzh|RG@Wi zv)zE!nIb4izds!ZHjWQIuQKQc<@M?2t(l=_i#0~1JiYieko;FLg2;xsY;AesEuv=_ zH_xSs{VkC!@_9t2|46S7w@$_^`#C}*2zJVCX;qZ|P~_wJAK?k#OYlEbM5=U&Eu?pe z=^dHxCa~}UbX4qhha=R2j+)<4p_BbS%67N&54DX6cF61WWrIDPYlz!n?U=BM7?$8|` zAK7%qzyUD=pD`t{`tU2Q;9BrF)ik#?sK8t2<_LXW#d=+pH58sjrki|$*t?zIk?6+sMiMj%TKpV7DGw}HFJ(`bsVCpfCmyZ%_w=-O{nGQuS)cbD2dma>Z1rPRF$wJl-B$z`4_J>(5nASAE$D39RR z6+DAr=Uu1})uh;~qUPelRO1nhPpsXCd2<+_b^w`ll{P=-pXoO!!7s8=al~Cu6+gF{ zQ7+w(V=44*>garv44rTB)BH9+S_aX^ihBo75UF?GV~9k(5!KmwJdy!1+$$kiO12~2 zt0~CNz8;gkF&;^2Vxn_8kiAhdC0+eabQq6G`fx9PMFSt7en+*2u;kLj%mXJ+h0_@cXjxnlfj4q}@pOmib`Hb$+ZUmaztcvh=UK(}D!q{BIWATcMyM z75o|kPVLcxBP%-UitXTK<34+dOV?6D*gxVh{+)fi>_}V?kv&OlZc^G-2M{5O=@pd)2hZm`tOFYZ;NIYgxdp=COlYzyg%b@;e$y1p?wW-&*q+}y90=* zD>z@&b?JWt3Kx63$x-f{o4nj#hups$Tpw)s8v*v;tjULJsF($c&6m0ZZz*I8> z_h^}I1o)Fa#wt5n?xb{ZF9t%h1!fR=EvONAEvOCAXrWhB>}au<*s~-V!8`7F_N)XP zD!grJq*WeHvV+lSzxxs-NVS6wSWQQjh`S(<`O+vJ2Ei9WbM-2v`MLNA+Q(8!?G`<5 z*+|D^o)R0&nY9-;UzK?s5Z8L+yJYwxdF?MGBeztgP)X~9@T5mH;Aj}7*F%aYq^k!& zp*11*xDt>$+K*g{BKf!x2FtEyDoU9i@b$5Bk6`ACb zWrUyRHZ$3>rj8{?{a>Jy4ekSUSwl51qu*pt%ow63l{`mDk|WSpb2a);)SMzgg5+M< zlKj?H|4-_Oy5jGFtdDzQji}h1HUtaJwR+~oy=OD*Xrix8o$_vJf=rI7Vubrd=$ELu z4oEqfFmF&4Hd5)(qI72G+UrJHGMiZ}>S{dL?g?9ZgMRC3cr1?=eZ2mBxm(xsvO-<* zsZYBJ-yf0oi)>7Ti^i)TqMM!Uo5D|Q6?STj1HB8CYL>P4)HR4ojdF_PYdzmIG|qEVaOrpWb+Vy{qCN4>*b`Q z0M|Q*DjLmci;DLR8*qhh!oFlHiJimvY0{OgChNhL#Qq#HBdylzxY;5^_p%EyPsroy z2|(0>qC6P@-NxI(KQKka`x>Z)*&LN)wL$-$=C+4mr@tNwiJ3F!N8zs*wFS1IwY|$K(cg=&6Ib z{QOG>_&oOa#K&{~!STtH;y^f@@d%H@O<`u&;Eg)R^V<_0GOtB+hk_w~f$#r9v2y~+ ze#~etWDb@8fOw;`Jxf6cIgzj_B^Ds!q%6V$L_8piumBMc%pxrC=1iS{=}snvHB0kB z_AE9}vFB)^xkCZ-VR$2WJVJOh!2MLB!;CKBR$n@e2p^rYwm_?Io*@tvFeZIFF_27O zzI3KRDJ4CNpUVJyu)tVf2@Em5Mqn6cLrQv10NW`rraOU|q%**W7@*S9a}6*Fj)UMT zd2|!c3x#w1WVFzA{bAJ@Ze5u}IZ4%?^gMp%&(0y4q=xE46@O$7t0WcHDb}j${M6C_ zi6k{t&L>{`J=qzeSiZ*Izb%?*UO;M-l~(9t@JxiGPcOt<7Lu*)x1b-bec>1bYzwE8 z`oz9t%VdtOcWjx;k?)Qz(^0cer8}CB$ZGiW=7j|JsDql1R7joBe3U|>bMw&(sSVP2 z7xk2;YXKs5Wf2x2Vs{o{f#>9Sh$Wu!&|~dcY+j_N-)Fm-_B}G=or{TI#ygh~5j7Q^ z@y?|JS;0G(8I)4`ymPt0R`AXh2Bwt2J4tZN5kF{+@hHy^Os~uM;oPMG8cAx%7(X1j zG^jX9t$O2!sii?pNow_pAAUo>UkQjG+Sc!^*OvAB-_!5Y{eJHg%KE)e6YKYW({nw& zXp#&18Jh?Eq$%+CA`}-WL3)Ef*fX%`)mwO^3+5MYEYw1E z&!lnN?OP_3$=hzP#iief+ttxbz4r$zkkdQm+c=?aYs-FcIRtm!WazN!bX-1&F zcwtt?EM*)qpk{6!YeAvh7T`FBd5V1r-zM=HbRnc-b$(tT!&TEkPKEdPIj_f5Gty(^vN zfm|f)$pksGnJxH}lW5gYhgAnYct_>JTP$3&_-Ta;9kfS)hAn~BvN@*)0Z*Z7({p+1 zZ)VuqwC4pNJTv0Mw2veocCl!?bUVpWcLAI1tEx%+NsO}QlNip@`%&8~ zQS*Id3*$N>Ls(laVd*PGX&cZW!f1B^%cK9Bsb=F|C2HLJ=Tvx3w>uWUw*72-t_$(& z+b_5G4ei(3b7T8W_MEA-KdZnVp*!9A2Z+As)dbi2;A;r3_rcc^+~9++Be>BAUr%tR z;=^|k?sPzW%XE4p54UA)c&-o64dJ;lJZCCCut$xCHzPYMaEb9|_XEVC4`QLvB2sU) z)|RNtx*}{5YSFDX8SDyL(*qEkJh#eJrYwHEMeZ*G{i4p3!L0X}Bn8d=O%{BLV&6Q7 zeTxO3s@S&m+9KV}%7IFWmL7~ls#7I8eDmoUCoMzYjItu({9=_Q843L3= z*5RMQR`Uj>Ph4VYJw}36hK#a8jC(eO<)UHhN|_?~1VX0!I0+ z;EFPj4+ryjy(j~{_QI`5vbu@!Qq=uFWSK`)>S+!i*y}%u@y9j+bZUqrFFqCTpw`7v z_x&M*p8IE5RbOQpl&TC1A+ub&6bJjM-DCAJz-CW5jG=!sxZdO@$1AOMp8Mj$+Qo`a z4NayHF|j09XR9!*pP%Q}yvF3A%^g3dC07`KH}6spb$XOnTQc!e?|fX8FO}0JBHhw0 zU{L5_wn|1yl@KSPGc(!w5P;)_5~eQ$m8YutY)rW&NvXKgB-ePElT04KEzK}ImNc?E zA660uvc^Q`Z3@yggHcoktoa92FZ#1xF@Km_`Z2jy!gS`9mE+6RP(e{BhzEupXQ)ce z*O5*;aXan2OrUUSeOT*-in|vYTuEBzufzVua9nn6#>TW3IWAa{K6D%*!#F{=@ENkC5 z!Q7^LD$D9)=j#L6&KKbiX5rD&Xxa9`@@v$@Ar<7y%($~XtZHJrSE7{+bZf9xE<~-$ zXdy}WsL!{b3w#g?Nq36cmm0L+4oa;durK)=Rrm~Gx9m}h?w@Gsx{ns87WO5-2JOx> zNp03-Pm9VaLpAAXxF~twvgDCU#x{pztzHkHc_e8E(7IpyW20;g`7$&fz|BbFH}~T7 z+0^8FK$~tNRvkCXIc4kfLG7mU{B@J^v0^_YDT0(Ue?!mEK6=W9jl&%W>Hh$~L83y?lXy-3?6+;hg<_wt&t=mT5?<9t;8 zcqf#a7%eW0`YLTxcQ=ch{A=f<0QFRWmrn})hAinHfyGvt^D+Z*@Wr^%b^krHoh9yi zX!1DmCirSz${7jY&Feh;ucvLoA_gJDYPLk;!bDNt0ZC7Zd7B~I9+uzLPfSQS5EhgT9*K3FhK$kyhs& z%M;_}?MNo)#cJ#~(v0DdjFP9Z$2o!XagefcHyB5LplGHET8z!S z+HD#J`{yas#2DzI$`pbsBLP2Nh!^6CRuVUVNG}CagmLgJH~FWY7Lj|mTl-nBD`?-~ z!_b9AnAWrsCkO0^lj*F+#DopVt-e#>MmEuOhl`M3-V$1*@xsH4^Fdz)_V^D{mnIom zxhdx(VyWlTwk>;k#DE`g*VZ*$6MQCKhAPF zwVV1)1k7OlbN}!Kg#B{(qTMa_1mh`8?ze!jT>&v#&y|S0)!FP=oG2K3*T6FWG`%ywn(9-8vM{`{fW5 z^@%=2eKl!J671#}rA$Z0TgGcQIX2Bt0<4TQ2~5?e@Y&$%fJ!+iz?uc#M~jwA z`u2~B$`!SrMjGbJiSg;yc@!3O=%D{{F+qNyc{~vPpUgx*;ZJ4Z;GLy~7lpa{wD&uR z+;`pQ-sAm?BDZ&F@@JW^QR2`Aq#M*bpSCd(^|nGa#=>EG6nae_Zgz~tP@Y$7gVAqO z&Is?jchx31m!q|GP8WK!^@IxJK>f?awDMINhtnXSi zSLW`4gXuXJx<|hyn_r6VZ)s1e_IxI^=WySiIp3a^+T$i5u9ocFS+R}!)Hp5XldhoH zhW}&gWe2NV%G4oSZXkX=1i1daaQzd&2>(MCo-}bIZFNu@uKKUER-mAj0|&ajTgG)t zZlFC8{yPw{BRb2}r!a3UxW@(GUftmE%-6at$Dl}MdooX>&1akZo3F*$nu9@yHRX}a zR4XS_=2#}v#>n!?^giALtWBmDjINkW*+BRKBZi^Pr214+vq{zL5%b`1gW-UFMh#JG zc7I`?31?rB`4ED)?z7XpC)VlDd+H)_2bKrpo8dAY(!htonC#-<|g+VUKj52UTTZz zHNi#OW1PO0)V!+fc`c_$1a?bVHtTwn2Xo@`^$I3#b<(_p(0n}vjQ^0>lAzLg*O67S z$y~+*Oe1{*S)c;N{28HzcYs)NUt@P3F)?KNMpBolD|0Z>v2Z`T8pmER*mJ)$+zA!A zSGWs*l*Rv%dq&yI4Xx{E={NghjZmD}Z(47xY5t3t1>UIG`Rfk!?|jzAIKEj^G9;QJv5geswp?9<%#ojSIGy)B}Yp`8|>})-}a-(>~FBM)7-E8L1j5nIo8?jB~edCQxN4CV@>Xu$a zdcn{6h1{H9qW8jl-I9e}Ae#Fi86r>^Cl&|8Ao~YoUVq*E~hM z7SAVYJnL>mcGP;*3hIm&uyR-{m|)e2a{4BaLO5*-sF%|>6OqYA5Aqf@QgWz|s@KhD z+>V@2%{AcvRN>(3?91O!aQaqC@jgD-54~)Bd%r5V4F45xnU4>P%7H8t7U?@k&C9}Y zf9!#Me3qb_{GIlv+JE(B$uq#0`HuTNdK6tUbCt{OYeQUwAidOi)$Bc zmvNXtdC~3x(J9^1-OW>>m6?25mQMMLX$UNi7m6VbV`O7xTCAhuMGx%`|oWQ6Jv!Uh=hnPDzm>4ph=6m zqGO!C1P*S#S8QCWCL7pL9nl>$KL=koIov9EPbBdj7G!s`^1z^ym1f9YsPm@9erDE1 zZ;&1fV{AX440f5FnvIk_@eLwm`xms_SDTmo?dobpvz$xv(Plu`OxGT@^iANU8&g|M z_h%7qPY@k|a^0;-NZLySowq#&Na)s2Fd|J6Zf_;hA5}LMSXDHFp{FxW!PPiPQM&Ls zNU1LQg7G^ey>Z=|>(bT4Y;7PKZOp+$f$#R0BcAVA-x=RkR#$DvaqD%3Oh+dPHVAnHG}DCX3lZ>}9$cyOj0l^p%yde)yNp3+rNs2ZC*N*P92 z@67;T>atkzm*fr8E}ExnAbfYuuL<4yNw6yCw!OUh$tU74+j?Nw_5$8IekDAVWTEX7 z1wWkM+RBY|&ZCDtE$!QIFPYdyZ7A6KfolOi3bMoHT4`1`*KLP!mDDVZ>UN!3q`4RJ z{~i37IMn|;`M({byoKG6EjvI<>eSMnC{iBr&=<_w@yGt7vkoxsP*AWIZTKgG#}eIjfX3nm;l72 z=l+5x`=`)s=?5Bw7~5NH0&SqhK{GApw^95?mOAJ`-g@j4^8@Z6I$5wAPmY(iKbtyz z%gS8mp*@5I9vwZ9-~2~UQM|6krE5o5V)oulurVrU~ExcmpM4R0tg%&5)*)V z3g9Bw{-h;NC+Q}N$jh5MwybS`O^FhjRbPYONwd}jq8DtFs$j$^c;d*IkKOc$a{2|v z*If*K?~1i;?aCO<72&jkc88^xbGPBXeuLEZCzNkg37U9VKqkEgQ(Pr|0zu@}GCJ$l z2d{(^SV`>t@hljz`#J~23v?c`1F6W8x|{tecTg{FWJ{v%G0hxfvwdoUYN5dx~<7u^*qs`y1W zmxS1w+Z*(WwKcRVs@(4yI-4-qbsRbuBI6yn`NV9ke7W2DT)!5G-22=iU(VwH!kzzf zKkr9wX6TU9{9Qwl8yhy3r4Q%hR+0y?|Y50b(y@>BVV9P1HwS@H@h`WRTNztJ- zyJuP%X%R-}{+_PtZ8EqMQ$aP;ab>`=7n{6m2=_GB;E3&gxLn$mTyLk~jFDQd{ZHfW z2F{@4G*xYHnBbm;(ysnhw)stbszROQ(j9%DLV|Raiz}uZ_}b04Cg)Sfz0$bF84XSY ze^v(2z~k>rs;x~HON)08m#yhcM{8aCFc4s{2pLmEvr}Ch(=p-Sj+VZomfxrLirj4F z=*GIgQ8!RmLHB_<dj#9{Zh(*j@p_fqe&Wm9$0TebMPi?8-?`!;L8b{!?;rC0tj9j*hWj< zH2MVKGSYLPPI@$}5_iIOci1rmq_d#)yFao%HN13OWyl()z4`f`|`5>X2$TaCQ4f|ku<_g@gq!doJKfZ!d zeU_*+bLH;x;@yTC%cHy5>;4dBQFA5zFablB(kjdQ*VW2cf0m)vvvmg&+xw+~zCQCB2Lv2IjH;&PA$mB7;SUt5>abL~p_Td!U8ggq-y zSowkYu@IY|$H92Gc|6?M6EscgJK|m~Zd7FRK_utBg4MUBJ}%aw%j#u~^4rzBUG)lj zzj_tfMBW^{-i?`D^7pbn-_sjazF^vpT>$JsOmrkFxc>ko*k{*ab^%K`XwtLHQEY1Ieu$llr9M7@@sINkW`FCFHB zo+&F^Ae#ZHk&I8YYaN|%HxzP?%UEY7GY}3X9TI?ayRa4~?U6P89l_EHV)Nqi4w1=N5| z&ZldGG(Kq=RA|c~v<3S$KK%^gKs~1S61S-{;*x|;xV!45-tGYp6+HWVI^&h1?o@HN z9)MS>iC>q~`=v$_j7gzsBx2)IC3`;4HDI~S?HbGk9e4oIz|NV!Q{{xvSAE?3 zb6Y0yxDHYhPdWBS<|Y>hS)_E6U3tQ5ocMb~C41aT&|9zds2y!<*Np=nN^~C7?uJnc z!=ZT`iG-#XZ=2kPZFlGTMMlC2M7AWA*Dp4YC*1T!WKGx~U60S9p)VK@Vwc&~oA3*! z7maULoPf~yIRp3?`SH_doa)j~$y&p>w8kanq3u_sk7QXEf(Bf@?KwQrE zuKHGTl`(>B$;NjQ=sCF0U^6hc8BA>7EZ~C;i(^B{(tm;FW!2>R&c|qg2ZvvZc8BOo z4oIKaEKGis7=DOH&S_`l85ViUnEE|=tRMR1K}Yc9DI0mp%gHn7Go#~|>Dam}l}qK@ z=-Ym$V%~y0qF*47OmqVTVx+;?P|4<=@DZZ?BI93aFJgr@796W-_tHGwnh$`1F&PO+ zCZn0dj@wn5S##WjN|U?Jtdi?x{D(c<2f|a~G=#f6U(bJ~VPu+_*fn|l)pprtX=ZlY zjf&d3Yx49zC3*WD{FG)7*~6W?lcm|sJhweShAG8tdz5|Ht2Eo>#apR{ojGLN2TvYN zcqjh_egqKMS|4p^Q5L{`r1caFA8z661_xF~S{L~jT&#gQ-=OLiJ|mxSf+hIut@fvx zIy^P(qfz~(M6g)s$czWoty7|@zk|f&%mL2%Ks|U=M~MBzBHl$dX7i$`9vkhM9Q`>U z&)Z?%%%`(<9L!CJQO3(vcKl?};407wohDA^$2<jSbV z`5$K(_%BWQ_IwpM{Y@I$d%gya>wWNEf*XAh%b^aKs9}4)u5i_dzoGDi4}VkPH9q_; zg=c;E+k~fm@H>j$>cihv_%I*-9${k=|N4Esic|dS5A-Tt@vlGBYpehIBfZY|U;jm~ zVjBmNI*f^`J_guBWA2Z-(%h9Qova4Eg>_wYyVGT@s=ztjF~^`<=% zBeM!MU&~}(O*+@1J?xPP3_(e1lNLaAluEVC9BMC@a%+X5Ei@edOF9 zQ(x5i1U=OI58$F%%}zFT_x@Y&oxfGm&n@^#1u<-9CusiHf}c|CuPxZ4vvlQ525_H( zcI}NGMOqxr-XscUMv0>CxZ&(!Pju1VC)TPzg%ob8#(jb$K{!^)qu7u2W;PJ6P%iZ^ z<@|S5gM%~V(x+F~PNts*C%87mQB?YO7PGfFBAawcm)2@+B_9gqTY3ic%76C6wRFF< zC4GjR%aZK&>_Sh8x+zA_!8L`t`9l|#@;kpF?v{Dlv5JMUxLe6y7-{n2&{FLfS|uQ# zDsM}i0&xK{i(ypf8hI6E7mpMsboxG_U7hFg)M<0nS-kttAz*jF>RO-xYgAG*CCTv# zUHbceGj!h(*8k&up$4dPoMz7yfk4?A!6Y;(_eS>dMS8SKW>1Wk<r@Vs`pLjLyB9aSTsc~`oIV(wi3OB<0uTnY7_mrZpT9nSv zHfcghwb=&vQW)-(bSzV)QPVV-~K)uY4E~t-biELLhL0ot1MjX zp%wSrLn|tB24ar!qBc<8U{3EuXGn z)H=&kLz{`(Wj(I_E9N+lYTkU`KD5EkUOvX`cLA~1b%Rp06T54DwjZ#KY&xTDZO>=d zet^p4l7wZ&YAZk&Jm0Zp9iBFyVQBkJfw1q}QtS4fIL=m>E@9w^I=iQBwpsCujnR|?Mzef6j;{Hvi8H7>-b&ju1{)6Fz~K^c!((uJP!ao7-O@&;Ca^mgTW|!{d%^V$y}Xs|c@m$9mie zpYM+KxR>46Xc@Ky**XKyaYMMILi#Cisk(c4uzBI{@}4~dW-{;oGX~88wWHeWCuIZt zG+CrEt-QrMXA%r<0o2yIBowOK!0BE|T74JUwayw8Ze!@EU}F3&iVq9^dlA=AeRQk4 zm#L1iaxc<{_GwO&v<;gXk*-QAm{2X=`%ggRJvQtk$~t9th-MHIoS1Gz8oQg;vwEZX z5J~t!;S8?jg=?Hdd%J!P`fUZU@UZWO=vu?Q4-y9*Xe`L`da$vOx4kY3LFD%a_t%~W z2!AoVH=OXjt|Wel_|oEY>0(gzxaYzm-8{!wk7E|0pzZ z`3}}QUo^k6xObvFy9&LN^eFZopa%|R542~ocQQ|Pij)yNxxOS%uDcn9=}nN72}7Ng z^Y~R)!E42P8Sc=d@11McMM_cN2K;UTAc2r1O=^Qs)Sn z&>BtB&w~c53{IP7kSi{-nJN(6>RdBgpoCKYaN>{g87Jw;>~XM|+RTono_Y5ZTucaIn!^Yu`n! ze(B`*0U~yyR=?c0RcmfdVyMsc&R0VFPE$*g!p`351p0`5Rfydq23bP~)k+ghHciZR zN=FmUpXwVTGmiS2GJIYc8f0Mm-kcc>DKgyJ&*1mk$|dhrmQ?s8H}#^su;H5Y&LC{g zYwREG?A%M4Vu+-7mXNHM!1ByKmi5xUWUp%df@+!v`=kwlq#cWQTqWJCm-O zx2wpi9(Gyyv!tu4@M7|Za#`oqtN2_G>1?EXon*9Ky*Kc==3P2{`cG6=YiXzWi-h!P z%P*<==kgUN3xB z_(49x$coL?nEuAF`oy2062Lo)!ROh+r6AT>T%?y&#rPJV30 zGZnkf?heDj=Jn>ELtl0k5fHWZXZk%G)^WoO@#<(PoH!Kk7Tst`6W;$oKV1%3sAV^M zn&=?8%<=^vLYx)R-gi;D`63rfN#|a*smzgR`E7Xpp`7j|?8@wj<1?i(Et>!ef$oM? zze&cWQ}BbW-cJiLF<;cAWUn_@>>I~_27Kr1u#mn*^kDb_zudF+DD=+Z!Lhf1^kB)M zdvB1JxaV1G1_`(e7mbbG6(1WY0rh?~|Q5u+-R-m}s5}BJ!zGr){)vN!fa@ zWP@#N2>+PO|M|?ENRfy+($0}D^L;kYn`Ihie&d-t4qC&dIE<{UleAVj8yftDaLvv) zX6G@`(#D)W<{YPASMRnq^IaK^J+nr!cWqOA56XIXo93eRq8bRrD5#Lo(lf3w_3*4q>RMZsi^(+pyR^vd95$&ph8P{_C4l{4SiLd1#g zf;q)DA7fmgc{_0*1>ZM`5567vfbUv~?;fg0q4zKzZuU+@T5i0A;0UO2lE@GI++;1$ zB8MWisn$MY8rl2}Xn0f7wL-fp(}aU}p%Zvzb-_yqdBJ;6Z!|BHa1~hYJ7T#zA$R|@ z(Kpp8c}+m$&dZ9k-3{;evf}yllKCzz>#N6#z;XI5l^{D%#qJM%v-&LJeEKNnepsDb z1DfXp*}uGw>pVtnyTJ12_M0oZKiR#-_{fYS+#gwMZTD-AAe;21v`LD$qN&1)*I=x* zxJsDlrj;5#geTrSg)-l&e)+ETOWZr(cgO{L6nhU>zw~Fv?}~|LR;nE92_MjoGsCPbh+AW6rxU&&66hzSSV63kUQi`+_B|^X{p4Y+2uyesjl` z4J^LSg;V^BvajFBb|&Iarr)ODw~8)_!?^13F0FTd80hjSPmo9Jfl{?-gvr`HTt4v+ z$*>atq^n%%OCbD8{4-xT53z|w=}L#V(1@g~Dm~tVmLy#vaG=%%t@%g&uIhI?ox`^Y zGL%iG4!6IP?<|@ip4iUwuhd`O3X^^ZvcNXo)6Ci{vDz>hkF@Vac`FqI8)hvtmb?dJkn|M z*ZQr1m51Bawf!C434e2)+JO%vWxiAG2=Z2@<=CGihzG|A1_uo`EtAKMqVbm9w=$f` z%8{tDTvA?-(M=+J_Qfcx?PI}2Blc>w%=WoY28VYEho#Lx#o2s^o$PJE_;bixmcDK* z*cl_rA8FuBlAo0F?KzaP-fjINVG-OYuOd%4C!Lqz;^Bx<{vOfvUjt2dLsJCzWArHY z9xDnbUA@`lR%>h6g@~0r+kPlbGpFw14Plg)b(7T%L^B>kuKoFVx_zTT@C7xd6E3dj z9$@X8VBcxqY$@wY-H(yt2W2qM$*iL(qKxgkDT7VY=v@S!eW~_uefE|llH-`o3@2h< z1botfJx)?7Wkd{&dB*ab1j2+MQ6ZedZT!SyBk&`8ZuQ*=J%Wy=AEgR zJ3V`imy5K}&BK0O#k~R=y-zgKTxCl_x~k6~VkAF%`E@H_Y~0QOL}mB^^NO)k1>fkh zozn1l;yC^)Fcr6%ft6mJMiS`b@?xPwbESKhDX;5GGyIgdvp|HS&E-2dL+{_Npfdj+ ze$cw0Am2dQL~HG5a>urBpfGqA2xOko=HQ$3;3Vzk-%i8s$4i={NCPiv-|Wdnzlbez z$oEg&{T^asjaNt^DVS1t~QnXpKVoi>CjNEB%%j2>& z`LXVTXL}ttBI-xK^x^NZiO2LZ*tuJ8U!aL*#(L7#quEbGD*HA~G;?KdR8bpyt9Y2~ zh#k0v{m?kQUL#Liea!teCS&IQlqlN`l^?;Cz`o!5r=Z(V6XeY$2r|2!cf;g9KVC zYppg43H_-ejv5V46-5arn{Fh3A4lc+Yvn11?|*Y4-Wa}Gt7&rQN1%faQYfbXLMZ4o zv3-;L1HPUw&>^hxu~2af*pC5%-J(`A=9IHY*B$3KmY7Bg{VU0IvBAdazv<2EJUhVQ zgGMJyyo>$Kb@pv6cEkQ1FbJG|A^<(7>Pl}E#7JudOZplG>jk5M#>6hl`jE;J!>ji6 zKU6~N&?Nm&0yU?r|Ne_m`V)S*Fv;BbitK#t-Hg)lW!kgwg}t=|FS2k7p0hK1OYA1` z2xnuw{b!ZqOn!}e_#1K$eV8kqLqIq@ikJi8u<0N;pga~;OCNzREki&xFGC=!f8l|H z`X6%cp#Fzb|A&nRwrSC)Lanu-WK!N~h7QZ@F%`g+P89`5|-j{W~3ttY6c z^S=se00hSY@xQ+-^G@N$(a1leKD^!Ds4?pA%6tRC{9Ty`yj$}<1Ne8XfM0R9=7}VG z7a8g<+P8i_>gz7*+=v7kgRImT+0KxJ7DsCYufoyxJY@{$I80?re@$z+?aKBIwPrB$ z@d9^ZT8#93i_tkF*%bLsla*Ft-8jmcl=2||g><;!%?cnz!xUcWBE`vVjn-j4PZC?6 zOO&TI8{#bLB8wVn|D-=xxA4jdGBFy+Ykw%z)+lBdN2nCtWZ!#5@^c#v?iwv@soFoc zI?4X)ZLb;OY`Z|nw@eokPiCZpY|ZscV<~>I zl~-#`=OZ5%A~WY2)$vH`__*pg$Qi~>^8JFA+RvWj^q=oLFus<;9u7^W^O4tt$O7Jm znV(i6?{{TAPwoc;XdI(8@fL9SgmCbsd-nv>?94rZZ;R}ME4KOx23Xm7B_zj`$8KD+ zqBe(HW9POpYc}sxW3^5!=-vh0c|-Z>lZcgKZ+j`N%bWL6aQ}o|G;oQ~@~au!@+;~} zBQs3cP!F-(_jVMqeqmKJKi86Z!wz$B9-&cXG22@WgvPJNBm3EmX5rBMn8zVZ@i3ms zpU0lp;E84oZ!=odNdC9l{E+PLXEq^S(v7C;uGuFYd#1PEk+N7z>MOMyX{?J_j zQ8gAc5VJD$s{&VAOlpFU<;$UdHh@w}fbux{ zr8r7~u<H>>^ZH<(#vwn0u%FO9qF;z;t}@v8{2j}HIRhdpLwJ8?PzF`6z`NN8@AF9ocvMO) zWuhhpz{i}IvDdgKWTgsIj0`{N5X{z_BGU8v1F7%t_s`F^(1+jhLOEekoy)++Pdk^F24ov%rW@HYB+x8(w_ z%V?a7H$QLqW^&OqZO*+Fbl-YXMgLwxiYUK$LiTo)b33EwIfvcy$Z#5Ntu7l*Be_vmC0ePk5h zcJ)0or(8OFAHa4fQrfN~=_K@8F5`>hdSP+x;%!_HdYeBqDT9|mOhGbk<3s)reB(dI z#LJc8dDrbjAgS3HB@4eOeEg9ZKB3De9dZuoHj|VR?^v32-Uh*IGh>}1{WM&jENx8L z=&Gg(udduEtG+V_})^vv3V_X*Bru z&eBHXHzmF*WK@~5Kl^!TA(0sd2R#WSCYnQ{`4E#$KlP}q?6LjAo7r6SfCHDogtc{f z8I;P_X}%1xxQemyyoqwYB-+MLJ{m>>52Uo9lTahb1(9y>Xx7X8s0FISk{^dh2Y%Fr z{`VBuW?LSIZ?G+o_KEhKYCp`L)9okexkrR*blw2N@0lSu>4UQbr+iR)=(GWv^6Ty&@0Q%tFf||9q7TmP?YsK=T>bBOs3dKE^VqA#D=|?0d(2q`~%y8y#Fw}g6 z`A&oWI*Bb|-Q0*Ivpp0Kz?X6RNmvD1A$D$Cr%LsEgvqkew4eyD(_;Pj{m0V`$0SB_ zL#RAcEzJxsi>Q=lYWawbrI~8}eM5$=kV{Oj7%y8P>OX*&NpRhr7b zPIBXYuH;6kk$b)W(e8B?#$_1qxE=S$?6R>gN*-XWw}{TZtzpNvZM^)BV_jv(_JNMy zf2`-r*l(==vmfiI!eOinItexYhOur9UpCfXGnEbR?8_f7vf(UROm^O-;jGOgKA#?j z=-kCwh*2s{4>eQD8sjN;CqjGn)#@2YT-fQqF%czJmO&~~i)kD`OdMD#*{uQU!-Bg8 z{>I`Vol#}mdarp0GM8np>a-=PMb!LkF(7H(dFo9&F5Ihy}!44Xg-C(5||Hx0B`0Ga(q3XW1tBQ zPPu)=8#%tnitoy7Eq4WheaSBdYdNL#*K#6ErX*@zUZP!JRlEFoUFhiJP{{X-yX*jQ znp1H|4tG%ay#Ig1!8{p$XYpOK^lmX#)U0Vbo%>`so^t|?jXJ}`^|mY6|4K~{3m7Sk z{iJt1!MT$d{|cm$ajE*eqBEen_=)xvVLV&A{pawch=WQfTwSax49n*n?$#nvjB zEqi=(wpVkGTm2YKt$ysWYH{BXUUAAdRgfm#2_8lzs_av#R!SNy65@1?Qa!2Y$D+=< zyKgH0B>t-3q|NL@io~_{nZHkeT9cXhx|EHq`qEq1=GdM3D5{d7oz zbEi>;Wz90mjOu1)5tXGO#3=^i)cxm=S2=GcolF~m@M#L9pzYs31@qBq6q}uPI>WVl zv}DEIr#d=vKdh-CfE6~Kq-=O>#^Z(ClmAv-r z&O_Xq?Vcy(?|TLD7!{y3jQ`lcv3;*v-o<$7l<3CSe52+xp%Lw5t|gGJvo;gGo`Bu- z8SQI4bzsql#j{H(nOi)69^wvtaJH|w#+|Xt^XhWj=Cfi5)|Z9D;P@Tk70B%=xOJWO6lTuCAzL0XHH>jENLCV zLjJZTA;7`E!DJ>!0fYM?<>30uaz2SCIfz|P3^+R}&Ps?(KHR=vtopv;kKg;W$mCO;vdtTOtoJL9~jH(FOT>7S#;ws@FJY*5*) zUY7W7x-Z>Kk*F7Cm(1)SNdvUcxPjwBSq6T)@|gC&tcGJ&=YdovOG=ap+}!gChmg=b ztRp(h&*QC9@Z$7Fa0!W~N4_k=-$kTzm&Ar94i0^hu?3hEqc zoE{HR*#a&!4p7p-o5n`|ott3p=Fy7tuDm5;E6*PN3{-FbNC= zZ&r?l8iCCxmrrNktj6qX95#TMj&4?Smc_BHWk{op(tZXYOWOc3Y2tGnp&W9fvT`rw`LDThH@PKhlPimQ zYR##XR32%a(*CP_Wr~$frkRlH^g5#IKB(%B>Q`rZth$QH7L2Fv->k0g(E#~|a85t! zT64Q6E!?>{VG z6Mn9yC-8I25=eWM1v>opFqB38&Fw0OvxC)J{$T%dP{Hp9reHoq;seHX^CZeRGKm}Z zSx;2DTKiu`=?}utC?`UfUFZk!2$f33eju;u$%>oXjRL?$XoQQ+Q}}J}uxQ`6nv?!3 zSI-eyJ@oFF)zki^D)UTdZHm)VDL}`>PUFdU!`09@Jzb@GbdvN8Uht6jb;#EJlRp{~cVCf^Yv>Ig|?NgY}l-w3@meW;n%7&PVxgom*dXxC(L^p*ZnG zj%^mPld$>x$2LZh+3G(LpB<)U#P@YSM0tJRP42RSA4NIV4WV>j;&q{v^jx38xaK^C z84rFB#P}f8l|GcDK2PS;ec8>2<pKnFOcvmRZ0}s2%bJimgx##fNpS99p|v{pNMttdg30gw z`#PDQ&yWi|>@f?CK&!E_ZoJNshXJ$pd3`d+>k8>_U17 z^PdWn3>2RP-ZxHFCxj+gdWm#vL*MQdy9MHYVeQswlpvGYPr6xe9o&(s6HShBaBwp+ zfFKh3_5E@{vlLJFTz#?Kua~D8pFZqEWcdCnmmddupC1PeZvB!3;~_!R3?tmjEXjv_ zxhdL)&nUu#VULa?!ieX_`|zPuV+~IkrSBwNe|L$m&3QA$$-lZs6YpK>id>v#$Gc`2 zfEJfay_f{}br0n+_rDe&?mTOvU9R{( z{FdWJ%QJ^=n_(k)X3MriTW6MM$M)bgbrcb^hZEw4uIbhhcI6fRKJ3sPl5nM!v*46P zkGi0uTMo9BTOO*^T-(v&DxWL)hx^uaDL1+#c>;QcL#W&{i;f z{OiTM8ZG4AnDtrrN@9^X8U2Usp5y0xI$c4UzSxMDl7e=^#{h*FehwKuJzS#?XIgch z*Vh9Z%2a)!Oa%{GriZgK4Q{_OHNJlB@w}XZx>xZtsI%zSkiJjp4OE(l#EFRx{F1pW z!V^V}PY=TqypT&)T0j4!zFDItPIO?WW%*%Icc1E*UID|IplisHIj^ZaHo#z1U^{Qu z0Lg9xLM<6TCby9dwqAJCuHzl7hN*#H;OUFa>x}WFL4|l zww-7$U5T3LXG!mIfI6LixeR_-J2zuZDkgtg+M-?eyX?0vk|bi{4%G8I+u z_!oOu>y72Ix{qhdN-1fkLibv$GV1EtMEgvPnvx%}+cpFlp(6x103G7O%$V(*#flcka3HHaTK|WiHMcQTfQ)FRn5G$ zbO*VU^fE7LQ3T}r-a3|aZ!as&j0KwFgrlVC5@h58acp0@ugT)%t&Wu|^AorQBnnnn z)D?&3ybt=;0nZg-y^Xy=3+yC)0b@${cA>v)&e||;xU8~VQ&d^M4XRAsYn55-0V-qVov+N9zuNoYfui~) zYO=gZOq`mD2eVtw01mQjEyj9M}O>SdO5dqhl=PNyNND|6sE-u(L zZ}}ZEZ@)9gUGslyKAHYbZ12__Z`D0E+{cr>BeE#75$fIG?2-s?V|b36{d04#LXJf4 za@v&mHuX6uHnEA>OJlUwI>VD1*3ogmK3RbRVW2d$YORfavx?&+S-#=?6>mm&0cztI7#q zavpx3(}Kz;4v`sRdFHILd}go9y_PnWtxYzM+qKjza5Yy4l|expmH6iwwgW(p05^-a zFUhh-a^R5=Sy<_+0PDuyef zl_gol8IYZOfHMizwo_AH_mz%}7`x>WaHtA|&wld$oWnB9S zvOozVoSBoh@F^&LASCx8vM^RRCGug(<^XG>#dDa9qA>b6YITp2=B zGuMXD^vv}kw6@^`dowbbC+R0@`-Bj=D0BCkY7OuG#x2F%@ zN$bPa>{L7jx*aUN?75?P6=)@;=G8o&@`T+}1RqCm_fwv*n3Rr-8#vlOVexu@QbBS+ z`nA?C_+CGWI(fAHgN^;ZdKDC^TKg*yB;2zQ_k;)Pj8Mh;uhy7;U2xK=hJ70a6U*$8 z*ySO3MkdDr!j%||mx6mDbFtB-^D?mMJp-_)c`XR_{!l@` zqw!1&YGK-Y)*$xTgV^U4%JSkbTY z2^@H!-s^9%2w|sg36-5r09aGd#Qol!|(iT-2J?s zQ*rlhJ-MFrE}nK*Dc!?(gH~J>$tUKq*I~ogmwv08`p1f06xi?B9i7JuzZa1^>e}zV z1Zje&1~Z^OWya`^x@z?7qrqZ!6|3d+3Ci*^;$R>4Qwk2NmLr4uS9CXI+DB7g^NE0R zBkbED7>Odx;KH!Uo+!kwb0v5Hbgl=wX1~M8!tF;Xm-bqv>;)au)Y2P|!!v1=A5@U6_u;jSr~VwQs@qo|tRNG8l=Y|NhY^?lr(oB51S6Un~pNgpMW%b)foXQ@M< z47A;ZoAmyK=0s%@Fr4~?nN8C5lin-UA={rpdmyjw!0dOYC-GQRAM>PK9o1JGEqf@z z+#j^sn%aAz3JBdWF^+Gxx?EqP?|XpUt_ZD$6p;VNc;^36*BwgrddkcPMa5e~EJ9`Z zubtri4jiX`R{xh?wEeZL+pRl z;-^50Eqj#GoMmkAML$TLhx*?Elu`_e1yLY}hFlX1GTut48b+ah6rS>Sdr^OxVEDWc zd{!AgUW`2~@Kl^W6;x`aCHg;K|E~x2E5+&`rpH!R#_=stpVHKE^B83HOxtv2rW#Fo zK|*JrtwJGaHH}F(`ifS+5jWT@kK4WhZc4d7+>9BbuGmeu>G|8^Cf_X9aePtBZ-)^O69nMpS)Wa)Z|x}wtpDv5AHI(U`j|FZTb;87J>`*_`ZJDq*$ ztPqwgB%#Sh_B0Tdu!enKMMcHku`$85Neqg(3p$FZsDP*lsHlvhqJtw75jWgXk#WTZ zRCF9y2LJDSs=CvS`hDO3d474GRNuGGsZ)E^sZ(|9o~WA7z$j(z@6h91)*p2<8SydVa@5Oub(3WNNmscZj5l*4b5%wWTl04w0cyB&He6-$o@6;;> zKo-tza1386WyJXw#&SWl6qoQiLCht(L51q#dN5=7Ws5pPHGkVV$=CtTSUUaa%xr55 z5JxJ~+v0Lyn8H1F7oi2=AY6p0VMAj;MN7_^7WU&wT85aq`}Uy@+s z`mZR6YPk^IsC5N}&^n7|5#73+D5jNDF7!A@?w(6y+-?*1B8bK{L#-wWj2lUilt>Ex zFhV02@kU3+t7EbQ)CN!qSa88$uM>l}60|?QjVa3&T=r!Lt^=bxz}UT$m}G@*P*sc% z;AHu)Am;eTJ}?Tu>8xWIr2Je=wX%9(oT4JcYv;P4tYk$9iyIa*Tz&gdt{6i1dGMBn zR<1B@BZ_^H%67!zv!+&gs`0=$Z1gi2a~Vf~x{k|#6{N`RX6R5*BwShCS8?O2J2uHn z@d$Z~wt_WmXWqT&iAawYD6)8&+gyhppvD!N{Sgz@E-vGE@}O(y#ys}rnaybbNNH}t z;|KeGwuN# z2G6~np+-FvoPR8}_kC5sa$}pCi;~P_x!IYVUr}Pt(MK3sA4ekK-Gra8vTDU1FTCaW zL+kT+)&*~T{MRwf+8WDvXuH<&xO6;0?r=u%ur5dA_jKKlIqrnM18xVXZDIVxE%BHQ z*iB?Mka>7tR}^OOqECE(j?vp*>=)^FsK=gU)vHRE1LIkT=9(pW&(bQeo}4g7AkNZr zl^0z%&WlbKhxai3Xy<5fKYmmumE9j?8*QmQ|cx(g(&6Z671KbHJ9> zv|SPh11C4S&;)~DhpDqx}kr{ zakeNQ)&ul!XDBFpR2$_)n-7ahXg~?d6YpP4B0eo_bjt)X@rtD=-v}^erX?y*LK|v7 ze3JZ)rF#hi7PgbZ_EiE#BLe~aODNUj+mA#;<++R~6_2U@rFevuiD`t|gez>G1xqj_ z=$Df<-II>^?_=P^(jM@|kP+vdj#x{RfvyDVW^~QWv*DDGzGUizk}O?U$R%DmiR+()lZ>!=d0_KG zzTtycKRu{OTBAKU?>%@Nby*A#T&wBfp=(L6)UGr)#--sij-&H&IajtG*2W{exgbn| z1!EsCF-cDCdek|kAuPl9RpOUQzF7eAR%y8vHH!nG8fSGsO+VXep!IW|ok(t5&9^IV zw7K-u7S3oN>MvMl3VYVK7z3Wmly~XLj+QgU9BJgA%FOnS-Kk-z9&@ds#Ry z*Ez6VyG!ulo)qsjh$^A^YA_g(*nCqbNOQ%+R>i>>DQ|KzCa!=abhqf{JA-2N8B)rG zJv?}4D%XK^7!$g(j2zv_ay%{VNPJu-KS|Ys{NtiktTW>LNOv4=l2H3*<8o}=e7qAl zcL;h3N|c$yj(mbD>8Ip=cSBFZ2VRf9KOQ6*#Lq(b;0^CvP*Irac%T4Z7>eub=2bT) zFa0k->yvNObCH&+n(sxPOh8`%0Zqb@46e{%Gv(-%SW=+<+`&k7 z%Ob4DE^0Xw6INlY+*bzGOBM!PuD8a(33|Lvk63zimHU^1{%_DfE{ySAJm)KQ(eOE^ z%dJd7#`nVfvBn7r-iv3suZb!KCO=vcT81G-X;HB)uc7QQd`4l?o5EQYpOf`x^ck{J`1ZJ`BoaG8*v7DXF~meM8Dk7FCCY_-pgK7|f|DwoXVWEm3d zBRC^V5>_rSi42!`Sypo{Kyym1JO12*S=YIB`iF#7Y6re`ITlpjr(KE?tveGGSthV`+q()E9V90tX6 z7e?O{7{(FffAuJquuuAAn}}uqh8;4@dM2a#G2yZ$;L#zD`rwZyd!V^WjzutbP+SH> z$qwyhuy{CG^?wtS9p)=strT{y76*W&O%ylcAOeO|m4yE)6zUNC%Y+2XceSvqq`I?x zr%3y@TcJmAO|z8k+a2IfXKTcpLPy*lwkE8Yb(sO&J1Di1DnTv zc*M8jF_pO!bRUaSu#GA7Gfzvpqyg&^ronE74uUkKw?YL#aQ33mt5q1CsQV)c8H_g6 zjSR2Q0u1M0jxxf>ghQWnaBFXtZ`fn!_2$}BZ`@4eK!-lY^x&icPA%Zwr?I`*=P5h9 z&o^HP@91zJd7;gW0$5CPv1SKW!^Og`60KdVnf0Vp zwq76V1*R+#jV%r9J{u!r^|88-^Na?Kqdi%7T@fYM<4_OSelQKVV6*A2uUjfj*S~>h z(8+TDhWeKI6ibP*s`+x1oL)Y;0}R&L-V%cLs-qeZuZhoQ7TFB5s1$Pa>yP#t8D2(9 z*fLS#sjNp*U0$3lBRfhw(|fEuBTu~d1Lp$qC3fl_us1`WV5xKN34c9`Q;+{;H0^|v zWbE?3f~Uk-KXiS!0>oeuSN1u2BMzze!N6v;Q#&BRpx?z|>+c2S*&CdX52^THJIk*a z<(JR8w7uBr#E2(}2`&49rR~wqf*m_Fb56^Ns`(|H|!A+FOre09I_MS#*KfNF@z(Zq3_) zPHeO< zy_cE&|20M;L;U+uol$myIDo?M<<4dwrc9I0? zJqT&6cJaCyy^m%TAEDfE{0n};>d(pw6(*IV%L<1pu0dB0-xKB{u8eh~ z4L*6QxmzI>03 z(0;R8w=tZVj9}l6!vqr=aJ63F)9O7!zn_JZv{uv1;CH;5>|s}H`-W2M?Ub!{XiT1l zf+%47H;v8@g$DXTX_7m@=(Gt98>E;o9JR01P4k``BYi$z*Y32ihJDv6ctbiYtU>#8 zMWxEu_Gg#+7(J+vb3hNy0ZR7jBQ~;rO9Kbtu#GIm6fd@%S$wJg|N~ZY9?H54LKt zMsEwgGiWK8Z@ABaIZRZx@X0Hrvf*PWcxRR>TSAOc*{n{L4afTaTxAQ+zTqlcv7Q5Z zsP6rOb3n3cnyKeob464;6Wk5!EEmS#BKC)t7?dv+WmuA3O5SjQi9m{zRe$Yl%q=u? zr>V@AJK#Zsn#Z+P8>+(?(S)!9D0|1PkEOIhS{Rk845v73ym;rao4=1C50>U=-!}FK z*tR_}dPHuCMS3{oyIWyx#$qBCrw49rU5sZB*3V2BS~dGkYrFUb_|vKAupxV5kGSL5 zY^aYD#D{}~Ao#y74AWo?fg#rzb#l_Zcd`M(B9C4x<9evHPzbQX^)IDKjw7{qH8_i+ zX_^ntH!*3+nfUHzmM7Vha%-B0rt%X-FUE*Di&iC1@^z7C;jo}Y)nqjrcI=VL@dEnJWPmH6+2 zs)@xf|LBjS8FHU4^y!d4X@F`E9N5jJ>&(?&A^(5DA6uSE?=3~CL3r*hI!Nc8Jz?f! zzaL4gxhwaYR?ehT$6Nf80-^J>dlQH{O%di(`B6 z+*OpE2k`26q4T>V?hRf5`zTCQ`Wn~YCk9=Cafq@MO{+H44>%hEgLO>DyUsjseR@98!oxbx$`?)=_W`lZ;R1aHA9DjJQ?Ti#W;tdCQK`)0bC5^ z{JfjqC(BXCF4AKP_YL|Xh0xJy6aOEI4k{)KMs5{$<9d`M=!@oC$OzB(SE!s~36Hz< z^xH~2^R@_nC6tXl1T+V2T7$;NLD$Xoz8A+wFkS^KA+z~%s6YDrs2r2jM+5cI_*C1! zM%oXDA8u>(XntIjrALu4+@3!YGQ$D|KWWEwU>isNTGm29VcY!(kW=Nq3qTdNZ6fjp z5v=pBoL)in5K+${dW0xFh#m&&76h9Cx(2}m09irsU?*r_i)X0!C@+1NG5TfbeQR_8 zX2f>nCbQPZ@a)px{o`3VJ0KqZbxgCI7q}mCN_E+;LfJ~Fxb*mp1l0x;h%1qYb=xqw z-wKl}55-4`gtX`qY-q@BANXjIo;&pGBS57XZbXnED{%Ai$ zcpv=C9gyuCI-d)3;^cbNRfRe6`k{RzsBKJeMoTl=ZaZ5~8`Enr+g2MBnG>fO*cjTF zw4etYL>m*8&07$!vX&Kb;3kpCxp)?hs$>@5HroscDYEa=qD88bn+h zH5+pcCoWs|-i!v>`cL>FaqQ1cNLv}&eoHQ9f2upsAo$%VXrnX_-hv-mf6JQoI^y;#iS2mxhcn~Y;22YMz`ui{)7zc__ah(3Vn@_)(sk>~aC{VufQa_NIQ z%;gMt5*!SdAt5+mLNQq5hor>#cSA_$SB#(s2O}AQ$%Q?KLn8WOza2=H!o9x?5G}hD z>3-p%t*sK>_6?NH?h1~jK0KB4qvVlZ{;}}Kn29Y$o*8AY9jN4kj9Ol}Sy|3h>&U{r z!@tT{@)u9^LdHieuXAq4b0spaw;Wu!K`)e};WAyC0$~Z6g6Lqf%%%`-KrzLuiLv+` zivNHVH0x$6%AoI2F+M{VsBU;a^M4HK))@8Vmt}aN!~&SB)AtG<>Msgam%X=sKglk5Nv3R5hwulji-7w zPj-2-VbZ5HxWi0y15R2D!ayElw+u$4X($|aWSk?pms1M@bD>|#2>8HI+)&1(?TK&Q z4j;)2m5u&h4D8T1q9gPT7K2c~(mO{{kyNO`oyKKG+=f|LuPQM&!(P{yU2{Fe7q*k) zzmKUxfs)t10RYyDQLsB~Z11#SWPmS7IuV@mrU5dN?A-)0 zWt+A60wZ3~rY<8KR`{ttY%~R<$9a+a8Ecv+6|-A<$*Cq;(8I+)!;_{H!y5EtbUw>% z0;M@1F91a<8065ikXg_?;Q*toKz9S<0(=YyHOZ8o)T6VI#?T2 zkMN3un(l7d3_*qMq;PG6FIBfeiwNhcB-ca2MT)l)T=-P1{}Fhlbt^g6)6KtykKJ4F zp$KE4FeG0d&3a{8k4uRM<|66m83+ z$bakYfSA8}li@>TE$mD|M5YQ#`lS}=Ocko;#3GzXDwMQ|L0v|9crcaP!p`$4Aq#tf zPVUo4Zb3wHF6|uX6`M6^U$kQL?pW|&|0nzfs`%rkIk(d~bXT`8)h z7_;eCKH?ya+dl}65GSVezD^Q+5{)N2Ard9A2t#|l zbln$`t^}kjA^7?!4x-^cl=QH@sP3%)F{*yCZVtBkQ2DxA(lpX4qSZwx-)foL>yT@M=N|(kbP*1MevYic+Y9r!9;a`n4C}3(Y?=PY!3V7*KtF0|Jbso0ex4(B3uhRS z(>6c0m?&rObRg-3*uJ9x>3_J3l+Rsc#FEdzCPsI@xu53hiutmJ6LnPE91bc`E$P${ z-RV5^L`7Q4FH^N0i)TAPCAp;wIih*Ld>b^>qkOU1r>`20g{Ig>gS=Kb(y(L5xe;m! zHM1VQ1Nt>!#|Cx72ZKj#G)?|?VNUoXVIE4 zR7t-vfEJWlP%Dl>R{XV`4`3?bz7q|WgHSu?fY23;)SnB0n}HdSrgtd+ZZ8a#IJA@{ zuPq`x4wPrLwtxvq`l5e1$B;3Yi0Q3+?L0?hf7KaFDxhGbm?vU^Wso8JGM z7w#Q+23)zHp_?MVG$Y{kgD{aU?-CY~Dk;L|SRb|Ee~DE226e`|675ib5|$mcST&#X zzYFjk!E6$p-ijdso1mfkl8&3^!iGf;2yKPJhn5x{;IE(iIdbL{cLRG|5>oj-V|xi- zLC}I+j^+^Z1jB+=jmhO3(@wEE>Wrq-Q@lhK z?o_;RaNHYW+~BTPw<0C1IATGutCXEx$o-f%AM3MMmJT6O|-%*p=M=8s99!Q z&-P@ORs<_JG@P*ub%QpW7M`EbU^Ot@H^5OVt-Gf?Dm5&LnmN3S=^+p8QjbP32g{sV zWk2_G@NDZ&?CZNked76?{^+cA9Lsq>DJP-Q4AZtk>rkC*s3+&Mz02|i^Bg|AG!E}! z%X)<0UD74W#aniHI-nG(z|i8CmfkF~1_y2q-UG)>VtcXkg|UpfpDyESHTxQ^mfHB*>%brMb2sQM!!Qihvy5%o z)9%9i3TTMK+=XQ=Y{Hl}^1*|X#$un-wu&pj5q_df3>cw3%7l{4;IT3lE87eH-7+Et zPnUg&+(n))i#Smx`Ub|melSm}mVxN)?BjMT7I^p&=^3;#r?+BFNYjaw1gktP!FMOJ zjICIy_DcK3waQ>8q7XzS!z2*riSK6gFzji2(N5HO)oVept@T$;mjuslJ*yr*H@Mf0;}WPVAKP8? zG01epcNJuJCHNHu)9f5=>g{ZO;hW=;tuG#}&+L#x=RAZ-C)oPTMmbwwr zE)%ZH(Dzh7mII;-4PSA-d)SnfG-WJpIx8evw@p^4_SJU0iPVJuM>ed7UH(5|Bklhn zEsU*G8dJ%!vHt|!qH%;ftVQFURu(5tLC{j)%Hj(e`ZK*ae#~=vlIv%rNR2^XcWUjW z7f$Ax+XDK=YuNs2B@CXUNK%hKr^}anUOW$uxdUZt^cF5p{ID35#2F8+V#Fh!FBxO{ z;C{Gl7^o7DIm3o=G*f#ydNS3^HOK!Cq?LLM*8sSiO;YFtZD|;CWgW5=zXMFY?m%o9 zNhe^v&>1mfLBw^awjD@lBF-srRdqzJ5Tj_E_SH+3r7S1z1D_U35wbEJ(n9&7;?F6Y z)6f7~S1FQfjc}p*NL(nNzn9Ow)!#^+(fTk(E_YNb%x+kt423TzMClw$AS-ls6>CcIq-u(F-4Kp2*P&G9Es|DP z>Ri#$0shDkCLZXbp;t?UMCFvlRH~Y9M(W%F#{D}@(wvLLJ0iXYD%{#+jyM}5yUn1m;o(ZN3E6M zLfx1XLh3l@#;&S4qeLx;>6~?fsr$XgENAerjiqld*QQF?Ai_gJXD<`WMFVf$ZygR|y>v zz5V=P%fB2c#^zixT8nudDr}3+|221?&@5%su7jF_SVS<_h|eSNIeHt9r>SHcOY?9c z#`(bi4MhbThF)$&`T8Jj*eem8h;}+X5+AXglr zmgywX?@vM*QdlUxd&NrUmQ*g@aSoo1#IhNsK`873rJ!Ukdm*%`6gHO?t43L`D8*Ka zaSu1IblQ5Mm75ujb{j`w^FR$^o8ZkCyO8LRx@-qt0Cez0rDrkZ@wJ}dn{2pCie?}4 z%^QzOD+so+|5@IPM&6G9NAh0!|0$1Wsd&DJ=S-BNm)QKypL|daS8|9CdIcH=ItE_6 z4@eB+?fCzRRO@$hSZ#7M(Et2Jcl-8?pJtPhGQ7V#R;w0fZ@944}@dZ8o{xC7ozZ@yi0gvY6%W^ zrOC;w0=~_77d8^R(PqmwhTY&7!0UezPEqg#uO|ve1>evG2#F&p@g+(eK#2`-uyH2W z29y-g%zD@Dl!!*m5>JiuzD$X)h{Ukh)hUsc3W=kBFHx>KNW(^F0%XQ}60}T=aSW20 z7%npb+l?4JJn=e}tSoncW#Zq>IKxV|vp=F+@}47}FVh7J%(gTZzm1)B6>3XZY4b8o zX$jH(SDB&L;9$0t+t zVIEndcFSAzWt1kP=5P)=0cDP%K>UIDrsm<10w|_96za0`UwU!epw@TIAU=l`Ae*hO-yt>12Tq;96!`Q#xMv}NKvj@NEX7Av~ z4!lcn#Qh$AIPAof$^F9Nl(`R{l=(0GLgokjakYMkA3N|7 z!4dbz_z4$%5mE}Tz$e1Q5O#n8{GY->1eA}Ss76r!e)v)TXZVHu&-vqOh1wklCHqVK z*ntBCN8AVT6CTYCc7TBbUkMWf+5v{M0}ST>8je2SHwmzY!T&Rveu2a9l9fRFK{Ih$6}4ny}%iwsSM7fbZ)&(XW^@7$P zxYeLPu3Cil5$Bd~@wVl#XRk+q(p0y6uD1;nlgo?qs#G{}?lZc$%?@;t^mG+BTikAN zz3)oe&aeaB#jgikb7S{{c`-!9gls@8DEN%%Y*bId_fxM7{1c#CK z3kl_k?@@N9yA*sn-9<=4nMf)Z7b{q#9;FYr60Y|vlZPsRKgmP&ACvfg$RxyxZDX-z z)rinqxal}oR41rjTpwJVqdp)}?aSxgT)WWE8G9IUwrF<9Io;x;k_W-}dv_1^{jXd=*S@mW3L z8AcvhwIX@m`#leqOFL%eE4c9vZ zRH^?lnlx5O<2p&A`%FQ)n@nAd7mf+yP9)zjdMsSk zy@#s7St#5A=2AVw%5{>&G+Ep!aQ)B(I_n^kcdBqr6L&g!pZ{~-8NxMF+*#y>3eqW8 ze}4u&SL$ju=}??H=~1#Kiz7WV4n;ag;03{it4-bW#y@)k^y?)H$kazxPC|f#>hzyc}}E z;zV0!--k{ST+{AAzbq?q0<>nAp)9xIw+qtTX%oRadk`XN#tf0C9R2DsitI}G%O!kH z0F66%6Q7y)sDGJtGvg>NF>&+?#*rNn$JLY-9uch6S#oiP)Z#TD<4z{Hjw#=@!D77* zo|47tG^A-6Q4chCIaR=BGe|cOJFpxiG?+SYT`!Lq7^s&<$$Dxu#uPhnGYGgz4{l*u zW)Uya%jc>O2O;7L<67wtL({4-azPlG{%-FDQWYYXwvsVna#w-@mjHzY@5SJWP(vV{ z{%-Gu5*$};KGV5;$Bn0;nX5MIA`r&JD21(EHP(!Yx07=NB*yu${8lZ+hyh>TYFz{W zXtVRux*7l`RQ`zFt2EyL8oWv~!YER*FdfrWNvm{}?@MIrXa;Tn3zH$%FI<+J4m)m1 zu!#I0U}`MN@oN1qOve8$dM^I#lC#6YN#gz_?y$tjIdM5cR1r+M81`r(Gik)JZe7cf zX_URHO(@L%TS6E4L|D$S4(|@#2t|^F|EVZ&n7g$y3OvY>19`X}1_h1AhS7r65V!*l zS|N*{*C?Xrmba861?_9$WBN}9!jD6pxWA-Z|qVqNoa^ zU~H7Y>;is}!-r3v2H^0CL6wi}3K%RmB7R#A)Hz;^jz}1L%l+_`?o_-%3$o=bN;P^g z%h5jS_(o`Wdq|{hhO19Vh_Hu4!YKNY5W?8SG}^LhP>mbUwdlWrK?@uTtsS>f#Mxps zL3-(ddnGzO)X=G8V6H#~;18#H)Ol6q73H-R^;KLDsVF($y7?;H{m_Pcm9AFmMl7Uy zOOZ6Ihmj6UD;}7+2&CFRF zA4?_S7ps~dqh##Y;D0&(9|Z%fMrtrD^*w-*TJ;8gZ@@q57B``x{osEp{`tHS{|pZ{ zIdhBXWc>i027iZf{EvTes-rk*m|Kl5p}SYy#^Oyw)6^&ox^A_kIJv)DWt7nUL7tzL z=hMYqChkV@Ur_wbP`9cU_Z{)69e-tAl6pTOwOgFJt>2Y(ZuM!xm347yZZh4gQs_?e z(0_Fy-7b=n*YX)^<@nrjZgpW|YB#r+SyO;T4+ykvZmx?s#Dm{qJ4D=) zK1|Palw^{+V{n(zNW(~m-B3dReaNF*l?vyP2F5a>kn*2JS-DkOC89D7HP)}rBBLiO1NYW%jCM; zpM6Q{++lPF_NSZG?`NM|J%fB97ZYccC#g$EGR^6|n7f$+W|YUNNy$qZ+$slk0r}nN zf8$WP2P7|R`qIC9sZcBEZbkjN)f(i^tv-@kzNGx2nW(`b^eL2FG&C&j=T;pe^Xg$s z`=P#24sq(ae8x3Gc%lc9zp|34I(Z~ZY3Niw-!`br=p;3C;yjdmg~%yGc|M}b(9qrL z9poiR{k?{D7wE-M%j;NT=M1HLd>Uo`NAmkr_Zj7nsFNhrQ<9Pgk#dyMD3;Z&<5)iP z`_S!)Qc6<&>seM$H&McdsdST3O6*JCG`bu!*xPGM$Bb_bp#}Lwj*1uBTQiB`FwT?H z88l{m1;&_keETa!HPn)pgm2X?25n^?QI^WX-A5^^J#ozVR-j&jCJ5?+FJ>$Ttq@Wg zRX4mlN3^eoC?6|8#_;4oqF%5m5}hrm5Gzrl&t{E54=KYrexj+8vNClxa+0D(i%g$t zmZ9Wt1!Klvt483yV{(3-K$&BR5Z~EIOC!GBdZlUy8rh5Jc#KWt9Ou#KMnRXP5S^;l z3TjFw`ipvi-#t@P>lwp2YOB!vnWP1Pn3h$u&l%9JTGci|8ykq)WYMM>xF_2&%OtJbOALQ5^ZbU>qe65qKaXX^AzA>}E2 z$%yD5*+hTGcX5cu=Mg=F8|H}`ClEc0bv)6JeTjD9##f>r#t{7zckK~vpGmY+c?BIW zoX_K3VbXSjbEVpax7~=63z?Q(IPU|fG6xfV4a+=fwdF+7)|u8~pkqf7d91U*m!hI) z5T#k?3FoHzOOd|}t4+`laP9%RO3=9cO9ynvJPoxw8HNrmpxwQtgWyxP)N*iY#lyJ*|8i5W8XL4a{?s_%d%C%V%uX|f_ z(Xy;UK`#s;@>_#!M)B{0*4%5=xzwAKjf2@6uA zI%M4?s8-N-*4?&^l6V2e_iNRU*1fiqm!guok@Ev6=8yh6tX()Y+OZG-V z<>nh5t*F0i)yekHkb)gGL1z+$YI=dtQk2faMYhXfi`02oWV;1jC^>4g zV+8HP;u^ifjuoU+eW{%&=u|1C%j^_EIuDoI>4J{nFjS+u%FYtBLGpKv-Br`1T&}ab z33^FNV!7SJvEi@taD$yIG^ec2lIl%%KS9f+Ztu7I3)1a#vprCdZXplbg9YUZ=N5aYpzV^fNA2M#>bshD z^tRN&w5g6;-8ufn-p~P3>294>8-*(&2R{@8tz*b;_}uAv6Yk2?H^Ki)#XE3+$leQ| z(jK)@mYP!g8GJq&c%XNldbezTXCoRP_xwe{A|UIDdmr zp30nE=@dbi8w>Y^@l)Zx3jWFM4`i%&WvbFazxK{l8RF)O`zWrh$yE15Omp*wme-Os15LP@6N+zht`uB8t3q&or6;AvuwoQcx5 z)aAWb!TqjJE$&Er6!mMVtB|%lRXX?|crL17njai=KWgecA0?b!S{s$8UY44=qp44< zrEcs=2^)LvinG)|dcF+zou047RjPLfe+&2X!SV5x>W9Gva9u+N#{ZuG_nhH8;nZL` zSXsxS1YYV&_Y-lyPv`T9G`c5>dpLv7mGV3h?&S7!GuOL3YH0Qe-XitR?33aCqoEvb zb?q6T4#;ASuSlo+Mi;u%)97xO=V!a}d5yT2i+i!Okf()bMs_*gpxM&khkIcG-S)9` zzs;uGQ=X%z@wrjl+KGHlt*84!8r?@``;pp$jB>bHkUXRPB&1}9q+v$;R`EFvK9y?a zuoJ-lOz#%B7go@HJcsVL*>oFybl-tbrSgqDA8CFio$c^3aSO8eTo2b$;|8~R^Hl$8 zwgKPZm3YpV=an@N;`ugd8z&Fkf#-elJh$l`JTDQR^J*yJpZ&gv&;3F@b?|@jJRMZG znuMO^R@Yb3y>13M7rWXf-bxkeKV~vc; zU+*eXkCl@DvC?;X7paNU=>NcoB!qoI>h7^pK0j8v-Zi8BK9t+!_J^dVu9X_R8Z|Px zJs{6_OU+&=^>wcJ+%KHJ%JUeZ-XwMUrnnD_w7<#oN(uF;@UOvhok|&N_o-8v1$1MM zp?iKF-MA5S*VNJdA(!r_W9W99PWP;Gx-U*Td&Ugq_j87j-eCeV6otH0dKQ zxWT^g!SvfuCTIHS9@m?072E<-hHM)%+FRiksm}^lL-H#Xe6C4n>20aI8>PAcEg>W= zX9IY2`7>;h>KJ_+e1_(3Kzek3Wgf(s{2;;($aom;F;IBri+(_rca94DD1CrNgvIMFy{=3zd zG3-+X6W@`P(EV-rKJaX>W=h_Ji!o}>RHss%&}+S`QcV%}sREgO=Jd<9)WjLb!%ZFX zEk^0escZ>b!9ThEcIhu=$nWI#b{W&2kmnp}^Yf1R45j*YZ@Ni6=%)0gyR_mn#Csun z$Bg#N;kxl9kAq0nuf4y8yI1hSum-v&HrL+{K(1SON#T9)x>V2Hm0J9xLvn zX-E}#n9f06)8NKs(w&q|_nY)IZzeW9??x;oUAhrbh-O>lVVEm8ZVx-V;7U zrH@bUlMe~L;l1JG8qToQgDT)NNZchd#y&ol_1HAJC;VrPtpVp<-G}0NA4<}dEP3|r^<7TxVzw!i35@tH7{TIj9l5tf=K<&!=6 zB9zAAUYEn&C2mR64S4=SMxpg%nUW``vX%aR?CLKv^@ykI<(Juvw<4A9c{3{!>Kt(| z9LJuxuz;>t+*?MTYPnTRf7WL3`AqoCnzah`zA-VUu+x8C$bZ=}yW&V4A4dJxQPk^? zd0BWa3*#xbgOarb&GYfh*M#%A!k~_{ZLp2D-KB!=tOmMg4WK)yk#1LL%XO+C?Kafi zBlc>f{QUg;;3f^CR#oSGxl-}{8i>5(-AZRW3NjnHSt)9s%}SEoN*=CZMW z%$YQZJ)&k7%ja#G2epKs#!-&b|9h`nUC}!U=?wSRp?XRv&W1q=8xzyOdCN$SLihIR zf@i0Z?w|RDr+HdFWBI*Lc)XuaKRPAa=lAKnA7d|Tt*|6hee5bO;d2e1mpR37zmL^E z{ftkrO*DB^ zM$yeubf;Mp;GSvEhPxn^?(HtR$H&c=@?l&3pxhsN)^)l_M)g}pl6t$0>a!-E51x&Q zi{LI5A59JC(VQR39H;${VD-dMi$n4?k9I4@E`@)y%y-*oVJ=&qLM z3*oXhF{3Gtfo?NLe4KJMB$Onv4IfCRd$Np^n)BFWI5wW#!0~Wn;!3HD+mZJhthI0} zVmHA(koXwfM?KHNeI}Vchi$rRLB)Jm$*@}5XEMf)8q3)A%)2r1W$>))(aED*@4J}I zgFJe6{$ZTEcv3FR32JGV%ZGA@-~x@*A+PKg%oqm#Pve$XX?c3AiH&H#E}(0(8b z=PW+goRZF1zOG0Q9FIO;O3}c0nx9S$G|3 zt48YYh0x+qKN6q1I*;f@jbh$wO1DzgL5&b@KHeW}hXqYxujQeEXX34kErOP+odeIs z`(8VWNz>)hm5=!ANK8(@2((EhL`x(`UDa$sOv_*Gu4=wUFgVo7O^+9v4wF4qpd21jLf8`_H#mjmIHpKzYn z^XAfg^?^Z4LF=V9$!^pN_4Cv_aH~p6U(LCw?^>X_23?nWFK!}OZBQU}b7_$pQlU8u z#ynQqTk&2&rscdb&)_xRod#8bR;msg)Nk6$rRA!iQgc>JdkdE&OfqP~gngw|>H>rM zPuO2tqgERfRq-|6>D+11H+_F7^{GP!y*KMfX@7;F5_@~kn6iOtfk97>NG%(zR)tV@ z*$}lggr-F`s=XmJCu*o%kjy+hIbvSaF!>axMyEs#S4}vSr_otaBh*R$%!7}2M!NgXoC-?y@CteV7Q?ueoPxPE05)WQ(zQ#MiED@fPh6tzWAM=aa? z6t%}7w)rX8ji;23Sho2os(Yq4~A zWz*F7I)+=SW{$UTKiGVO&gmZ$J6*kK&`q96Wi!-pInl6G?X8cAovF48TC9>AXP3=V z?;G0teNQTzqf&fY=9v@DE}N@n30kbK?0#|CacVDLZbCo0VZxPV^VB9DHvn2R;q{Ue z)owvc)yw6UI!XC(2Ae5+anP-0C#iXYIxLQZ^VJoG_UptoW%Jb@gLY@%Q+Bf2M#DS8 zeVqMJ*=g!~*!fXrR$1SzWv8pr?qM2TjaTWqjq4wa+N`idFfWO zI%Lq5eJ`||Rm@0F@#QhG7pTJqJ>Td1vJ2I;F`9N~frXva^sypSahwmR z)f&Zk^NL~uYP~@x^&{GBkS(;Wf)>YQYza%_jw*Wx2|y#J5s$ky;Xgpks48uZY@>0Jc^APn~zhsOVtuVi`DBho{L$knkHyk zf1FvlLaj3BKYb3xT%q<%Bu&@fH7a8gk*>dMRj#0=>Z5)mW3N?vLg=#OW$LF8`X=#u zwRJMXEmhz5n-X_}N|~b3L;c2Q{8cS6Xl=jE={Kvrf^-Zk)mc+D=lM+*?i)X(5%Ncr zGL5tq>PN3#zEYKjP#2=jquLGaRL@6oYt)sRhLjDq*QzaoIuu*$ zJ?gaSOs8(i_ozb#vF+ZgQf830-@3BzU*hjo3k2!$>^^m?Af1Q%)LKD05BI5!hQ>T> zP>&cI^RPi}Gc@L5quOC;%)>_YlBOY@Ut62hAwfEw52_1hcBb<|^|?VzCtk#w)tS!C zYK|bC&WF`Sf^<3`R+k9U>3mpSZD>sABkHe)#&kZSR%sg2@~GN^T^=1f%j{9rWp-y; z9#snrVp<+k%LVB&drZ9{NT=m-bx_a>HNU>N{Be~shf-FkQ!^{dpD_9a#~19nsJTMZ z;ht1a2_mho{7JP(P=^{ma&Y-mD*YIpmY2##mH%D!7DUdmKtn=kO8GNtq2Xk>9cpt} zxDNGfh;wdvhx#Cdrj+kg1#@)_4EKVXWDw(fNu4B!@vSL)Ni7hxBIcd(Czrpht}y7+ z@n@F5qE>69ZYw^ge7Bl=EM@Bay{--k(o$YmhXr*gmggI)<~VY$P)WIq%HL4a1nF>Z zs)pl9TN<+g^WU55a)X}1hoj$AH)@2G#l*hFubbhoLzU+)E`M8HV9;&FSCzk`ZZzn< z(woZns_rL}bEz6T{jTy4Rqja|)lYx0{1cThU!zC+yitBo-FUJ_=THAn`L}BQDMX9a z)zjnp{-B1Os%i75XZ8JAZ9PrXtTB~+|Enra*XXCh;eD0WbcW`97_*aY6`ZNj{%JG% z+SarXI;pQ?EeWBvzHVz%2(9j$U~NBJhZ|YZ(Kp3f?$!)VT`Qr4{if&dxOAz(0=xOaX=s$U* zDvB)Extexd#cUYrx}2v`g>O$(xz!Ltvn%>q+YPG0_*rdDI$v`>kbQbZwY4CG7FOW? zmkTuQqrB5A23m(h=(37NYxqT^b*Phl%PNLj7Z~(-&a#S8R{A2+7OTgyS5=I$_6X`w z8NKhR7-uDLBN#P3c*x@wldP1BHRt=eyDFwy7qk;~sHS7mt?AZsK|3&SX5b{sv`a`^ ztkPrmRLro>Ht3baJry&ps|B$o|Epq_wJL=6SIoAy2wI`ut9YyQ7;Cpd%_F|4IM&or zhs8d2ob{6qr@ks1Tt3fQcPZoRu-M~Hw6+Rbsy-FuUP2n<`@Z5tt3Z$*8RlE38N_g> zSb-4dFBPX)n?uN5d7Aa#uyAKuDVK>%b<+S()*7u2CB({H(#24l~z z^jo^)XxAL#hF)-YvR)axI=VjI;K}%z%k9jTXGHanh=T9t(xy-s*Bc!Fe@-k~@ z2o0*d!dh@;r_5`t4+O1HUrc?+xz38YinJ9fIcsd?a;w6i0jbj}Z?Gl`>agCMdVJ+g z*0~0qH0Joq71nJA4H+}I{AO#DMpB-)Snmm9xtv^ii}ig7xhrq8hF;y7mOHGu1~GrD zt&0RP+}V|@t!qNaUAfkJB`n2i1Do{d)#s@(=^TqPgt{- z3&PxSUgcBP0)svs-&*;!b%jB%%~?|UcWb>t`+%OYUKFJDmuGP(fKs&1u*32S(zC@5 zE9C~#7ROvS^Lc2DLj(nBn*}jt*H!MY8g3#dRzxFLRX%6UH|X1un<`(ht~ba%>dDHN ztxX1XZ`)&RT84 z)t6U&V_j*`rS&yHs|?yPZ9vr_D`Ac1+%au>)pyo>gZ?|MwdyA;Wv!;I?6bV;S8KjO zQ+z*E9TSa_m_KJ)X0zD&F2CXtBCE=gX=z z`zJ#?+4p5trakv=9d1_dw=28aDfej9XZnv-J?w;gHF_=2U7cr7GU$zIUsm<9+XXFF z*`t!Hi|jWHZAkAf)xGV8^*Y>dMO~_k?O6u(>0MY|X0J2otD>svO8X6iG7x*c{mBL$ zjx)jlJ7$wcw@iDyVvxP*ej=^;H`<>(AT+cW>}}e7MyrdenN5`YpdgE>?xa04a(Fe~ zij=>OsDpFd)x&K)Gj~|sM~tl=8KRxt^LaJO9%rQdQZl1@l)X*RQq{lWl^?<>kOivHQj#0AnI8&?L!7p z&zfWJ-a;vQ);``oY*3%+%PLN^eSg!m_b}sbl!6?D)zyyStzj&^*#>F1A-1bl1qDnoI4S20c+xU$fLM-NtY$RA&CL zn#=8tg7nCKmA%c-ZYzDqx!U$Ur8#dJy{P-x*=YYgqRIa6wu z*}Dze2XwvNaQVDB}EZT9xgvyGbJ%8TQ-r1nGL; zZ@(^x>HM)~zx_i9S+$?rU0$S=6>3f1u$lw*xR;2?nOOU^y;>t_1>f50Wud9-Ml?lz zXEzAa?ejZ(wV)L$FFm97JNq@w2`Sk?u2+IGZ>jmgKB$q%{K;;5l{78o=TJS&=-#DU zC%S9ur`f*-X^CCx;=3IQp+KFd+i!NmYrz<>2j(<|P!!O#5Gt>=op~V?o9#HO1YNIg zEPN+B%K6@)lEQywyPbKjQ|98BsyUZrM?0$xIy8MH&>le_THS_Thi_RNHt6d{qTDwa z?nCRD#v6f#8#JTw@yuxFG(r0<<|x{E%+Su6x=zJ8yA915AEgqVnl~wBe=KvGd1f9*!)arPTDx^6SBPX19N>$h%?s&vQomPoN!o|(>IK_6Q6-Je!noau&k z8}0?kb`}^ke)cy&%MIsGuu6AxHft1nN7?hLyR$=c#vYhWw8zkPqv3RSeiF1)^_gwQ zcX!sktz$o{>>Jg?iQPl=p*6njb=A}9u2F2#$d^=((;$es{Z~|uGuNO%-J>ek*Zowp6jt9x4Ya=y~YifedZ;rn0jNPMx}3+e6T3i>d%0pn6{r^cYDsh?=c1~rN&t$ zXlcwzmCvghXRASPjeRYu#`(aYlxd^NYn+6=47W6!3%0@oOVGg zRI~RypmhfA>V0u-t+U;ruHNfveatkK?)PTef$6N4U@lvp>%S^kNpUD-Fi?igpc zAU)d5b>91wG+nxLoi6)@Gp6e?UF+sL>or0;djK8Q2$sb3y5pU>pOI5bnddAQv@~WJ zY=`rl?HVE6=(2fE!x!XStd1Y|L*)t1iw86sJ+8R!BxmkHjV|>JsGINnWYE~u0d=Q1 zH-4pQ+-*6{+48kU*^`FVo#v=-h?dGMbA~g@pi$n3s?Koc8+6W$DRpN$9~iWI!e8pn zcCI?4!^Qb7t2@V8DQK~pKI59YX6LX$4^OzIZlP22osRF-`n&4Rb5@1Wrn>W;or0FC z8N)4gp;Pg1Epw-!+#iTmsAI7Ue4#V^M=j+9@1CfOoXtOL&iBC?aNZEKShdc0v@YP( z{Hi(Ubl+ar>TEfz(cgP-uWNIB|JBIf{n5IMo$rrm^gPgFXZvqNOO-t?LtW||#90WU zz1^RyTjE?`Y4rN&_v)^2w%SCC)u-62yV^-`5nZaT8~9}%P_(9vsrtU|T4#|#HzS?P zoJFyu>A8QIlM+Xy+siViyP(Bt0?rRFbHY~z%bev2 z`KuF?s5z;>tZ>#DME&I!XI7G?QAfGmS#1z?lslX)f>x*pa-I4+9KCX53^>c|G$ePX z^G;{CAkyOM?{rd9NL!(X&GOW*ab6UpbF|i3z!#@v?$54Y>m;NJg8q_Uzs{Lw&=s>v z>hE!GH0VU2_0C~jL&TE5VBo;|4bI#Qjd*p=CT9{(iLm5X51ClM$=PGj>}j*>A8>rQ z5`*D}RY7xfw)fQNo66%sTaFv381D8WfBnPGH3gdXSNv{q4&h`5Y1y!JZ*fk;elO9& z9d)$T)W77U z;1dl%QqwOv^CM7rD|pFyLTHz&X=u?eMYNEYoZTVX7e~=vc4A>9XYW`MZ>g6f!oBPi z7}~VxM~|ZIcIJnL+Z_>Zx3eS^?rSTO_PX;zSh&|C!oBVs3WXbNN7CMQ2BY?a>3rKc zLy&ICZ%0UZ+d0p0ZnJmQzwKNnh$Z++{hkQU_ni9;=h@LI>OJQl25m-3?2X{u>%3)X z+oNA8i=@5p95l3#& z2+nVu21C0C@qOcf4e#5ty);>e4C=7%&%dYayAWER|6M)5RY%Sa>yG?~%6^HE`KzJM4U5X#1la-{A<_f1MOubX>< zZxJ-*y57(ZL_bueT;bz{<=PZRvm$7=Yp0?8BkFZ!N6;LXZ;(#eqe!(AL36q08(I=_ z>x!U7xt1GR<xS6+v^mwi(*B(S<&D1TEUN*U);n9bdF7doW|yEjcEFGsaaUv`f`N z*E{twE?*dDYy@YlYq;TD>AX`P>zZNEe`DXNk8_vxAAzEEjxi2Y1%TwjPWY>L$^Ej*4m*VO$=v=$O=W)Gi&_%Hg zzSI!yURQ%J&9&FiPLCVrOOHrPhU*hUTNAUrE+c}L>H68w-j3d0ml;9JItnEX(e=I! zeJsn>*Pv&U4%ByX%`vDnOoK1mb(29epbd44;OyqQ&(P}8r@OhH zHYgeKb$7jP(0s(#BO+W+*XM@zWL$%PuZ~g{J#hS%l0o*JcxLl{MK{=6cnj{;^|xeO(6(`cL99 zz6#e*25tA8ZKB>a+Mr*f#`t^@oc&x24eb}i&@Y14-*ttd9YEdocdamJ7h3Xw2+juA zIz#(Q!Wdse1Z|+}pN6*IeTHwK>n(%MjK9z~D1^>Uy3og)nQ*qc|NrjZT}YmX`_jE_ z4&9GN&|NcAyD2HQdTo44ii0;J=rg63_d_KO;yiU~IeiW`(dXSV@@St=2GZxX@#OiX zA|=IT{4-~hKe3W7pMyMFa(V^*>Dubm8a}TYN_U#1ZOvpp{~|p1H1JuwObKq1oJF7D zGgI<{#1-@jr~bcru0f2(@2tN z*mcQ|lo+3wNX}m*4f?sHk)ejewN(Bz#)Z2;@yxS_wmJ!;K`1}K03-2j(`hU}% zKB&=dlDHkX%|C?1;G`* z;)Snwt@{0Zo^#H;?@XqJ^}B!ln$9!lea>@k&v~BbJm>PB@$l9XF}f`tq^HO&8Wv)H1)sbdYVuP?;g zwg=m#!)Hr7OY}%Cu2!{ZOQ{@+(~{?;JXx5Z-kl(ux*3Y$vDYF(xk z3gInm-l)eObkx5!u&>|JLVI$-0+vpRa`8?aF`v4My-b?0(D1!EO4?TzQ_`Llsn!xp zyeDZxk~WOA%q;<#cae(qp8#R@pYuxx{Ns!&s3~o5Wg6)mS$#HYXo!fl#bOk z>6BCp=Q8JDeTp$5ywk_}u!el|j=UYmXi^Rivs_J28c%3KVv%5hVfS1~TZkw9*;8qo zX2&dYBP%*p8t>PNd6uTJ@^&l6Q_ti^TY<3>GUh?Xm{w!_Ua%O_(AtomG@i6Bq<&_s z5b@-&##;-ft&O%?L4DDqywrw6vtkD z4PQOwt8GiETKV<2wJmO=ZI`Z(rVm=tprkSEs%nvnU|5ek+t<>5{u0&|7FE0v+EpzZ zp8CyZTA0T!p`=k-T)}t-qb=}EeFw!Dj3!_p^$InGwT*s-^0klH?NCFuKzcB@?7Vjy+m#6 z&c@*vcC&Tlv$b-X-p4!e=q%5zlX2+-H?k+xVg*+`Z5_Ttyryk4<^q%%S1o~;>zMIfkL*F{OR1Ii z!Z{K76SVDGf3?2&x=^auW^%r`?N(D};`L}%C`)XG=IvtfTXN_f%OA~$zuC<8o)P?i zY@x-t7(DTC&kQO5F~-pQ{z$bTcM-U~D{e?H_ zMe_X|EahIz3tTftW_mM{0g`vGuELL>qbBD|-87zl z8rE~_nL|sIx#<;~AIjY7JotEy3WoKHjb0t1XMz=sYgS-W~kTw^o&fm zl;ghT0N3JN+&aRxaPEw`xyB`7k=wyy!LRe7A+=p)w@M*{V?YE zB{3oO+#a?_=c899sTUsZO(I^eh3eJFss+S+Ug$OaLLjU$+HUCZagqNZeK4$JKfH~3 zY8Z^w^PnxLgR6R*rH07Ou3qYyh@R1C&zYEzczt2TRCZpY=MiUvGfO-hrN;Xl#;s*} zZWn4?Q2VOavnF~*HWPk9G?BWj{mDY8>FFoyG0{Se_vOKIZ)X0VpT)Evts~Se)nVH6!ihKWt&uvUMlKoB3~o-SR}XgqC*ZM#mTrNu%|B{8Q=;x3yhRfF#+J`MQH zR=>v&Y5ZQz#peP%uf^wLe74{Q^DSxo!_`?7T_j)ujzFcIQtY& z@jBj_E{3~SuXFBHA7APq)$Y|V;^jP^#u$>cL%3Dx5W?k`9dRB}zh8P3;dtal+-^ad z8-?aZp}7$>4*cuO_Q%cx5_?=?k4x-v#IALZBX+C%sKh>^ zu2}w6^@u88JLux>61-zx@6G9YvwM&5`3ZIBN(aBI!h3w4l(w7}K0K+OxcWh0czeqd zZ`s9PbWbbZ?sKQRXE=)g$K*BJJDv z{%vT=l;W&^1o+u&zXUQs}^vCE^(Q|6Y7P{KSx@g*l$OlZ8!EIlOEb+d-=WBq=F8)TO z9`(f7FK|fUuyFD|X~l0)lb=O?2oG-;9!_|7EEz4o-C44CopX!S^Dg0JyR>fF;eFuK z4(|h>c6cB7w8Q(rrybq_KJD-h@M(v4gHJoW8+_W~P2kfG?*N~6c<=YL^GVzUKJD5|B%PKe5M`pXWHQ%Jkt(u>6vzTugc0pK0eZoLfEa@RpoMrG}3>yqEG(ho=-zN?%NPf4ls#iV1JY zRX?gYC35nl^!RDv?P=lalfu>G4)4%8ArgB+df|EL1=a*sPH0XD&re8MF9B|Ke-8Mt zI^*!Z^fM0cOF!fAzVtH=?@K@9@MfGd4)0|-yIpgsDoHGt@QxCbVOWdk6 z4sUWf09`&`z1pUax>b6MwoF6+F{Wu5oAtnEIRwcY2kp8H(Z zbDzr^?sHkgeJ;xylH7(Qw;{=ANb(ty9EK!^A<1D#au||Sce?Y}{LCE*(d-XidJfp-aPgr@)4xy7YDxefgiR?~u?mbCTW z&DTb19&kD090#7ZJs#gvbHapcy2ooyDazF;MJa`iTKe9ahotvU$++;SP{tu|KdEVw zvYHe*)1=6gCPi-CE~VcNFJ-89!kfEutoC+zDG#e#1l}mIH%j;}2|plt-eqEGQE$W; zdU4rFmsa$YODlTPrTx6or8T=tVxN@Q(-O=2+&b$?p}9+FT2QyGZcg&gNzOT!Z&~Hw zHGMangCE5(OL<=Mc}enlUUJAu4yQ2hn+6~F>j0B0KGd@gG%V|sqQ#3lylpGwafEG`QclTlF~mi3It4TB{_l-f&smSwJso<{yKLR? zoVdpx+2?V5j2p;u_o0T5%o#!r*Ez#d!$$ApOVMir_jy0*ykzb$`mQf>qtM_jBJ}Bv z(u#f3ihU>%wbD>*T1Z;7%l*~)Z=1`~-!*p{J@VPPx1g-|s@o->yCh71APmppO`B8m zVh;W4m*H1D4gcq}E050GE4}j@?^kOsaHb{y2c&h!0jC{Z!*| zk6b$LQKF7}92qw%a_j_J^e`ydBacdtoYXy{bxm4Ck7dF=C1tI5x)$6QJtb{Ch5TQ{ zJm-%az6#j7V4rtN_H#DD@nxFRge&$P3?rEvR^V0SZ za(-C7Lq*8}pc%9o_=&kG-35{Q~WmQEYUHw<5rnw<9dR^(~P`LxHk3!fKhVV>Vb8+HD? zF}@=7uB8dY{-iStNI85S^h33esL^E;?j!2)&4ca|=U*TR)gh*B483#puNKS?v3IJ` zQfO<4lDx!wc2B&CzSA{;-`@i$H1KQ}9cpS4O8OGtDqrFp-}A<%dhcIp=SBBdg&t{p zv}v`rs3F#ESp1^ZVqNcaIWM>ilslak>Rr?xqTW5? z?q4;us5SJ1?ysuW5WU|=+|3uiVG(C2lZ)0nKZMln4V|oc`=S$&hn-HRV`9}xU;!Jkx=;ZurtE}l}nU6F0MeenrHPtM>M+R!^qVnt8Nobja0&>xkyoHUUA z{;2f+sSx>g3axt)7)srflG|y~nny#l&(90yCBd8&%qaueuDJBVsSqvmqo8!uNr9&X z{@g&`<^J;!?{z;D;=KOnA-;!nCdAo&D9nDW4vU0`d9QnQn3UCF-qYR~CVh37^o?Q8 z^qWBcuxb(d7SP|iyhZ3+guW%rd)-${suoGL8mYePY(%ObJ6j~x7Nq*8=m;um652!C9Cazz9;2;Q=y8oy-tR=`Kq z?SNlWcOv$r`YXW4)%yUSQTGBquRa7g&tX1I4#UmPCjncW6M)MFzsmUx%33esO$bNT zh=d;(_*Lic5PM3}enZkeDQUm$u$0pdOL@k51n_z1i-0dUkD<0NIgg{B%KZgk$o=(- zs0zCuMY!Dk9l{k7u6AGRMe(a|#MilhK-zluGbP9R*{uX@ zaccn2ck5QVYK@x)yi{N-U_@Q*HUP6%!u#A?ki&j=4)8#>ddyj{TT_u_y<-X6fi-Zg;3-gTh46*T4QHg6K)cOo2B zcMH5n;9pDZeTXerAM*Yl@FO03?c)MJ=j}(TM}+bV0>2Dcp-y^9;GaO)Rp0bR5PlZn za=fp_d|pI8QS~FCe_7z~1%^YUUlSSuCocy?JwtC`JwxQiScsg-g&F|w2yF$;okDY0 z=oiTO?ht$ML81H{D8uR-hz+YJLur)wLWpwmQt0}X73!yESe*#J5AfSz zmU}v!27D&`*MQH5KLGeb_&%iiX_zhgd6+Hwb(k$W6J}4%j*#>71+EgfN#H|(DO0~{yh?&u3$~>tzfwiRIuC!E2x#9lGqax`#Fhy6tU=i z!G9kRbpwp3ipn=2x6VrD+*`@q;+3>8y9IxBB~$H1EcCR7uwLL2fy)J63h1iqYA9W| z3g$L}9~bzLz|RQ$I-sj+YDu}OmL*Qreg^VWGb_DvEq=@PLo3!|m3_mdYjLmn7Qkid zTEGj`5a0%N4Dhw;Bw(BR8sL@cyMX=bmw?v_eo){MweYgFxc_*^Wu9}hy6&<;hdJNx z{-ru}*<*kYT=pE`|GMm%F!A^WdcfAmn*_c?#V@-#!c_MQoGfSTAZ{uC(2AP{-Y@XW z29o|U2|sHfG0#cZsbngrk{D0IOAI7tnS|Q}4hp|}VJv&q@&bUU{?f9K$CJ@;n!t?qmAE3N zqu!MFDesrw>QGu7ePwIqb(M+AcUFF+@`cLosuNX@Ry|quovIhA-0Je`>gxLHMb+!7KT`cr z^=GS}s;;hCR&z(qy)_TkJW=zlnm^W5)Hc_?rS@I557s_X`wz8u%(`dR7iWEE*2}Z@ z)Q#1>yY3TpC+eQ4``>lHsGD1VY5n)=U#R~-^}nqzk1mO>iCz)i5$%d5qHl?9a~r!t8&W{j1sY=d{lmoHIV>jycnFo}1&& zT{|~6ch}s(xo?=8oqOZlyXQ{Ny?^dU=RP#|%X1%}`=hzPnfu4N;d%A*7S6kP-WBtD z=3O%{J@0Mv-aYSw^FBH6GxI(_?}>T8oEMs3HGlT}%jZwdzjgk5=13qHNz zOAEfa;JF3AUr^CBziC<1g-us9wKa7$?QfcFI@$EArmBT43)>bRUHI;W(+fYd@QVw_ z7TvMv(~F*6^y@{D#fulOT73E9?Te2rzGv}2FaGx8tDEm>{y_7`nol{$`Qo@^Mqyk#nazjFLlU`L=5JFv6xSBJlP?8IV>R`ak6 zi{GABi}8ow*uzfh1*!!*rOVZ2Y8Cb@x#N0)+KQ*w;jc~MkgodKx<9`Jzh&I@cEBh4 z2*Uy&6HMLScLDR=oy0G1{7b-_Hoph(-1Jks-Vd5L?_sJ>u6+P-^%7zZT}n7#!aWlH zvy~45^Mh5S`9KZBpPuz`!29Yx4S1yfvnBCC%CAUSH@yB)P`;yw`TxZp=JuVIe*kb<-~avul{cPxcZX@BAI$3mt?vZFX?} zdT>)YpypNWBGNqFR|Cw?I_m-VY+nF)Xg%@&ekE(w7+(&|vGoj}TF-EF>ngzg*Io$t zm#9BZ2;=mIi{GYaKhH)lyXeUZz_}RzUG!@WU=w;9XJygbIJpFmz{T&v&j!2_RIcj8 z?zpSE;3K%ITP+0ag%r5>^@SyX8F&r2gAvfhZ^(w&7q{r>NS~wr2GGSX(QifglYp-J6y(rR4*|OP#rQUap8!OAoesc-&JMs< zCkA+jb0y%NP8T5V{{{R@XBXgqIQ@V>c6KA}PXKWa-`NBBD`zj@ADwG~SMIe4JMMJ| zyMTDt$sGW!bQ6G8?jYbSHwjqh9s*50AWodRDTEsU(J$^1z&Y*+;9NHiIM2Nv@H{sQ zxZE8FT;U!ATa7I)Ki(?9pL-Vo{?c0m z_*?HnKsU4=FcjJVSQgp@SQ)w)ur72dU^Mhvz&WAI0h>Zw0T+c@0b4?CfGa{BfaiyH z0Im+j0M~}D1l%0z0=y*D19(|z7vPpqzdBEyuQsY}@EHGxI;h6b^S@USXTZtg*X`fy zd;ve!rU zMUs&(MxKuRFj7{&y1cJ^fB6mNca(p>d}+lc6>qEfWW^sU>MEC2-c&hVd7|H&xwPbx+lORUfJP|EgY7eM$AM>O<9Us(yF%AFH?4?5H_X^K8xX zS+AY7Yu1rj%j>SFbEE$mJrgZ!_+Z1oH@wvFhlYz9I~s4A-81J+bN+nJ*XBGmXW86s zbH6k9`MGQ7eRP6QsI<;u-;%gVzG=FW$e=PaIl9!jPSh{)X_ND)G>Ag#rEIY4dMa#OD54Zed z%fGh#xMlA0^Ovt%-nRVeNqu=`t2%8e=k0i|2}-E0db59yJ0b| zg1y*-&(-+s#RtDBgSkK*&WALp>tGfB2R;M%?8hg8&jEY}@fpG=iO)gUfJ68k#wUf( z8}K=T&oDkC_>AI{#%Bzl>+#9plZC~|sdZ{xZB|Dyx*UTJ-+<2qK5xY5P59i1&ztf2 zGkk8sXA++&eBOf3&G_7c6F;}&gI^<2Z^h?r_}qri+wpk^KDXoZPJG^l&%5!tL*c+Y z{#B{pmGip>-{g9YI#t8xS>|~bp2^c$>WesErND`GIGLtkNi}`FiLXbzC-^Vo1QzVH zp=&YUE6n$6OuE;Ybgwb#@Ga?9oA}ixezhrgt--Gap84OPns7@fzpq=(=Qo?-)qXf*OdD~ga4qxf6(9`F!%=y{sGetd`mk%Y~nv` z;y-NS@h$P6GyGWYXg)4?G@q9{nveJvx|Jq=CF0qh`(4fdpP27oneR2;y7OwBp-{c^ zj!=X1{?G^Ad&@rNd?K>TeY&C_pQqiS&@OjZP1sA;RN%APdwb1t@6T!*K(pF=zHYVP z>g)SK^Jec8k(==OrTd=^zjS|%&#syuyMN#KOZOeK``tgQUG4pB?rN`U-fC~|yoS&x zB9)4Hzua___j1$Ap_iLJ=w80CT3xfSQVrlcxiAub{h~-Xxp+rc)omQ9Na~U)P|F&E)I55zj%8m^uCfbG*+3ZE@2G#+4>A=873H6M& zr$>{$snJ9DAL~83`HBNJsyOK;owO*!%_Xtx*Gn-)v>QrdHQ^P~~guRJWrZbhzF};p2PG1_kQSvIL-Bc30xg@qE za>J&Q3@C}+q_Jq&W(jGT(#(NWb)qMR^X(J{X}aP{8!Xw&!u!C}^hkd$gFJ+*rD{~N zLhCmRDLE~n{^W3SFxQ>D!S5%sdwV+5mL45NR4P3hPa59qv_+D;QLws6eaVBv$s1Bf zldYpeeMu@-Vdt03V3Wp@N32`x&`?_@Ig}jDr4qy0c)B%*W*!(f@*^a%(G(+7Z%k6a z3=h^{T#5;$u@{x3-B1#{sU&v&C6=x&@wzR!NNJuI`t&7-#z%(|qkczedC?Uq>J*)pwoIaTBuA4O@R|TQZ}IF3q=7Ld8aLqcl_#71d!wN$e(*jnAsSWJflaI53>b9!?H1 zI|xC~XrEm+w8 z+(*HLw!_K6BSjQCSw|+5&J@M?^)e-}LL4N_W7}{tF}i!K<7hH7kvkl~A5K7@hPR=z z(2`6td)Oq9RNoBJTtHPwfA53RPM0<_4<{M;k?@NxPk0$%k??x!m{Ozex z@VXGE8ythF#@OJKLVpL7!|_aFG@B4x5NNc~!k&W%lNsCiOcGMoDwKONiLtSK%-X?R z+EVo;2a~W7+a`=o>naUtW9X~C$LQ3f98bESJdSTC;^XbdhHK z_2b5tp-gsM0pEj>njd}1AdU&_=s7dSbWLG|bZ*HQDP7nV?A?OmbW3RBidlgU>h#et zm*9GL@>t&5(uBtjc7xB*_soP&zO$>ft$%0hdKF(k)A@m~0<6#LBJY4HIA&}l)j3D! z5_#)XOpjqqN}*%*3WK06aWhl=7e}cQb-*BFa+JU;4KgKi!02FdfQd%vTz1_SC4{fS zf|n=`hPMP3HWk=>H;F|kvYv=9GJ}%hoEA^gSkb1m01>oncr4JAy!}GND;XilyT}Nc z?29c3iz#hE5R-mLOt%l>gC|N$&*<<( z0h0Qk$fUAD5$m{q9PSo|O2H;G%)=B8v(BfHk#UaU$<|CJG0~qqGy;oEJpFcj2g)~? z!W1Aml*|ppa>D};PHe7^&`MxN?_~MBT;*9A+ z=$xjDltn%aOqWd`D58|wfviaF1Y-q^N+pOQO#qIHR;&p?zmnMi$*WQW(7h_@16^_J z;rZ?_iCz!%_VLj{e8tBxi^O+qMV3nvsVozzDh9~=vQJiNM04ASx}Mq zz@^?_61^U1&AAPhTO0Bkup!^v4bohYio|c;s3o4?8&!t$tNvsLj%J6MR$R4Fah(G5 zsCdu7M$I97m1;N8XXhG|7PSOk`~H&X^+4;EY_u)em~Y9(d`mV;OE#+H4THnuLrGL~ zqna_7P+f^J=rrTfd8@^e%+0)-YJ~jsZVcN|qn;txp%t;X03>&B2%7Ng|!JvyJ%iZzqmz=Bph`i!b zygQs88Xrzxq56Av$9E32c6Ic{+FDg>XYWqH-Tm>t*3MX~YTFs>ZpF*d@m96117HXC zKl@{?1HG+nvF))o)xW!~t)rv8qg`!pjdkKH*48o5*3%vD>*nk#IH;?oB2$f=nO7^f!JO z1NRWf?POSwNgM=$q^SuEQowLlRfrkL`STzU45mkO84jcwJdouB{jqq*Kxa=|Yv({u zCo9>FcI<5J?(XOu*cQV>cTaa)hwA9->*+(|+dI(8o-1P=YIlD}UpH8*I%C^A;xPnB z9_!vQ&~bHdtgkiBwhG>6SB&rN=MV(sADH65xe);-XL;#+rgXvEHr)^=ngk@40Ys<*YBEGdv2 zKKJeJ?&f#*?k?dGRPj$6kU5sk&j8l41DJ>BSeY*#wJ6hvAVJyJvojv_=Uw--nF~0DC-{>u9 zcaYGuXP`A6?~85QjYjAu=mBm(nx!!T(-A}$YNUxV+$l~?ivu=p>+Cp74uJ&0J`Ym+ zJs-qsjvEY_+TY%5pTJN5N&2U?d#{P?1$$ywqtRExUTC{G040EkXq2&r1vpVXOVq<2 z$Vd00FZwAtc?_!3+t;&0GHe&-!+7uM=m47i*4F{S?vER$3yU?ARC^4X6<08Dy*;t+ z_yADgymDxeFtUC!$kX^PNCZ?wwBYrVr-Yh|cR4T=ryN{nLZ zc*qQ+LxSrcOphgFL*nJx@BuFCaVn%_VKsKJ#~*zqQQLSXgV~|ZNR4A<@gOD$6T@jF z88hE!ugluN}Z!iYwM)@#h?kT^pE~6eK)bx&Xb9^o+*GGo#uw z?@MBPaWFXqU)Rh8i|3Aru}d>t-VH3~sPtK5xPYHwH%iX_lC)kbFDT5Q(xb9Yn;X$BKRLjxVdi7|#Vvc#N!Ol6U{n^K6i z2&VPJXsX>0;*3zQpn(PrEs4*{<`f8yC9-xwlGIXjvx;1@EBnWigW5qKQr&6z?S{n# z!W|?kAxHr^TN}&vPmB&8&ZI}N=Tx%9Ahk?e3sc0h5Wduq>P=*_$sOYe#nbYIRa^N! zMBElx|G47Fz`(Y|;1Q_t_Ed7%pf4(o-cTC7aVFaCWAvxTGlR)e@v=B}w&+wgup3?~ zwccUD+z1EJEN7nZkVlOUd!$9|dgNU#-iC(vPQBa=xDCA$(g zpm~BB4XpPm>~sw2#W1~1qz*vNj-`fjhbhqU!>Me45^nquCT!9_UCG?xv^H&K8_8hw z3Q8evgp2Eku%{+zM)VhzAqR7o%^pizop{;8U zQh+H49(N>j&?*>`B=%!Wu9+le#`4^s%)#Iek6=*iPLn{760&{OpGyow9f?IIIxs4a z6w^YX5IbIk(o_M_z}%Ap#N2i!vWMH!LrIk%ilj(EA=-anCc5{0T#}n>Lb^SZL>A~u za8tz$lhGyci|hk4u;IWmn~aMVFFgpGW1lG~Mi?v#W+0o(j1T5?fBHKwmH>t3#z*Z_ z|InBXX8mB#D2%7YODpWdh?WSYbKeHZM1v^pne>EtI-rplg0LfuSXPi&-U2t3#psIf2+f6=z(ffARX(d@aJ7sXkeEZhqR6umNeSl% zS$P_?L#{mKHCUb?Ir_|nPM02qa^~V`XqfI`F;8MM&2w)iol6g>X^XR>&H`g$dB6$ zCr1)v@ZFPisi0PcyY2LR#wE^lrbVPjZHT-x&S~5DaE{dIv1B5fR8Xgm#NgrGP^97Q z*o4pq+L}s`$&NO5_Vp-e3~=#dS{#vsSgy-a^(=?-d-i#HG@y7tKObjJ7gfZZw#j!a zbIlXdoix>*SAyzAYAr3XsHnR}TESZ7Xl+S0Zvna-rx-ZcDJo!Mz*0F6E zo~23!9MMcXZ5&SQA5Dns1WrQ~LFfCt#@dQ*CH+HVDjhgMrl8k(Ccy~^KIswLkJbFO z?t3wZ_1NoE_lWdx9anp^ehf@}!SOd!&q5s9jG-G=p%8r-Xg{ZHYD{Q+OomDP$FWRm z1luS+V$kZgvV)@9J%+g-Yz!7b@zn+S#-edH*A4+cL=1($H485n4g((baHYfT$phnu z4ka_&GU;Pk4lf$5H$`Bi^doYCX8MoFuN~upY)OI_=;v%ZjvLCJk4}-5lCp=>Q-{VgdM(6Sdu7wYXBot(#sS(-+nzj_fY@}Q%E^q6 z)(n%3D5W<@DC@`DJTXKJ!SnJXFe3O5mZ~j1HjzmkIvj|y;%Cn4mP&)Y>QVnNn{{|t zGt}llid)xyGTXDpYopIycoMpJ~DAtvM~2_FCWfkB@C?m4JBVG(1aL&+Nu)=MJL5;G<-#D3CS zK3aje2ShxFH(DWEZ@sof#6heX@f2lZXadqAgd+*ADPaAi6gIE|L?YTs-Bv!aeRdsD!8Ptr z@$9&<>iKa%aS=lwO7>@j<~g3GQke&R7&aec0_-d(9f|{S%7)Q9S&h{?#P}f&f7_A= z;p<@}$?ya)Dh!{(KKN$?Ij-s~cXy^imNx_P6i>@nXZnyzWDa3P^bn?N80@USr?R>9 z*d8)j^&@mlLNqHlj?BrgUR#*yY-+qey)-VT8Ujyk7+rE$ZNoq<>k-oJoypNdK=S;H z3EBk?QGSDKOAHT=)5i`X#V!~ESZ^!u2BTHNJPhkngmc+FDHNDUVGZ~V+K3?c;R9HA zz<4P3Bmc}PPA319l-awb9kc;%V05O_W0Hf`(smpjLRrX>&$6S+eQfIzx_$$Q_{ZU)>``qO8pKiA1O zm6PpeOfbnw?S{*P83`oJ<1!M+FH3235*`GOCCd~>Fg|aL^avaE2qXl;pujVi5jg*u z;2yY8Kx>EeVG4OP62a;n(DumY%x)GElgAAFSn+9Okqk*Pv!40fhB*Vzd#Kq`CHTAR zCfa(jT$8cp2p)~3P02xsu0-|-R6pP6=D9O9dIVI7VR_baNYU(vqbGQgMLCDDIZvxy zd$k=~B*U)pwMvvg+Io4J*7UK*K zCudWKM(I~bADL0XK5^?c-}$g~;&Z`3bz+pX3%BCAk{k*S z;#}-5#l^t7{Mwnv!q%QGSuktq@jos5b0rNHVGk+(2`$Jcg)~|Y!1!bjw+JFIt{B5uv%_(xEYR@+j+vK?FP!5{-`_X=f^j znFms&5~Gk43>!zqeUD@1aa47s1SxM$^uQa&Be~NL|0;EZL7=|GzaD3`Q0ep`9Qr?; z8q}v9X!jf)&%Azm?_z&jGmV`oY>Yt< z&2Tp(>#VT_+1C8~2AGH$vOv0opM{;%Z08cBbfG%v2QxW;>ib6fmp8@pJStb96KLEBJ#jhZL`lK`d$jJ>0w8?%;1v`1;S?iPM?-by;0YJorS8P z27zHtCgyx!F^KayU`Hu`3^8^(NDg5LKIQ_%rXtA39E=VglIAMPI943&?B-lt3Q%Dc zGw@`^%=#T@A+|M*ry4+FGbd==l^#?$`Q^?lb_kL(FNYD&#ps3eq;(MAnmL41;iEbD z>pchixVzw|v2ir;J{Aig+??#ez%Cu&$6#E5T=>trV*azu&&TMQPwN5tYWb?}Nn}O~ z2OTPSA%;3G^Ne^}x;l|bB9vd>wXFZ|oV;?ap>!F+-CRRuR)nb!s(YMEAeuRXpro6X zV|g~yF*P_=)X1SR)jym}0%AI0TL%y1dL_pu`qSGJ8JWxh9!4;Mg)@I7Hg-W5Z}()( zlUdE!i3wjaqYmpY9B*sOOpN8QIGH($rBw{&N3mU+Q88Wl{Igc_{G*4iOG#mx%$)|ur<$^AnUWhO1=iL(&6*yc$e)8&N6<^zYtQp%bE6f%PstGMi=WP)SD z@VbafjUC;{S-uW#HbDxm2_EF4LSItsig{s=zA?@+%X%voLyN^Zlbegwf0uEIiv zvFgzduTw9bXHuusH7>$qGqVUo0nQdC z9?Y+GZ~}uq5jWpi;ZFXrg* zg>mu-N&-$6y>O`LAg-6SzYHk&bWy?6hJvS!`KN(Ft`{;*2anf4?DZ6&4Ff5ku_ggV zb0-WBx+7#uq;(hw9(K`t2AGbR09O}|ftCW@I+|sWYfn6~Z;!t47z_&Hn3Eim2W(r& zcflSOcc_v>(AoS1N@&dNpb$A|XH7zKNWb|D7Ruvj@|b*&v0S~jE^Sc#hsSg6;O@5M zU;i$bdrHZoe zB*7KN(Y041_Fpx5W#U(ulN1&fm?i}3i=i0KySCQGT?519tu{cu9;>==zKGwD7kNz_ zW>~cz$l9j1rxJ%oxt=wc6-V6IiLTTz-kp|nEVzIYi|W{BFFH<=&%zu9SSyp+^q3hI zW<*mbxCxSv&x;thWpN0>Y&mE3av3kk;QW@4Sgf;$9i%oqvp`ja*~?-hJAc9@fYm(d z&rJ-2M4zMKQ2^aY?t|_Bqy{mmxPa;^0!|#*33Kg13C^p zZPvmyYSbL?!qTHgB+NI(Sa++z2OkirvAtL=HbGAEG%}MorUM6f5Y_5V&>{u&bFFyx zuSj(W!=s@TSJ|er%dF-Z74xYu?ZMFnzNWK%IB_WJPv6Y?f3{$phbNuo8gv#%aW@VO z;O2nhZjcQLzgO}*yT5nADD<{6%6EP0YdWA>$#<>jOl~yw8Nv!>2p-tSaQywL%B3Y zZ0+1;71c}}+^kuzLlv$57dnFZ!o&ds`OLN9Y|tS?)kh&Oa&-rtV7hAY-QC&&%EEEP zMvZoCvOLQkFc5S@0@cuu){1aDPKG!u+=76p!OJQ@85<;cHeQbXZq;PTWnNDC22C`V4PPNgj`lz?xV`a_CA zXY3gyOQ#q5v;go;U(Ed=6gD|mf)PnJ267mPWEBZ0m_O{nA!ZD!#%%#C|6nCizK$d(^jZ`*3o&6aEiYK% z;4K84Lt)!ZPwDJ#vyZ?^7FG_KT)%Gu4kM?W!rm<^X@*Smf-9sBdNH0$_hH(U6N>!fa_wZ!IXqMZZP3~8cW561=Vo_06Aim4Cll%T)(i7*ih2@ zE-Kc_BT*S2O#RjkRo<>N0daX9- zqb@Q38RxR>yH|M{4kBFPG`htz7u>iFV0!shMLu3PG5^RC#mC8G`jfdrgg7_(=pAsB zWUiLS7zZH#T;i2$mB^cqJQ;0T{$T*;Nk_G@%Hz1=QiKY4OX%A?C3c7MVY|YndpM6q zweyxQj}$*5xN)uyWBQPfMw))@+-#f3BTZ`q7|F$WBLOryE7mNZRI|PiHz$2 zh^sK5))=k_amOKmvga`hJw8niN6??rorRzjI#b|1>b#(NX0_8+WfU{~ac*L1t6^TH z(Xq?{TMcZ*puiH#=D{UxzRc8zmmjSOE*Mz+hqYu@o_0ViAyesveWjQB#qRj-BrR7Q z=2~8RlbJM>pT}}amGug%DlxPf2{Dpz(M@+4%mdG3@t}ve*@tuxg~+y);Gt65+{zP{ zBnqB)SoM}zS|tgHl+jZkL)Lb6q%LrQ zH6dz(bsC(;4ASO(Lnb(sw1wzQ?GrP!Ube;Mb1RO}b(Pm8EbT6RXI}v>s5J!<+To|0 znD;yLLnJr1ZKl#nnH=~NGaHvNykh^-AN5x-IjQV8~@kHP)8LGj3q=~ryT zCp7}i!fId9fP)`W!Hn(wb6m=Zf@uq|*92;alK%jQ94Ipd;e-Wh+m;whU`8{6w-|~LgEj^e zA6Z``6(>QXuzXl@!4noGT(ggx3UJ|l65%*7 zV-iXreh3(>Lg9H37w8|vXAqbiF4V`?2~z3!1Y(#rXVPX79z^UYz7I&u7@n}YhcHtR zm&3*SN&Jx}m|qr`hBxC^0@_UabiS4y2wg9=)HP*{PRp{>$Zr(+Ws34!t5ioTN`Tji zEC0vvodVqLjGs^$l-lY(CRcJOsTn`5pry*@rc}pLXFy0huW@o;Kv?f__>=a@e>$b`1y+-{Pe{x{OmautgC?8sGZYu&GJX8QPFELrmX$hMePRz%a$?BmD5&{76sQ*^kKFA7ehg)#4JCew zW7cKh2&J2UXyxVWP%8f}GvBWq3Z!1FshQUQ1mZ844 zmLPlsIHAUSkX~D>)`Avp574hg>)40X*KR=C81}*uaCS4eP-v4VosvUzgA7F3ak@Nbw+o{(4WNZVvP!rG^iBKYUE_8wB^CtFyxgL)qRyh zwb>ukMAj>YSoRZH5Ui25y2R2Bk&Sw!NQs4GtWINFqwSQnKyi~fWbj>saHF~m=OU_n?)@a>Gmp>T2C2f+_0nyc487gslpQVxJ5ycR2ORL zvfQ27foz-YG>oQIJ{Q%pZPG8cyNm6gX%^`$r zXUAxBMI5`E12RoEOVX(r&o1`OzrrsYuEVeGti~_ztT*2mnePqwR&z_oEBw-9FrB(^ zt(55x3~NPj^q_G}goSm{R3l1NBp|}PBoQei3OKVkDndiWZG&(7e%&)2`hh`iU_V0`?R| zkRq&yKoNzCX8gX^6~L)Cw<4CpTWGgz57T^70c3u1DxV(ttlcByb+=O$gH5qk zM%zc9nY3lJ=*RF)%S6?2uG4MhSWD}xl}!s3Z5eUehtb`t#}Qh;l_Gf7K58MN!LU{= z%iPU?buO_j9J)k=SLymu_;M(nqN&FknyIvOrXCH{vynQIz)aM6lgX!*|W<7uCBOoWT}OO6>7hs)_G$(=0HBzYakRTgiEdmLim0-)~B>a-}>7 zepu$n-gWrJL3Tf-WCW=d27ldRm5c*B(>bHR-406J4~KjyccTcgE!u=pwDbT;8>~5| z2hN#!p>`Mci*)N*Jh?O~9H0R9N&cEc`MS?0z5_Gp-GH1!OFNcahi~6d*)fVW)A^~% zZ?;KeR!UWM=ivr96rl$RT2qGoBz}h0$D#V#g(P+?8CH5=V)ge(e(WIMqEmgD8y84M zF#wWnzS<^5eMf;S6a;oFy%}vH=w~0oQ;xqwyCWtIWWBNyPrq6(YEZzmSFSB6Tc?*n z^kN$6-w0~!^DTkb2LV{MO$3NtI5T}gnpNkT#1xDaJJ^-JV6#0Olyxh)2sCQy!We&) zA$RE!a=Arn8T(W7;S%47c$&r!+%z*Midb-&h!gu}Ea3Qy6KeA2R$)r%bw%qYXc1b2 zb)6o_YVmqO;UvA#&<4fB*DDH$on^x#TE80=J%W#3|18~6c3oC`LtNFfBL$gCP4x4p zgRZR*wSSGc{?4VPoNu4f_a%c%5K`KDyN0McIat%P%x$+8)^8@2c7N=6X=|Zv0%p^# z#T@xB=g`#+9{6iVzU`rco{t!-e0Jp5lNR<2%>YdYg>;pftFv#|?^JX;HG0Z>1E?tA zLF2<&ySiYf^oTV_R11z)TB)hFh4xvG9O|Z-B3vpZr#>@#LSt!|n1(V*hpKpjt_@GA zQ2>_va&le!C9I}^(9AKBVKN*dqr&$8quU4^r!JZ~BX{|xa~vmez; zuEg(#bKNGRTtCw4C4*j>{&Uel#=Th__X5(fyi}>|VZDn&PZB-1sv9MrZRpb68kd@? z`MQ_rfV1B?^l->P|1D`o9s2O6ZQRV-DNnD#Q-4&%XvVTq_45tB*pJ2MrcqmU?K!l~ z^eC(xvdtr?G5ujqBF0gF_VHn*rY5*m!j7`84Aqs2&O}s!!tqF}N>DuXoK4Ti*p0#N z)UH0)YW3nIJ9mxbIwmScMzZAMI{2MvDR2)o1nIEM0;yCKAPS831(*jJakdQ*u38*G zdQRaT3PUfam_|QnQVm ze%^pJj(4mSanX;Zl2egKVWx_!uIF)Nto3lL;swo+ofObKaRtO08JbcqWoZT1qn$IC zGgOMT9!=O_>84p^1V!9TNHEW%NYMSKDhz2VV6Qd%s;w9wJ2B#828%hQRv^2}#O?}u zxY}FeB!Kl%E4xrW6^=|ggc_Hg#Howz;@p368)5QR>jIM%wh+pxo|*Yu>12kEw^X*# z)Oj+)T1zg5>eV)GHThL%$IAVTAmlhU%s3(krKS$&aHD+rl;4v$Saq zZHnEkusv5QSK$B_Sp2049x9;_7O&gdtwi$Du5((Bv*$a+mEpQ)P^R>X0LKX~{ZVG9 zLo(XvkPg~tTMge?LRe)YVZvo++PUjAbJ>{LziT+)VTJ=*)WfeXqUNrfU&N_u=fEM7s@TsWH? zFvmFZ=J>2v(=crx`R^`)6Nkd(2D=J{(*9f9WBW%hw~}X=#+yanner8+3ig_nC-xro zfYNOTq(WUgiWuz&7J6{`W!nXI_F|7J&^A-TP_N0`+K{=g^gPQ@Dm!*wq4VY&B|CKa z&XOJF3kNg1fvZiH@7`-wR`vFr*ElLi1B)fKKeckyXF3w}vHaHlN!8l@>g&Mm#0;3J z%k-zNn*TxesXfJRhFuWsLgVe0O!2WH>)-pDR@^Q8^+)2^yH;N8zKyQML9kX^9laei zQzAvfR~EZXGi`#l6|`7dHd&@_d4a81%$%%OQ6hdpA97&4J*dYTa^8%?a+m8;{ly&r ztb!dS&oL5joyiM3%9BT20?>ZXS$Oc;v!|b#!q;QrOS%bZtcAF0vxmOQ7jLoG~ZWK>z~0Nz`w0s$6vf(?dZPu z8{fJ0*5$LW;#QCoYIdCRFhKom25Sl2vf0ter=4&a(UUJ$&5mB}l}9J<#{U|Ibr7&_ zb~GN!KSd|+shl0%=W0Y`cC^!pPQFkvJ34i_+n^epT7+7i+4YlO$UoNjkJyunPIVAY z-inoI)ZqJ0gDPwGobsk7)T#-!bPDNt#cMB#CPEf43I~!ELt8xAzi403$${g*VRwmDwsv8QIcJPh(!((?vem` zrco6j+a=X>7dfbvj-MxqUgt5FwcY9=2gX=DGE5J$pfKIaXO_I^h zkj`k4hphJIAJErRepC&z+Z)n3G@+A#aRwpzdMP2D&nX_UL=}|RD)6VllRq6JyJha5h?>M zZA5hPGorVj0jFzg>L|xkHPC=Xs@$t|YSHbJA9riL^Xe$7jByNsL{RoZm54`5XW=4f zz9dFU@B$dmEvt=0yjs|mdr%CDXUEV`l@rvKMeh5r`n52TNp+V8Ba&2Ah4?DOBd3L7l;f7U=o?BK^dFDtfe_>~ zT*gX3;uQL!TwsO3GJz3+=yt?bRYXwRkCc0EEtrRprxB1kX^+9yihzB{H10zXJ1KO%}sEn$LN5eY@Bg%DlRMU6xryIg$Zzht_9 zX{4flDun;&s`|-CboOGhY1ONv)vk-fr4mI`Q0WtCv^MQTe?g}Oa~hmRn=5jVVMLTb z%9ckkFFG{@6BR%NZ4&c3%`lZJI?<%Y6CZUoZ}YpFeNq~Q5*(O&WV&{XeA^Z z{rD`BuolrvV0BdVx+s*$YLTxG;i^aoV*m!mFqB*eAgI;Vu!YqEp~S+=!!C@smJS-e zN>f4F7;yLr*uLo0aCGuhs2GNfE>uAbb3>#G{R5L(*(Awaw@J&?-LPTEW-(fhhKX1R z0uR#9@=$|9gOPmlV=I)y0j0*Nlwl0zRMx^ggU0d^E!qh_(5&3;mC@3&%gdUGxDBJ| z76y)USko2Oq%TJ}{6;5#q1*P&5Smy6NvEJd1|Z>^P-BY>5VDKwN)A_*afk&5Ug zx(bXza{57?s8KC>4OKI-hPCFYOhnSXECLoyje%NNr<-m_q>aTGaK=QVb0i^0SQtuE zg*q6yf;0^}R(NVsy7PTwYs5r|;DgMn)UK5+qz=ZFy_C1F^?WKQAUd<2rVCARv*<0b zi_k=V)kQ+4vIY%l)*%_fn-=Q+g}C^P@SAOf#YELckTjn6J>XFI50#ADC!P^xM+bz! zdLxh)2Ok$788he|!sUbP0($ViWUzy7fJt-($#H%ozMO-(_y@!|CI)V?g4fjG+9a-t zpnAglL8c}z&qR3Q|HXX=$%R}(hENC{%ct>#k$x&%0mFr_+J#L__$(?>p*Z9*WH3?* zJWHAQ_8`Mo8%GXa$CL%CH z0G4w55TrUkhd>@aPOBqe`TRUx9!FtxGe7(*vdawhR{WH{-DFtT}Wem{vgqT@S1}V_! zYz4JS_{*^=IIT12w#a$WsawFfe9_>J{{KLE6vM|U%`8KXD%=b93vZe%1L+k+r@k+; zNzV{?@$MEW_;>KZ(c-sZgnp{Yoe!y-y4~c3d`t-KuPdsaTOJ9);6LTM2jH&5XgyL` zeM%y&WI>xqUxL<@GLzmmYIf=TXC^=a^JmhUY#38iArk`+MVbmTR8BAG4s=xuIy}I2 z$erOdSo{FljL*p?^6Rc9GOt(_kt4=G80o^vxx2yIsn$z69r1RQ&h)*ooY(_$i|dWQHt3*ZM(=S>q}4!)%8kJNDB zF;$xUn@E-RgGw~t^z;n2P$i5Vv|0pRqNKh`@%BbfX}Dl5y~N{j@U5pm`d z32{=uNq37AuB2}lto~XFq$-bwIqQOMlj3dBpW=u zN8sJs_JOO56b2fQa9)OTXuwf6r=?Xej~K4R3V;CpbO|Otn3N(bi zw8c4rqJR5>ys`qQR{+UTDIO1CB-aZ-f- z8Fmmn^PIJ#<-*gVIiIg?v2g^Xm&J+lW zb%X{PeifB^A^P+Gws&?Rc3syU-}lU&Irq-TojYfyvOccdBS*4FsicmiQ8aGcAg8h$ z1<8%;*ls|gmTY}d$#V5U;#4K)Or8RMNQehKAcF!@kwFg*D74TNlA^*q)Sw3yT9|?h zE{Gy%3x3eUH0kfZ);Z_it5Hf{3Z~@FoqhKAUVH7e*Is+AefP=O1-PGWu+X#)ArlRo z&0;C$k|R-}yEu|$%g}hfNxSrAW;Xp;mYg3t+D@_2wI-EVc>u93p`uKb)Qe`h3@UH4 z%KW%CtbJ)!5_GdA)l$`4vPwlL6BvS1vfc9IQv8zo4`>cuJ1v17t)F5F`EX))heG=rMXf)gQVE#1O!C-o=`2+cv(405_&uU(^ z-Gy;Du0Xx!zu*S{KI-!Ps|LlW=8DnT74u&+_dRp3TKrY>zhnM)+G5v^JFizmI;NVe z)hiJh8olZ9u$BWxM+^|fCM0p4FH!NJ6s}_GbS0YTipRw&UZU;22OoiPVlnPaRVFd+^mW>}VyP@m|WUauchJr< zs~A$HC6>Zhi_51bn2%_D7>pV;rLk(YOd}>^2Q{NatiidA7=CQ|hc#>5>+7iIAW}Ny zP^c7aQkobDSgsR9YtoabVa%Vi-9c58u%&{W2J6e)vaVGXwY3_TlUDhCy32xtW)9!RSw$rjIti$t7>t+>OGn#$?VJ6uFCYXrc=j%;NSuw7m zfgKZp|3Gs@p($;17h{GOGU*|nrVk2A+(Fa(8)bQ1l6NqtU#LcSAcpMv%z!JAo z`J9Fw5~oTNwieuPGMe-Sd~nsn7WJD!166ihZ#JV5^aW#MW4O&`lPEL@M4@b~hNU7Z-1%La9N%JCw*Gec!le}%~ur#C^aim(4b4W

Fb(eb!wlvS}JuGu(Y$uUEXAp>vQJrx*& zw~yx|Zqloi#y^@xz?)~j*@{uNP(GoR75!@vdLgMGZvF-f(rOFc5Ohqx++G3DlVL4{ zV6|3o7opu?Fu&h{kd8x($H7%6$^WCmw+QuYH#N!s6qr%MAxEK!Q=+LJwdG-hCbL$= z{4As|VBlMf90~N=HgS@u7)Hz$L=J9{D&aao<};4{XV*!=Czd)tWr{uM%!rI9GT8zh zT%7TW8mo%!59+EAiwDQrd9To+?HCZws(uc;04siX}e}<kA`;01;~+KhJJH_QixOv5@U(O*FCaX; zDo&j-ESF3qY!N|EmqRbI&ZMJ3RffR3ppnxDMS-g1Lp<)Y@y29+TQWZbFs6oDDUwO6 zCZjTcpM`7{N>xw6RPwMX9wXR;@KvEb@kBK@*^XjGoS#MdG*}&QhqS+raTJ*zV}`_N ztfX?ojxE0LCfU2RX3NdHZ4C-xgg}36W~$B4CG*eFH5d=wZ<2J``UBg1pOR7Z6l=6# zxV#F45;D@r=NtrLOSLsM!5Y8DSDKPMr7ilCr;^w6v~vR6>-@gXMmk_pEphHw-iLi^ zI!|4Ca(_36$M%=%#$l&|B6}K%#!Azc)j86WB-$+Us=8>T$fYJ5X(UK&<@HhOzUZFprOrM zL3j%cN7Si8lG7?1r0vW;a@-tZ+TFH(R9h;x7hVbEI-eSSK}Kv}M%2 z%JQDFTs1yX=({{Or#-S|rTx7y>uMVXm*m{V$+ydQCmPc5WFNPSVnVj*5j0+fkvP%-%0_vc87}mMI@D^_QIQ8r>(1~z2rs$H#S&R*g>o%3)jvO19 zkE^B@qteS3sq`XccfA~9@~xdpAD6>8vGKsk`kK5)%=}t8n?(?XV22M}Xoa`wS%`6E z^@v?6u#LSv%m7tlav(V{J|ly#j-t9dITI1~6Qt$yv6%tl%HyD2--ekw@!hkay?$%t zNQ0(~XW-$y7t9085a$htheuGkB-jm!LZyQGMJm&JGG$hyI-ANVIdc;ETX5PMhYY_4 zTjxv{({4dKQpmSOOiUIwjEZJg&*qfFq}gH?8$k)c7uZ$(ywu(k_u_i)6l`gHYH}o6?@{NOR zUke0)Z)VIih@cE#O9An%7S>&9*0iH<6f9!EulaCzFv97kQ_A&ZQ4#yGiXNcCK~4nfAr zMcm|KJgo7`z@QC2);euh?+~VsWdasRnF|UI4=FJ#RU*5!8S&8}FD85cLxmcRG#xDa zM{eT@{f{X!RHmpRDblf4MOyxKZpoqDDym3Hl&v3z3HsR|GwNrcD9(_rPfH_`4Sg>> zn^LBv?oCN6Y}eCvD2|qe<%p^f%Ln z=(<0$f;nnn`LfOyiZ@cmb&j*JKZ#cl6E4QIoeq^=ufj-XM#Ie@Kn}thUz;2rNb9H> z3PdTjjs2%G#CZXzT1AU&OawyLd=lL-dd+UMb?!H|-w@~stLEYjV^Kc8Zd62j8iB`V z7)Iun(Rg;FQ9Or>%qVCVb()YmR1OPv!IK(B;;tmL@_s=zY6oO-!}=a2iblSRcZu!6q2)!;p!6gW}ts+dEFcsrwGQ-MI-m2gkx&jLU7O zwc8Gv^<`X4?F!PIv)+sxG}U&rFT-?U5Yoy@Kv|BoMi)vKf*9^pdI?|{#eTAdd|qF!=prqv~z*4f=SnbXfifYoTPj(VA26=~gwy~rIeatA=Y zcLG^cMft~!Kb4}bGbe`Ses`Gfb=R|dAgD_q_e==UDBVxySW|kKj@m(tCPjJNm&_r& zSRO!3<}`(<&QZ65K)~1QHX9iu=!R+SxotR0qfkqbn?gcK{I)=I{ejK(2be(_w3{Z* zpdP&03d{g`oR~($LJ0C*Fu|tqH_L$XH7Do_qPu4!0&%5`DeCEoaS~pE_pq6z6gZdZ zMl67$Ea6hY(@|Qw<%GOYPiw7+6@A1ffx(ccEEHXPiUfaWW}M)*nhI)Ij9Ko;C}~GS zgk)kOjmbEVkwl}b;*Fu?>8JzZg)68QG$-?vp%TdQEObHE+!OFVSU?K@*9=6>cih;e zBk(psuTT^sz|nA>_GU*J8I$ugY{(Drz95gd3#gZmcHIx_wa|Yi{)hY_2dh(ZjUjSD6-m>})2TqDYaB5AZjM@O{ zV0e_@EvR#}taBJ83vpE4Zm0D2=Y=$BzkINq%f|YcgYIDpx+g0=%>HGsRKF@=B#wA! zg$IgQJ+w6eLg}^n#(*r%I0>9p3N1m>RTEZIM%uW6=`hTH1C_|eK^zv&X=&dE@v^&{ z4iS+Y^~b5nvEYEEE}DDS+$D4Gs4S|dX(*2krY7OI{AauKwLYz%5>k1-XGobaoj1yF9epL%TgR>!DdLd*4wDTmRRELr803!~c+7BND>$fBok%J<-aA z4)Ff;hf(-Ca1$%X3ej zKiq?_!e0z+e@NKwk2%cCT@UX+e(cgok1vYtcBw@^pBzx4mNP|Z5HHiWFdXJQ^f_uZ_D zSH7?C|3_D&Fj`m0KcjVKT6iVA#BKktgy*<#tb7~5A9M4^3*mXL;?w7E>i_-=DVzOY zG4k`7 zzyT(|b5{3Qtgh)RmZyB}%nYxuIVK#08}zuwJukXvK);>WJxN@m$W8tFg?(!G9jHy- zZ)Vr|y=6C_=q?Q1_n=?SU!uKJmge`G=(qa1V(KE-TKPR2y39higq3$D_{}xS?Z39~ zy#Tb#bHQ5l8;0}?`hARM38(G|Q`r}I3TAzJtsJick1n~;od9|Z1pGMc4=u`y zUV@@qEV{4zc(|VayD3C72q{$^uTY0Boa~OpPHq>Nss00RhL|9~MpOOJ-4%kW3w0Of z{+4!tE4wZWfKG%>)NzpVy4mcEjg;;)6y$yvF+37{_s6B-1Nz>rUw0xujFXgC{pi(4 ztT%i8mRwc4E#6ZNvQ$= diff --git a/Assets/Noble Connect/NobleConnect.dll.meta b/Assets/Noble Connect/NobleConnect.dll.meta deleted file mode 100644 index 0488e85..0000000 --- a/Assets/Noble Connect/NobleConnect.dll.meta +++ /dev/null @@ -1,33 +0,0 @@ -fileFormatVersion: 2 -guid: 272f780a0da55bb43a85079e5ba1969f -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 1 - platformData: - - first: - Any: - second: - enabled: 1 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - DefaultValueInitialized: true - - first: - Windows Store Apps: WindowsStoreApps - second: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/README.md b/Assets/Noble Connect/README.md deleted file mode 100644 index d8b35c5..0000000 --- a/Assets/Noble Connect/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# README -[ -[**Website**](https://noblewhale.com) -| -[**Dashboard**](https://noblewhale.com/dashboard) -| -[**Docs**](https://noblewhale.com/docs) -| -[**FAQ**](https://noblewhale.com/faq) -| -[**Asset Store**](https://assetstore.unity.com/packages/tools/network/noble-connect-140535) -] - -Adds relays and punchthrough to UNet or Mirror. - -Guarantees your players can connect while reducing latency and saving you money by connecting players directly whenever possible. -Your players won't need to worry about forwarding ports or fiddling with router settings, they can just sit back, relax, and enjoy your beautiful game. - -Supports Windows, Linux, OSX, Android, and iOS. -Supports: - * UNet - * Mirror with KCP, LiteNetLib, or Ignorance transports - * NetCode for GameObjects with UnityTransport - -*Note: Web builds are not supported.* - -# How to Use -In order to use the Noble Connect relay and punchthrough services you will need to sign up for an account. You can do this on our -website or through the Unity Engine at Window->Noble Connect->Setup. It is free to sign up but your CCU and bandwidth will be limited. -In order to raise the limits you will either need to purchase the Starter Pack or one of the monthly plans. - -## Step 1 - Set up - 1. You can access the setup window at any time by going to Window->Noble Connect->Setup. - 2. Enter your email address to sign up, or enter your Game ID if you already have an account. - * You can get your Game ID any time from the dashboard at https://noblewhale.com/dashboard - 3. Import the package for your networking system: - * If you are using Mirror, import the "Mirror Noble Connect.unitypackage" - * Make sure you have the correct version of Mirror imported first. Usually this means the latest from the Asset Store, but you can check the description on the [Noble Connect](https://assetstore.unity.com/packages/tools/network/noble-connect-140535) page to confirm. - * If you are using UNet, import the "UNet Noble Connect.unitypackage" - * In 2019.1 or later you must first install the "Multiplayer HLAPI" package from the Unity Package Manager - * If you are using NetCode for Gameobjects, import the "NetCode for GameObjects Noble Connect.unitypackage" - -## Step 2 - Test it - 1. Add the "Noble Connect/[UNet or Mirror or Netcode for GameObjects]/Examples/Network Manager/Network Manager Example.unity" scene to the build settings. - 2. Build for your desired platform and run the build. - 3. Click "Host" in the build. - * Note the IP and port that are displayed, this is the address that clients will use to connect to the host. - 4. Run the Network Manager Example scene in the editor. - 5. Click "Client" and then enter the ip and port from the host. - 6. Click "Connect" to connect to the host. - * When the connection is complete you will see the connection type displayed on the client. - -# Examples -Check out the Example scenes and scripts to see common ways to get connected. Each example includes a README file with more detailed instructions. -If you need any more information don't hesitate to contact us at nobleconnect@noblewhale.com - -# What next? -Generally you should extend from the provided NobleNetworkManager. -If you prefer something a little lower level, you can also use the NobleServer and NobleClient classes directly to Listen() and Connect(). -Most things will work exactly the same as you are used to if you are familiar with UNet, Mirror, or Netcode for GameObjects - -**Note: For most methods that you override in NobleNetworkManager you will want to make sure to call the base method to avoid causing unexpected behaviour.** - -# Notes for UNet / Mirror -The main difference is that you will use the NobleNetworkManager instead of Unity or Mirror's NetworkManager, or the NobleServer and NobleClient instead of Unity's or Mirror's NetworkServer and NetworkClient. - -# Note for Netcode for GameObjects -Just make sure to use the NobleUnityTransport and you should be good to go. - -# General Notes -The host will not know the address that clients should connect to until it has been assigned by the Noble Connect servers. -You will need to override the OnServerPrepared() method or use the OnServerPreparedCallback to know when this has happened and to get the hostAddress and hostPort (collectively known as the HostEndPoint) -that clients should use to connect to the host. This is generally when you would create a match if you're using a matchmaking system. You can also get -the HostEndPoint address any time after it has been assigned via NobleServer.HostEndPoint or NobleNetworkManager.HostEndPoint or NobleUnityTransport.HostRelayEndPoint - -# Regions -By default the closest region will be selected automatically for relays. You can also manually select the region on the NobleNetworkManager or by passing in a GeographicRegion at runtime. -You can see this in any of the example scenes. - -We have servers in the following regions: - * US_EAST - New York - * US_WEST - California - * EUROPE - Amsterdam - * AUSTRALIA - Sydney - * HONG_KONG - Hong Kong - * ASIA_PACIFIC - Singapore - * SOUTH_AMERICA - Brazil - * CHINE - China - -# How it Works -Punchthrough and relays work according to the [ICE](https://tools.ietf.org/html/rfc5245), [TURN](https://tools.ietf.org/html/rfc5766), and [STUN](https://tools.ietf.org/html/rfc5389) specifications. \ No newline at end of file diff --git a/Assets/Noble Connect/README.md.meta b/Assets/Noble Connect/README.md.meta deleted file mode 100644 index 6eb6de6..0000000 --- a/Assets/Noble Connect/README.md.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 662e06548d4295445bb8f66021012d93 -timeCreated: 1552034575 -licenseType: Store -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Resources.meta b/Assets/Noble Connect/Resources.meta deleted file mode 100644 index 947cf67..0000000 --- a/Assets/Noble Connect/Resources.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7bfb9e592d151107f81c9cf252361404 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/Resources/NobleConnectSettings.asset b/Assets/Noble Connect/Resources/NobleConnectSettings.asset deleted file mode 100644 index 864eac0..0000000 --- a/Assets/Noble Connect/Resources/NobleConnectSettings.asset +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0154c6ffa997c574c9f0f2680c03e82f, type: 3} - m_Name: NobleConnectSettings - m_EditorClassIdentifier: - gameID: NDk4CmxvZ2Fuc2ltaWM0OUBnbWFpbC5jb20KSm1PNGNOenBFKzlIdC9yOE5pUWpLNGJYMmF5eFZ2N0hUYnJYanFuYUQwZnByaWFYQVg0U3h3V2FwSHFsOU1Lam5DOUQvT2tMVkY5UTRqOXFWODVYUkE9PQ== - relayServerPort: 3478 diff --git a/Assets/Noble Connect/Resources/NobleConnectSettings.asset.meta b/Assets/Noble Connect/Resources/NobleConnectSettings.asset.meta deleted file mode 100644 index 3f17670..0000000 --- a/Assets/Noble Connect/Resources/NobleConnectSettings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8fa01c579d9dfd963a234ef28ea80a23 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/UNet.meta b/Assets/Noble Connect/UNet.meta deleted file mode 100644 index 2d5eea2..0000000 --- a/Assets/Noble Connect/UNet.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 219fa3c95fcff0b48a9cdbda02f6ad88 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/UNet/INSTALL.md b/Assets/Noble Connect/UNet/INSTALL.md deleted file mode 100644 index 6955370..0000000 --- a/Assets/Noble Connect/UNet/INSTALL.md +++ /dev/null @@ -1,2 +0,0 @@ -As of 2019.1 if you want to use UNet with Noble Connect you must install the HLAPI package from the Unity package manager -and then extract the "UNet Noble Connect" package to get the examples and scripts. \ No newline at end of file diff --git a/Assets/Noble Connect/UNet/INSTALL.md.meta b/Assets/Noble Connect/UNet/INSTALL.md.meta deleted file mode 100644 index b6c266f..0000000 --- a/Assets/Noble Connect/UNet/INSTALL.md.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2a9d1538892d0bd418a62bf833d4e344 -timeCreated: 1510044594 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Noble Connect/UNet/UNet Noble Connect.unitypackage.meta b/Assets/Noble Connect/UNet/UNet Noble Connect.unitypackage.meta deleted file mode 100644 index 81ec476..0000000 --- a/Assets/Noble Connect/UNet/UNet Noble Connect.unitypackage.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: db127a021d5837b4bbd7d64fc0498550 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scenes/Level01.unity b/Assets/Scenes/Level01.unity index e829820..b110286 100644 --- a/Assets/Scenes/Level01.unity +++ b/Assets/Scenes/Level01.unity @@ -207,19 +207,7 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 586010485} - m_TargetAssemblyTypeName: ServerMenu, Assembly-CSharp - m_MethodName: JoinGame - 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_Target: {fileID: 586010483} + - m_Target: {fileID: 545251048} m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine m_MethodName: SetActive m_Mode: 6 @@ -229,7 +217,7 @@ MonoBehaviour: m_IntArgument: 0 m_FloatArgument: 0 m_StringArgument: - m_BoolArgument: 0 + m_BoolArgument: 1 m_CallState: 2 --- !u!114 &299041672 MonoBehaviour: @@ -463,6 +451,124 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &545251048 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 545251049} + m_Layer: 5 + m_Name: ServerButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &545251049 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545251048} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1155345286} + - {fileID: 2023582111} + m_Father: {fileID: 586010484} + 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: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &584631261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 584631262} + - component: {fileID: 584631264} + - component: {fileID: 584631263} + m_Layer: 5 + m_Name: Entry + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &584631262 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 584631261} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2023582111} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &584631263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 584631261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &584631264 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 584631261} + m_CullTransparentMesh: 1 --- !u!1 &586010483 GameObject: m_ObjectHideFlags: 0 @@ -495,6 +601,7 @@ RectTransform: - {fileID: 732642985} - {fileID: 1223756954} - {fileID: 299041670} + - {fileID: 545251049} m_Father: {fileID: 1732865424} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -515,6 +622,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b21e807f462eb3b3fa7c74eee024ee2d, type: 3} m_Name: m_EditorClassIdentifier: + joinTextCode: {fileID: 2023582112} --- !u!1 &619248189 GameObject: m_ObjectHideFlags: 0 @@ -862,6 +970,166 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 119.883, z: 0} +--- !u!1 &870374057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 870374058} + - component: {fileID: 870374060} + - component: {fileID: 870374059} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &870374058 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 870374057} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2023582111} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &870374059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 870374057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter code... +--- !u!222 &870374060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 870374057} + m_CullTransparentMesh: 1 +--- !u!1 &1155345285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1155345286} + - component: {fileID: 1155345288} + - component: {fileID: 1155345287} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1155345286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1155345285} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 545251049} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000022888184, y: -56.77793} + m_SizeDelta: {x: 82.29559, y: -41.995193} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1155345287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1155345285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 72 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Join Code:' +--- !u!222 &1155345288 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1155345285} + m_CullTransparentMesh: 1 --- !u!1 &1223756953 GameObject: m_ObjectHideFlags: 0 @@ -1453,6 +1721,165 @@ MonoBehaviour: PacketDelayMS: 0 PacketJitterMS: 0 PacketDropRate: 0 +--- !u!1 &2023582110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2023582111} + - component: {fileID: 2023582114} + - component: {fileID: 2023582113} + - component: {fileID: 2023582112} + m_Layer: 5 + m_Name: JoinCode + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2023582111 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023582110} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 870374058} + - {fileID: 584631262} + m_Father: {fileID: 545251049} + 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: 0, y: -99.18283} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2023582112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023582110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, 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_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2023582113} + m_TextComponent: {fileID: 584631263} + m_Placeholder: {fileID: 870374059} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnSubmit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 586010485} + m_TargetAssemblyTypeName: ServerMenu, Assembly-CSharp + m_MethodName: ServerJoinButton + 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_OnDidEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!114 &2023582113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023582110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2023582114 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023582110} + m_CullTransparentMesh: 1 --- !u!1 &2108671896 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/ServerMenu.cs b/Assets/Scripts/ServerMenu.cs index 9992469..eafa0b5 100644 --- a/Assets/Scripts/ServerMenu.cs +++ b/Assets/Scripts/ServerMenu.cs @@ -14,9 +14,11 @@ using Unity.Netcode.Transports.UTP; using Unity.Networking.Transport; using Unity.Networking.Transport.Relay; using NetworkEvent = Unity.Networking.Transport.NetworkEvent; +using UnityEngine.UI; public class ServerMenu : MonoBehaviour { + private async void Start() { await UnityServices.InitializeAsync(); @@ -48,7 +50,33 @@ public class ServerMenu : MonoBehaviour } } - public void JoinGame () { - NetworkManager.Singleton.StartClient(); + public InputField joinTextCode; + + public void ServerJoinButton() + { + string joinCode = joinTextCode.text; + JoinGame(joinCode); } + + public async Task JoinGame(string joinCode) + { + try + { + Debug.Log("Joining server with: " + joinCode); + JoinAllocation joinAllocation = await RelayService.Instance.JoinAllocationAsync(joinCode); + + RelayServerData relayServerData = new RelayServerData(joinAllocation, "dtls"); + NetworkManager.Singleton.GetComponent().SetRelayServerData(relayServerData); + + NetworkManager.Singleton.StartClient(); + + return joinCode; + } + catch (RelayServiceException e) + { + Debug.Log(e); + return null; + } +} + } diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt index b65aa92..679cd54 100644 --- a/UserSettings/Layouts/default-2021.dwlt +++ b/UserSettings/Layouts/default-2021.dwlt @@ -48,7 +48,7 @@ MonoBehaviour: m_MinSize: {x: 300, y: 200} m_MaxSize: {x: 24288, y: 16192} vertical: 0 - controlID: 77 + controlID: 28 --- !u!114 &3 MonoBehaviour: m_ObjectHideFlags: 52 @@ -223,7 +223,7 @@ MonoBehaviour: m_MinSize: {x: 200, y: 200} m_MaxSize: {x: 16192, y: 16192} vertical: 1 - controlID: 78 + controlID: 29 --- !u!114 &10 MonoBehaviour: m_ObjectHideFlags: 52 @@ -248,7 +248,7 @@ MonoBehaviour: m_MinSize: {x: 200, y: 100} m_MaxSize: {x: 16192, y: 8096} vertical: 0 - controlID: 79 + controlID: 30 --- !u!114 &11 MonoBehaviour: m_ObjectHideFlags: 52 @@ -317,21 +317,21 @@ MonoBehaviour: m_SkipHidden: 0 m_SearchArea: 1 m_Folders: - - Assets/Scenes + - Assets m_Globs: [] m_OriginalText: m_ViewMode: 1 m_StartGridSize: 64 m_LastFolders: - - Assets/Scenes + - Assets/Noble Connect m_LastFoldersGridSize: -1 m_LastProjectPath: /home/logan/HatGunner m_LockTracker: m_IsLocked: 0 m_FolderTreeState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: ea660000 - m_LastClickedID: 26346 + m_SelectedIDs: 8c660000 + m_LastClickedID: 26252 m_ExpandedIDs: 000000008c66000000ca9a3b m_RenameOverlay: m_UserAcceptedRename: 0 @@ -451,7 +451,7 @@ MonoBehaviour: m_ControlHash: -371814159 m_PrefName: Preview_InspectorPreview m_LastInspectedObjectInstanceID: -1 - m_LastVerticalScrollValue: 0 + m_LastVerticalScrollValue: 746.2752 m_GlobalObjectId: m_InspectorMode: 0 m_LockTracker: @@ -488,9 +488,9 @@ MonoBehaviour: m_SceneHierarchy: m_TreeViewState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: 726a0000 - m_LastClickedID: 27250 - m_ExpandedIDs: bef3ffff12f4ffff82f5ffff88f5ffff38fbffff726a0000b46a0000 + m_SelectedIDs: aae5ffff + m_LastClickedID: -6742 + m_ExpandedIDs: 5edefffff4dfffffaae5ffff08edffff38fbffffe86500002a660000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -506,7 +506,7 @@ MonoBehaviour: m_IsRenaming: 0 m_OriginalEventType: 11 m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} + m_ClientGUIView: {fileID: 4} m_SearchString: m_ExpandedScenes: [] m_CurrenRootInstanceID: 0 @@ -772,9 +772,9 @@ MonoBehaviour: m_PlayAudio: 0 m_AudioPlay: 0 m_Position: - m_Target: {x: 538.4778, y: 250.99454, z: 0} + m_Target: {x: 568.29144, y: 257.84183, z: 3.0044832} speed: 2 - m_Value: {x: 538.4778, y: 250.99454, z: 0} + m_Value: {x: 568.29144, y: 257.84183, z: 3.0044832} m_RenderMode: 0 m_CameraMode: drawMode: 0 @@ -825,9 +825,9 @@ MonoBehaviour: speed: 2 m_Value: {x: 0, y: 0, z: 0, w: 1} m_Size: - m_Target: 674.65393 + m_Target: 374.20465 speed: 2 - m_Value: 674.65393 + m_Value: 374.20465 m_Ortho: m_Target: 1 speed: 2