I'm trying to add Facebook functionality to my Unity3D project, which is working for me. But for some unknown reason the test scene doesn't seem to work for some Facebook users. It looks like the the Facebook DLL doesn't load.
I'm using the example scene which comes with Unity3D Facebook SDK. No modifications, I only changed the App Name and App Id (Facebook Settings).
The application is set on public.
log when it works:
140505 15:36:05 ------------------------------------------------------------
140505 15:36:05 Instance starting, version 4.3.5f1_cab656801c19, UNITY_WEB_ENABLE_AUTODOWNLOAD: 1, GetDisableAutoUpdates(): 0
140505 15:36:05 Datafile https://oege.ie.hva.nl/~vriens09/facebook.unity3d
web: player version 4.3.6f1
web: load mono
Mono path[0] = 'C:/Users/Robert/AppData/LocalLow/Unity/WebPlayer/player/Stable3.x.x/Data/lib'
Mono path[1] = 'C:/Users/Robert/AppData/LocalLow/Unity/WebPlayer/mono/Stable3.x.x/Data/lib'
Mono config path = 'C:/Users/Robert/AppData/LocalLow/Unity/WebPlayer/mono/Stable3.x.x/Data/etc'
web: start, src=https://oege.ie.hva.nl/~vriens09/facebook.unity3d abs=https://oege.ie.hva.nl/~vriens09/facebook.unity3d flags=0x1
web: sucessfully initialized
140505 15:36:06 loader: start ok
140505 15:36:06 Times: download 0.2 load 0.1
Loading webdata version: 4.3.4f1
Initialize engine version: 4.3.6f1 (7a73f0242edf)
GfxDevice: creating device client; threaded=0
Direct3D:
Version: Direct3D 9.0c [nvd3dum.dll 9.18.13.3250]
Renderer: NVIDIA Quadro FX 570M
Vendor: NVIDIA
VRAM: 1255 MB (via DXGI)
Caps: Shader=30 DepthRT=1 NativeDepth=1 NativeShadow=1 DF16=0 INTZ=1 RAWZ=0 NULL=1 RESZ=0 SlowINTZ=0
Begin MonoManager ReloadAssembly
Platform assembly: C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Data\lib\UnityEngine.dll (this message is harmless)
Non platform assembly: C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Assembly-CSharp.dll (this message is harmless)
Loading C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Assembly-CSharp.dll into Unity Child Domain
Non platform assembly: C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\IFacebook.dll (this message is harmless)
Loading C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\IFacebook.dll into Unity Child Domain
- Completed reload, in 0.074 seconds
<RI> Initializing input.
<RI> Input initialized.
desktop: 1680x1050 60Hz; virtual: 1680x1050 at 0,0
Platform assembly: C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\mono\Stable3.x.x\Data\lib\System.Core.dll (this message is harmless)
Using SDK 5.1.0, Build 140401.725cc2ecbc9002a
(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/WebPlayerGenerated/UnityEngineDebug.cpp Line: 53)
Platform assembly: C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Data\lib\CrossDomainPolicyParser.dll (this message is harmless)
loading dll: /rsrc/unity/lib/sdk_5.1/CanvasFacebook.dll
(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/WebPlayerGenerated/UnityEngineDebug.cpp Line: 53)
Platform assembly: C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\mono\Stable3.x.x\Data\lib\Mono.Security.dll (this message is harmless)
Non platform assembly: data-0B170078 (this message is harmless)
Finished loading Facebook dll. Version 5.1.0 Build 140313.f19caa5422b69ba
(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/WebPlayerGenerated/UnityEngineDebug.cpp Line: 53)
FB.Init completed: Is user logged in? True
(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/WebPlayerGenerated/UnityEngineDebug.cpp Line: 53)
Platform assembly: C:\Users\Robert\AppData\LocalLow\Unity\WebPlayer\mono\Stable3.x.x\Data\lib\System.dll (this message is harmless)
log when it fails:
140505 15:33:35 ------------------------------------------------------------
140505 15:33:35 Instance starting, version 4.3.5f1_cab656801c19, UNITY_WEB_ENABLE_AUTODOWNLOAD: 1, GetDisableAutoUpdates(): 0
140505 15:33:36 Datafile https://oege.ie.hva.nl/~vriens09/facebook.unity3d
web: player version 4.3.6f1
web: load mono
Mono path[0] = 'C:/Users/Eigenaar/AppData/LocalLow/Unity/WebPlayer/player/Stable3.x.x/Data/lib'
Mono path[1] = 'C:/Users/Eigenaar/AppData/LocalLow/Unity/WebPlayer/mono/Stable3.x.x/Data/lib'
Mono config path = 'C:/Users/Eigenaar/AppData/LocalLow/Unity/WebPlayer/mono/Stable3.x.x/Data/etc'
web: start, src=https://oege.ie.hva.nl/~vriens09/facebook.unity3dabs=https://oege.ie.hva.nl/~vriens09/facebook.unity3d flags=0x1
web: sucessfully initialized
140505 15:33:36 loader: start ok
140505 15:33:36 Times: download 0.7 load 0.2
Loading webdata version: 4.3.4f1
Initialize engine version: 4.3.6f1 (7a73f0242edf)
GfxDevice: creating device client; threaded=0
Direct3D:
Version: Direct3D 9.0c [igdumd32.dll 8.15.10.1749]
Renderer: Mobile Intel(R) 965 Express Chipset Family (Microsoft Corporation - WDDM 1.1)
Vendor: Intel
VRAM: 64 MB (via DXGI)
Caps: Shader=30 DepthRT=1 NativeDepth=0 NativeShadow=1 DF16=0 INTZ=0 RAWZ=0 NULL=0 RESZ=0 SlowINTZ=0
Begin MonoManager ReloadAssembly
Platform assembly: C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Data\lib\UnityEngine.dll (this message is harmless)
Non platform assembly: C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Assembly-CSharp.dll (this message is harmless)
Loading C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Assembly-CSharp.dll into Unity Child Domain
Non platform assembly: C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\IFacebook.dll (this message is harmless)
Loading C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\IFacebook.dll into Unity Child Domain
- Completed reload, in 0.119 seconds
<RI> Initializing input.
XInput1_3.dll not found.
<RI> Input initialized.
desktop: 1280x800 60Hz; virtual: 1280x800 at 0,0
Platform assembly: C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\mono\Stable3.x.x\Data\lib\System.Core.dll (this message is harmless)
Using SDK 5.1.0, Build 140401.725cc2ecbc9002a
(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/WebPlayerGenerated/UnityEngineDebug.cpp Line: 53)
Platform assembly: C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\player\Stable3.x.x\Data\lib\CrossDomainPolicyParser.dll (this message is harmless)
loading dll: /rsrc/unity/lib/sdk_5.1/CanvasFacebook.dll
(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/WebPlayerGenerated/UnityEngineDebug.cpp Line: 53)
Platform assembly: C:\Users\Eigenaar\AppData\LocalLow\Unity\WebPlayer\mono\Stable3.x.x\Data\lib\Mono.Security.dll (this message is harmless)
Non platform assembly: data-09B0B848 (this message is harmless)
Finished loading Facebook dll. Version 5.1.0 Build 140313.f19caa5422b69ba
(Filename: C:/BuildAgent/work/d3d49558e4d408f4/artifacts/WebPlayerGenerated/UnityEngineDebug.cpp Line: 53)
SDK Version 5.1.0
Unity3D Version 4.3.4f1
Related
I'm currently using AdMob and Swift 5 to integrate ads into my app. The actual ad units in my app are configured with AdMob, but AdMob uses mediation to get ads from AdColony and AppLovin. Test ads show correctly on simulators and physical devices. Live ads only show in simulators.
In the simulator (iOS 13.5):
When "Limit ad tracking" is turned on or off in Settings, ads show either way.
In the simulator (iOS 14.2):
When "Allow apps to request to track" is turned on or off, my app attempts to request to track, but will still show ads even if it cannot track.
On an iPhone (iOS 13.5):
"Limit ad tracking" can be on or off and live ads will not show either way.
On an iPhone (iOS 14.2):
"Allow apps to request to track" can be on or off, my app attempts to make a request to track, and will not show ads whether accepted or denied.
Physical iPhone console log:
AdColony [Info] -[ADCNetwork setHost:] Line 42 : Valid reachability object created with host: www.adtilt.com
AppLovinAdapter: Found 1 SDK keys. Please remove any SDK keys you are not using from the AdMob UI.
AdColonyAdapter: Zones that are being configured: (
vzfbcebdd3803aXXXXXX,
vza3675f575dbfXXXXXX,
vzfac9153e28c6XXXXXX,
vz43bcba3540b3XXXXXX,
vzcfb95851b9abXXXXXX,
vz3785ee97e8ffXXXXXX
)
[AppLovinSdk] DEBUG [ALSdk] Setting plugin version: 6.14.9.0
AdColony [Info] -[ADCDevice init]_block_invoke Line 250 : ADCNetwork status change: 1
AdColony [Info] : AdColony library version: 4.4.1.0 64-bit production
AdColony [Info] : AdColony controller version: 2.7.3
IDFA: 00000000-0000-0000-0000-000000000000 // This is actually how it appears in the console
[AppLovinSdk] DEBUG [AppLovinSdk]
========================================
AppLovin SDK
Version: 6.14.9
Plugin Version: 6.14.9.0
Ad Review Version:
OS: iOS 13.5
IDFA: <Enable verbose logging to see the IDFA to use for test devices - https://monetization-support.applovin.com/hc/en-us/articles/236114328-How-can-I-expose-verbose-logging-for-the-SDK>
SDK Key: MySDKkeyHere
Model: iPhone12,1
Locale: en_CA
Simulator: 0
Bundle ID: MyBundleIDhere
Has AppLovinSDKResources: true
Test Mode On: false
Verbose Logging On: false
Mediation Provider: admob
TG: 29
===Privacy States===
Please review AppLovin MAX documentation to be compliant with regional privacy policies.
Age Restricted User - false
Has User Consent - true
"Do Not Sell" - false
===App Tracking Transparency===
Authorization Status: Unavailable (-1)
NSUserTrackingUsageDescription Exists: true
========================================
[AppLovinSdk] ERROR [ALSdk] Auto-initing adapters for non-MAX mediation provider: admob
AppLovinAdapter: AppLovin adapter version: 6.14.9.0
AppLovinAdapter: AppLovin SDK version: 6.14.9
AppLovinAdapter: All SDKs completed initialization.
[AppLovinSdk] DEBUG [ALSdk] Setting plugin version: 6.14.9.0
AppLovinAdapter: Requesting banner of size kGADAdSizeSmartBannerPortrait for zone: e7c60ca56eXXXXXX.
AdColonyAdapter: Requesting banner for zone: vzcfb95851b9abXXXXXX
AdColonyAdapter: Failed to load banner ad: No fill for ad request
AdColony [Info] : Banner ad request failed in zone: vzcfb95851b9abXXXXXX
AdColonyAdapter: Requesting interstitial ad for zone: vz3785ee97e8ffXXXXXX
AdColony [Info] : Interstitial ad request failed in zone: vz3785ee97e8ffXXXXXX
AdColonyAdapter: Failed to load interstitial ad with error: No fill for ad request
[AppLovinSdk] DEBUG [ALSdk] Setting plugin version: 6.14.9.0
AppLovinAdapter: Requesting interstitial for zone: 9b7b4f5f9eXXXXXX
Simulator console log:
AdColony [Info] -[ADCNetwork setHost:] Line 42 : Valid reachability object created with host: www.adtilt.com
AppLovinAdapter: Found 1 SDK keys. Please remove any SDK keys you are not using from the AdMob UI.
AdColonyAdapter: Zones that are being configured: (
vzfbcebdd3803aXXXXXX,
vza3675f575dbfXXXXXX,
vzfac9153e28c6XXXXXX,
vz43bcba3540b3XXXXXX,
vzcfb95851b9abXXXXXX,
vz3785ee97e8ffXXXXXX
)
[AppLovinSdk] DEBUG [ALSdk] Setting plugin version: 6.14.9.0
AdColony [Info] -[ADCDevice init]_block_invoke Line 250 : ADCNetwork status change: 1
[plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000c9e3e0> F8BB1C28-BAE8-11D6-9C31-000393XXXXXX
AdColony [Info] : AdColony library version: 4.4.1.0 64-bit production
AdColony [Info] : AdColony controller version: 2.7.3
IDFA: 00000000-0000-0000-0000-000000000000 // This is actually how it appears in the console
[AppLovinSdk] DEBUG [AppLovinSdk]
========================================
AppLovin SDK
Version: 6.14.9
Plugin Version: 6.14.9.0
Ad Review Version:
OS: iOS 13.5
IDFA: <Enable verbose logging to see the IDFA to use for test devices - https://monetization-support.applovin.com/hc/en-us/articles/236114328-How-can-I-expose-verbose-logging-for-the-SDK>
SDK Key: MySDKkeyHere
Model: iPhone12,1
Locale: en_CA
Simulator: 0
Bundle ID: MyBundleIDhere
Has AppLovinSDKResources: true
Test Mode On: false
Verbose Logging On: false
Mediation Provider: admob
TG: 29
===Privacy States===
Please review AppLovin MAX documentation to be compliant with regional privacy policies.
Age Restricted User - false
Has User Consent - true
"Do Not Sell" - false
===App Tracking Transparency===
Authorization Status: Unavailable (-1)
NSUserTrackingUsageDescription Exists: true
========================================
[AppLovinSdk] ERROR [ALSdk] Auto-initing adapters for non-MAX mediation provider: admob
AppLovinAdapter: AppLovin adapter version: 6.14.9.0
AppLovinAdapter: AppLovin SDK version: 6.14.9
AppLovinAdapter: All SDKs completed initialization.
[AppLovinSdk] DEBUG [ALSdk] Setting plugin version: 6.14.9.0
I've looked around on many different forums etc and I can't find a solution to this. Any help is appreciated. Thanks.
Usually, as long as test ads show find - your integration should be good. However, I noticed that your AppLovin SDK key is incorrect due to the following logs:
SDK Key: MySDKkeyHere
I would remedy that issue first, and continue triage if live ads still do not show thereafter.
My Unity app is successfully built, but it's not working.
I always see the strange console output below after the app starts.
What's going wrong?
Mono path[0] - 'E:/Mvp/New Unity Project (6)_Data/Managed'
Mono config path - 'E:/Mvp/MonoBleedingEdge/etc'
Initialize engine version: 2019.2.15f1 (dcb72c2e9334)
[XR] Discovering subsystems at path E:/Mvp/New Unity Project (6)_Data/UnitySubsystems
Forcing GfxDevice: Null
GfxDevice: creating device client; threaded=0
NullGfxDevice:
Version: NULL 1.0 [1.0]
Renderer: Null Device
Vendor: Unity Technologies
Begin MonoManager ReloadAssembly
- Completed reload, in 0.059 seconds
UnloadTime: 0.415900 ms
Seems like server build.
In your build setting menu, do you have the "Server Build" checkbox checked?
If yes, un-check that and retry.
This could be a symptom of the same problem described here:
"Shader Unsupported" when starting Unity server with -batchmode -nographics flags
For Unity 2021: make sure you dont have Dedicated Server selected in the Build Settings. This can also happen when you simply take a look at the Dedicated Server Settings tab in the Player settings.
my emulator stopped working after the most recent update. I am currently using the HAX module to run the emulator.
I cannot seem to find the updater for the Intel module (forgive me, I recently started using Android Studio).
Below is the event log which appears when I try to load the emulator:
23/02/2018
21:28 Platform and Plugin Updates: The following components are ready to update: Android Emulator, Google APIs Intel x86 Atom System Image
21:28 Gradle sync started
21:30 Project setup started
21:38 Gradle sync finished in 9m 17s 764ms
21:38 Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar]
21:38 Gradle build finished in 15s 456ms
21:41 * daemon not running; starting now at tcp:5037
21:41 * daemon started successfully
21:41 Executing tasks: [:app:assembleDebug]
21:41 Emulator: Incompatible HAX module version 3,requires minimum version 4
21:41 Emulator: No accelerator found.
21:41 Emulator: failed to initialize HAX: Invalid argument
21:41 Emulator: Process finished with exit code 0
21:41 Gradle build finished in 5s 978ms
Some help would be greatly appreciated! Also, if you find any more problems which could cause further issues to my program, please do notify me.
I had the same problem. I went to the Intel site (https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm) and downloaded the latest version of HAXM. I then installed it, and the problem went away!
Creating a basic Cardboard Unity App following this tutorial:
https://developers.google.com/tango/apis/unity/unity-cardboard-integration
App loads fine on Unity and build. However, the app crashes without any errors when loading on the Project Tango Tablet.
Error message reads:
Unfortunately, AppName has stopped.
Android version 4.4.2
Minimum API level - Android 4.2 'Jelly Bean'
(API level 17) Runtime: Dalvik
Unity 5.6.0b Personal
Character Controller (Script)
Tango Delta Pose Controller (Script) - Character Motion
./adb logcat -s Unity ActivityManager PackageManager dalvikvm DEBUG
W/ActivityManager( 908): Activity pause timeout for ActivityRecord{4221d498 u0 com.google.tango.prefab/com.google.unity.GoogleUnityActivity t53 f}
I/ActivityManager( 908): Displayed com.android.launcher/com.android.launcher2.Launcher: +170ms
D/dalvikvm( 3940): GC_CONCURRENT freed 396K, 20% free 3562K/4432K, paused 0ms+2ms, total 23ms
I/ActivityManager( 908): Process com.google.tango.prefab (pid 9525) has died.
Open your scene, go to the Tango Manager object, and on the TangoUx script disable Draw Default UX Exceptions.
I am taking Coursera's course for Multiplatform Mobile Devices and it says to call:
ionic plugin add de.appplant.cordova.plugin.local-notification
But I am getting the following error:
Toms-MBP:confusioncordova toddcoulson$ ionic platform add android
Error: Platform android already added.
Toms-MBP:confusioncordova toddcoulson$ ionic plugin add
de.appplant.cordova.plugin.local-notification Installing
"de.appplant.cordova.plugin.local-notification" for android
Installing "cordova-plugin-device" for android
Using this version of Cordova with older version of cordova-android
is being deprecated. Consider upgrading to cordova-android#5.0.0 or
newer.
Failed to install 'cordova-plugin-device':CordovaError: The provided
path
"/Users/toddcoulson/documents/coursera/fullstack/confusioncordova/platforms/android"
is not an Android project.
at new android_parser (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/android_parser.js:35:15)
at new PlatformApiPoly (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/PlatformApiPoly.js:62:20)
at Object.getPlatformApi (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/platforms.js:70:23)
at handleInstall (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:610:29)
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:407:28
at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:749:13)
at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:509:49
at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
Failed to install
'de.appplant.cordova.plugin.local-notification':CordovaError: The
provided path
"/Users/toddcoulson/documents/coursera/fullstack/confusioncordova/platforms/android"
is not an Android project.
at new android_parser (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/android_parser.js:35:15)
at new PlatformApiPoly (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/PlatformApiPoly.js:62:20)
at Object.getPlatformApi (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/platforms.js:70:23)
at handleInstall (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:610:29)
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:407:28
at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:749:13)
at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:509:49
at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
Error: The provided path
"/Users/toddcoulson/documents/coursera/fullstack/confusioncordova/platforms/android"
is not an Android project.
EDIT: I do think this is an issue getting the emulator for android to work. I thought I had things setup, but I never got the emulator working for android. Here is the error when running emulator:
Total time: 2.031 secs
Built the following apk(s):
/Users/toddcoulson/documents/coursera/fullstack/confusioncordova/platforms/android/build/outputs/apk/android-debug.apk
ANDROID_HOME=/Users/toddcoulson/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
No emulator specified, defaulting to testOne
Waiting for emulator to start...
emulator: Requested console port 5584: Inferring adb port 5585.
Creating filesystem with parameters:
Size: 69206016
Block size: 4096
Blocks per group: 32768
Inodes per group: 4224
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7 Created filesystem with 11/4224 inodes and 1302/16896 blocks emulator: WARNING: Camera name 'webcam0'
is not found in the list of connected cameras. Use '-webcam-list'
emulator option to obtain the list of connected camera names.
Hax is enabled Hax ram_size 0x77300000 HAX is working and emulator
runs in fast virt mode.
emulator: Listening for console connections on port: 5584 emulator:
Serial number of this emulator (for ADB): emulator-5584
[123145554325504]:WARNING:./android/base/files/IniFile.cpp:158:Failed
to process .ini file
/Users/toddcoulson/.android/emu-update-last-check.ini for reading.
Unknown hax vcpu return 1
Another EDIT:
I was able to get the plug-in to load once I had the android project setup with ionic and got Android Studio to load in an emulator. The emulator is still giving an error I put in the comments, but it did allow me to get past these errors.