http://bugs.winehq.org/show_bug.cgi?id=30600
Bug #: 30600 Summary: Emergency 3 crash with page fault on read access to 0x00000000 in 32-bit code (0x100ac010) Product: Wine Version: 1.5.3 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: blocker Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: linuxcobra@gmx.de Classification: Unclassified
Created attachment 40041 --> http://bugs.winehq.org/attachment.cgi?id=40041 Backtrace-output
when i install this Game under wine, the install works, but when i will start the game, will not work.
via original Windows XP / ME ( both tested) : no problems
http://bugs.winehq.org/show_bug.cgi?id=30600
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Emergency 3 crash with page |Emergency 3 crashes on |fault on read access to |start |0x00000000 in 32-bit code | |(0x100ac010) | Severity|blocker |normal
--- Comment #1 from Austin English austinenglish@gmail.com 2012-05-05 14:17:52 CDT --- Not a blocker.
http://bugs.winehq.org/show_bug.cgi?id=30600
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #2 from joaopa jeremielapuree@yahoo.fr 2012-05-05 14:45:11 CDT --- Does the crash happen with the demo http://www.jeuxvideo.com/telecharger/jeux-et-demos/00009549-emergency-3-pc.h...
http://bugs.winehq.org/show_bug.cgi?id=30600
--- Comment #3 from Linuxcobra linuxcobra@gmx.de 2012-05-05 16:19:12 CDT --- (In reply to comment #2)
Does the crash happen with the demo http://www.jeuxvideo.com/telecharger/jeux-et-demos/00009549-emergency-3-pc.h...
this demo freezes wine - with QT-Wine i become following log (for this Demo)
0 STDOUT und STDERR der Anwendung: Xlib: extension "GLX" missing on display ":0". err:wgl:X11DRV_WineGL_InitOpenglInfo couldn't initialize OpenGL, expect problems err:d3d_caps:WineD3D_CreateFakeGLContext Can't find a suitable iPixelFormat. err:d3d:InitAdapters Failed to get a gl context for default adapter Direct3D8 is not available without OpenGL. ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_pulse.so ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: Keine Berechtigung fixme:gstreamer:GST_Connect Could not make source filter, are gstreamer-plugins-* installed for 32 bits? fixme:quartz:MPEGSplitter_query_accept MPEG-1 system streams not yet supported. fixme:gstreamer:GST_Connect Could not make source filter, are gstreamer-plugins-* installed for 32 bits? fixme:quartz:MPEGSplitter_query_accept MPEG-1 system streams not yet supported. fixme:gstreamer:GST_Connect Could not make source filter, are gstreamer-plugins-* installed for 32 bits? fixme:quartz:MPEGSplitter_query_accept MPEG-1 system streams not yet supported.
http://bugs.winehq.org/show_bug.cgi?id=30600
--- Comment #4 from joaopa jeremielapuree@yahoo.fr 2012-05-05 22:49:17 CDT --- Created attachment 40054 --> http://bugs.winehq.org/attachment.cgi?id=40054 backtrace with +relay channel enabled
Confirming.
http://bugs.winehq.org/show_bug.cgi?id=30600
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.jeuxvideo.com/te | |lecharger/jeux-et-demos/000 | |09549-emergency-3-pc.htm CC| |focht@gmx.net
--- Comment #5 from Anastasius Focht focht@gmx.net 2012-05-06 06:21:56 CDT --- Hello,
the demo runs fine here (playable).
$ wine --version wine-1.5.3-164-gdec3d50
$ nvidia-settings --glxinfo | grep string server glx vendor string: NVIDIA Corporation server glx version string: 1.4 client glx vendor string: NVIDIA Corporation client glx version string: 1.4 OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GT 425M/PCIe/SSE2 OpenGL version string: 4.2.0 NVIDIA 295.40
The relay log is useless, too much interleaving from other wine processes.
Make sure you're using a clean WINEPREFIX for the demo install. Start 'notepad' before running the demo from another terminal to skip out unwanted traces. For trace logs start the demo in append mode:
WINEDEBUG=+tid,+seh,+relay wine ./Em3.exe >>log.txt 2>&1
Regards
http://bugs.winehq.org/show_bug.cgi?id=30600
--- Comment #6 from joaopa jeremielapuree@yahoo.fr 2012-05-06 14:32:28 CDT --- Still the same. Surely, my linux box is broken.
http://bugs.winehq.org/show_bug.cgi?id=30600
--- Comment #7 from joaopa jeremielapuree@yahoo.fr 2012-05-06 14:35:42 CDT --- Created attachment 40064 --> http://bugs.winehq.org/attachment.cgi?id=40064 backtrace with the requested channels debug
https://bugs.winehq.org/show_bug.cgi?id=30600
Jarkko K jarkko_korpi@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jarkko_korpi@hotmail.com
--- Comment #8 from Jarkko K jarkko_korpi@hotmail.com --- fixme:win:EnumDisplayDevicesW ((null),0,0xdcf7d8,0x00000000), stub! fixme:wgl:X11DRV_wglChoosePixelFormatARB unused pfAttribFList err:quartz:GetClassMediaFile Media class not found fixme:quartz:Parser_QueryInterface No interface for {37d84f60-42cb-11ce-8135-00aa004bb851}! fixme:quartz:MPEGSplitter_query_accept MPEG-1 system streams not yet supported. err:quartz:GetClassMediaFile Media class not found fixme:quartz:Parser_QueryInterface No interface for {37d84f60-42cb-11ce-8135-00aa004bb851}! fixme:quartz:MPEGSplitter_query_accept MPEG-1 system streams not yet supported. err:quartz:GetClassMediaFile Media class not found fixme:quartz:Parser_QueryInterface No interface for {37d84f60-42cb-11ce-8135-00aa004bb851}! fixme:quartz:MPEGSplitter_query_accept MPEG-1 system streams not yet supported. err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x8df0e19
I got same issue with wine 1.7.18
Overriding quartz didnt help.
https://bugs.winehq.org/show_bug.cgi?id=30600
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello folks,
quartz is not the blocking issue here - unlike in 'Emergency 4'. The older game seems to handle failure to play intro video better.
My test (comment #3, 2012) was with NVIDIA blob -> ok.
I encountered two problems with my current machines that are either pure Mesa/Nouveau or "Bumblebee/Optimus" with Mesa/Intel and NVIDIA Blob.
First one is with Mesa/Intel and Mesa/Noveuau setups: they fail very early.
--- snip --- $ glxinfo | grep OpenGL OpenGL vendor string: nouveau OpenGL renderer string: Gallium 0.4 on NVC1 OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.3 (git-ccef890) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 10.6.3 (git-ccef890) OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.6.3 (git-ccef890) OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00 OpenGL ES profile extensions: --- snip ---
--- snip --- $ glxinfo | grep OpenGL OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.3 (git-ccef890) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 10.6.3 (git-ccef890) OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.6.3 (git-ccef890) OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00 OpenGL ES profile extensions: --- snip ---
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/sixteen tons entertainment/Emergency 3 Demo
$ WINEDEBUG=+tid,+seh,+relay,+wgl wine ./Em3.exe >>log.txt 2>&1 ... 0028:Call gdi32.ChoosePixelFormat(000c0031,008821e0) ret=00662b04 0028:Call opengl32.wglChoosePixelFormat(000c0031,008821e0) ret=7eb6e548 0028:trace:wgl:wglChoosePixelFormat 0xc0031 0x8821e0: size 40 version 1 flags 45 type 0 color 32 0,0,0,0 accum 0 depth 16 stencil 0 aux 0 0028:Call gdi32.__wine_get_wgl_driver(000c0031,0000000d) ret=7a8c3fb9 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo GL version : 3.0 Mesa 10.6.3 (git-ccef890). 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo GL renderer : Gallium 0.4 on NVC1. 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo GLX version : 1.4. 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Server GLX version : 1.4. 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Server GLX vendor: : SGI. 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Client GLX version : 1.4. 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Client GLX vendor: : Mesa Project and SGI. 0028:trace:wgl:X11DRV_WineGL_InitOpenglInfo Direct rendering enabled: True 0028:trace:wgl:has_opengl GLX is up and running error_base = 170 0028:trace:wgl:register_extension 'WGL_ARB_create_context' 0028:trace:wgl:register_extension 'WGL_ARB_create_context_profile' 0028:trace:wgl:register_extension 'WGL_ARB_pixel_format_float' 0028:trace:wgl:register_extension 'WGL_ATI_pixel_format_float' 0028:trace:wgl:register_extension 'WGL_ARB_extensions_string' 0028:trace:wgl:register_extension 'WGL_ARB_make_current_read' 0028:trace:wgl:register_extension 'WGL_ARB_multisample' 0028:trace:wgl:register_extension 'WGL_ARB_pbuffer' 0028:trace:wgl:register_extension 'WGL_ARB_pixel_format' 0028:trace:wgl:register_extension 'WGL_ARB_render_texture' 0028:trace:wgl:register_extension 'WGL_NV_render_texture_rectangle' 0028:trace:wgl:register_extension 'WGL_EXT_extensions_string' 0028:trace:wgl:register_extension 'WGL_EXT_swap_control' 0028:trace:wgl:register_extension 'WGL_EXT_framebuffer_sRGB' 0028:trace:wgl:register_extension 'WGL_WINE_pixel_format_passthrough' 0028:trace:wgl:init_pixel_formats Found 120 bitmap capable fbconfigs ... 0028:Call gdi32.SetPixelFormat(000c0031,0000000a,008821e0) ret=00662b15 0028:Call opengl32.wglSetPixelFormat(000c0031,0000000a,008821e0) ret=7eb6e6f4 0028:Call gdi32.__wine_get_wgl_driver(000c0031,0000000d) ret=7a8c3fb9 0028:Ret gdi32.__wine_get_wgl_driver() retval=7d63cd40 ret=7a8c3fb9 0028:trace:wgl:set_pixel_format (0xc0031,10) 0028:trace:wgl:get_pixel_format Returning fmt_id=0x91 for iPixelFormat=10 0028:trace:wgl:set_pixel_format FBConfig have : 0028:trace:wgl:set_pixel_format - FBCONFIG_ID 0x91 0028:trace:wgl:set_pixel_format - VISUAL_ID 0x1f9 0028:trace:wgl:set_pixel_format - DRAWABLE_TYPE 0x7 0028:trace:wgl:set_win_format created GL drawable 4400003 for win 0x1006c format 91 0028:Call winex11.drv.WindowPosChanging(0001006c,00000000,0000181f,00dcfa20,00dcfa10,00dcf9a8,00dcf984) ret=7ecd82ba 0028:Ret winex11.drv.WindowPosChanging() retval=00000000 ret=7ecd82ba 0028:Call winex11.drv.WindowPosChanged(0001006c,00000000,0000181f,00dcfa20,00dcfa10,00dcf9a8,00000000,00000000) ret=7ecd87a9 0028:Ret winex11.drv.WindowPosChanged() retval=00000000 ret=7ecd87a9 0028:Ret opengl32.wglSetPixelFormat() retval=00000001 ret=7eb6e6f4 0028:Ret gdi32.SetPixelFormat() retval=00000001 ret=00662b15 0028:Call opengl32.wglCreateContext(000c0031) ret=00662b20 0028:Call gdi32.__wine_get_wgl_driver(000c0031,0000000d) ret=7a8c3fb9 0028:Ret gdi32.__wine_get_wgl_driver() retval=7d63cd40 ret=7a8c3fb9 0028:trace:wgl:glxdrv_wglCreateContext 0xc0031 -> 0x15b838 0028:Call ntdll.RtlAllocateHeap(00110000,00000008,00000018) ret=7a8c4b93 0028:Ret ntdll.RtlAllocateHeap() retval=00156360 ret=7a8c4b93 0028:Ret opengl32.wglCreateContext() retval=00011000 ret=00662b20 0028:Call opengl32.wglMakeCurrent(000c0031,00011000) ret=00662b2e 0028:trace:wgl:glxdrv_wglMakeCurrent (0xc0031,0x15b838) 0028:trace:wgl:describeContext Context 0x15b838 have (vis:0x7c8dd378): 0028:trace:wgl:describeContext - FBCONFIG_ID 0x91 0028:trace:wgl:describeContext - VISUAL_ID 0x1f9 0028:trace:wgl:glxdrv_wglMakeCurrent hdc 0xc0031 drawable 4400003 fmt 0x159ac0 ctx 0x7c8dd510 X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 154 (GLX) Minor opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 196 Current serial number in output stream: 197 --- snip ---
Works with NVIDIA blob:
--- snip --- $ glxinfo | grep OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GTX 850M/PCIe/SSE2 OpenGL core profile version string: 4.4.0 NVIDIA 352.21 OpenGL core profile shading language version string: 4.40 NVIDIA via Cg compiler OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 4.5.0 NVIDIA 352.21 OpenGL shading language version string: 4.50 NVIDIA OpenGL context flags: (none) OpenGL profile mask: (none) OpenGL extensions: --- snip ---
With NVIDIA blob I encountered another albeit expected issue...
Use of "Virtual Desktop" mode and choosing various in-game resolutions from game launcher dialog.
--- snip --- $ wine explorer /desktop=foo,800x600 ./Em3.exe # game launcher selection 800x600 = ok
$ wine explorer /desktop=foo,800x600 ./Em3.exe # game launcher selection 1024x768 = ok, resized (enlarged) virtual desktop
$ wine explorer /desktop=foo,800x600 ./Em3.exe # game launcher selection 1280x960 = crash (fails to switch mode)
$ wine explorer /desktop=foo,800x600 ./Em3.exe # game launcher selection 1280x1024 = ok, resized (enlarged) virtual desktop
$ wine explorer /desktop=foo,1280x960 ./Em3.exe # game launcher selection 1280x960 = ok
$ wine explorer /desktop=foo,1280x960 ./Em3.exe # game launcher selection 1280x1024 = ok, resized (enlarged) virtual desktop --- snip ---
Relevant part of trace log for failing case (vgl is some custom gl/wrapper the game engine uses):
--- snip --- ... 0037:CALL vision71.?Init@VisVideo_cl@@QAEJPBD0P6AXPAUHWND__@@IIJ@Z@Z(<unknown, check return>) ret=006639de 0037:CALL vBase71.?VGLInitialize@@YAJPAD0P6AXPAUHWND__@@IIJ@Z@Z(<unknown, check return>) ret=1003f169 ... 0037:Call KERNEL32.LoadLibraryA(002b117c "OpenGL32.dll") ret=0027b952 0037:Ret KERNEL32.LoadLibraryA() retval=7a840000 ret=0027b952 0037:RET vBase71.?VGLInitialize@@YAJPAD0P6AXPAUHWND__@@IIJ@Z@Z() retval=00000000 ret=1003f169 ... 0037:Call msvcr71.strncpy(00ddbaba,00dcdc38 "Initialising video driver: 0\r\n",0000001e) ret=10011958 ... 0037:RET vision71.?Init@VisVideo_cl@@QAEJPBD0P6AXPAUHWND__@@IIJ@Z@Z(00e02468,00e02468,00000000) retval=00000000 ret=006639de 0037:CALL vision71.?SaveGamma@VisVideo_cl@@QAEXXZ(<unknown, check return>) ret=006639f8 0037:CALL vBase71.?VGLGetGammaRamp@@YAJPAM00@Z(101663e4,101667e4,10166be4) ret=1003f278 ... 0037:RET vBase71.?VGLGetGammaRamp@@YAJPAM00@Z() retval=00000000 ret=1003f278 0037:RET vision71.?SaveGamma@VisVideo_cl@@QAEXXZ() retval=00000000 ret=006639f8 ... 0037:CALL vision71.?SetMode@VisVideo_cl@@QAEJHHJJHHH@Z(<unknown, check return>) ret=0066378b 0037:CALL vBase71.?VGLSetScreen@@YAJPAUVGLMode_t@@PAUHWND__@@@Z(<unknown, check return>) ret=1003f329 0037:Call KERNEL32.GetProcAddress(7ecc0000,002b6792 "GetClientRect") ret=002a74e6 0037:Ret KERNEL32.GetProcAddress() retval=7ecc99e8 ret=002a74e6 0037:Call user32.GetClientRect(0001009c,00dcfbd8) ret=0027a9b8 0037:Ret user32.GetClientRect() retval=00000001 ret=0027a9b8 0037:Call user32.EnumDisplaySettingsA(00000000,00000000,00dcfb08) ret=0027a5ce 0037:Call winex11.drv.EnumDisplaySettingsEx(00000000,00000000,00dcf980,00000000) ret=7ed40e11 0037:Ret winex11.drv.EnumDisplaySettingsEx() retval=00000001 ret=7ed40e11 0037:Ret user32.EnumDisplaySettingsA() retval=00000001 ret=0027a5ce ... 0037:Call user32.EnumDisplaySettingsA(00000000,0000001e,00dcfb08) ret=0027a5ce 0037:Call winex11.drv.EnumDisplaySettingsEx(00000000,0000001e,00dcf980,00000000) ret=7ed40e11 0037:Ret winex11.drv.EnumDisplaySettingsEx() retval=00000000 ret=7ed40e11 0037:Ret user32.EnumDisplaySettingsA() retval=00000000 ret=0027a5ce 0037:RET vBase71.?VGLSetScreen@@YAJPAUVGLMode_t@@PAUHWND__@@@Z() retval=fffffe6e ret=1003f329 ... 0037:Call msvcr71.strncpy(00ddbad8,00dcdbc0 "Setting screen mode to x:1280 / y:960 / bpp:32 / refresh:0\r\n",0000003c) ret=10011958 ... 0037:Call msvcr71.strncpy(00ddbb14,00dcdbd4 "Screen Mode is fullscreen, return value: -402\r\n",0000002f) ret=10011958 ... 0037:Call msvcr71.strncpy(00ddbb43,00dcdbd0 "Stencil buffer: 0 bit / ZBuffer: 24 bit\r\n",00000029) ret=10011958 ... 0037:CALL vBase71.?VGLRestoreScreen@@YAXXZ(<unknown, check return>) ret=1003f399 ... 0037:Call user32.ChangeDisplaySettingsA(002e6868,00000004) ret=0027a480 ... 0037:Ret user32.ChangeDisplaySettingsA() retval=00000000 ret=0027a486 ... 0037:RET vBase71.?VGLRestoreScreen@@YAXXZ() retval=00000000 ret=1003f399 0037:RET vision71.?SetMode@VisVideo_cl@@QAEJHHJJHHH@Z(00000500,000003c0,00000020,00000018,00000001,00000000,0001009c) retval=fffffe6e ret=0066378b ... 0037:Call msvcr71._vsnprintf(00e13e50,00000800,008325d8 "?VulpineWrapper::ChangeScreenMode(): VERR_NOSCREENMODE - Screen mode could not be set",00dcfc44) ret=00598545 ... --- snip ---
At this point the game continues to initialize further (input, sound) and finally hits some code that was skipped due to failure to switch screen mode (GL extensions/function pointer table -> NULL)
So what's the actual problem this bug is about?
$ sha1sum Emergency3_Demo_JeuxVideo.com_9549.zip 719b6857cfe3ec14f4ae5107506095f85be7f08e Emergency3_Demo_JeuxVideo.com_9549.zip
$ du -sh Emergency3_Demo_JeuxVideo.com_9549.zip 75M Emergency3_Demo_JeuxVideo.com_9549.zip
$ wine --version wine-1.7.51
Regards
https://bugs.winehq.org/show_bug.cgi?id=30600
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #10 from super_man@post.com --- Dead download. There was recently another bug related to this that had another download link I just don't know how I could easily find it anymore.
https://bugs.winehq.org/show_bug.cgi?id=30600
--- Comment #11 from joaopa jeremielapuree@yahoo.fr --- Bug fixed in wine-4.9 You can check with the demo https://www.gamepressure.com/download.asp?ID=6357
The movies do not show but it is another problem. And be careful, the time of loading is long...
Can an administrator close this bug as FIXED?
https://bugs.winehq.org/show_bug.cgi?id=30600
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.jeuxvideo.com/te |https://www.gamepressure.co |lecharger/jeux-et-demos/000 |m/download.asp?ID=6357 |09549-emergency-3-pc.htm |
https://bugs.winehq.org/show_bug.cgi?id=30600
--- Comment #12 from joaopa jeremielapuree@yahoo.fr --- YESSSSS!!!!
The bug is fixed in wine-6.19. I tested with MESA/AMD chipset.
Everything is fine now.
Can an administrator close this bug as FIXED?
https://bugs.winehq.org/show_bug.cgi?id=30600
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox.xerox2000x@gmail.com Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #13 from Louis Lenders xerox.xerox2000x@gmail.com --- (In reply to joaopa from comment #12)
YESSSSS!!!!
The bug is fixed in wine-6.19. I tested with MESA/AMD chipset.
Everything is fine now.
Can an administrator close this bug as FIXED?
Ok , done.
https://bugs.winehq.org/show_bug.cgi?id=30600
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #14 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 6.20.