yellows8
0370140c12
Added hidGetControllerConnected() and updated CONTROLLER_P1_AUTO comment.
2018-10-22 12:13:59 -04:00
yellows8
a62e29d5cf
Added support for applet video-recording, currently not usable. In appletExit, only call appletSetFocusHandlingMode when g_appletExitProcessFlag is zero, so that it isn't called twice during proc-exit.
2018-10-21 22:24:54 -04:00
yellows8
cfbc3e9278
Added usbCommsSetErrorHandling, don't throw fatalSimple for usbComms by default.
2018-10-19 12:34:17 -04:00
fincs
8e1736c480
Add RandomSeed (14) homebrew ABI key and related handling
2018-10-17 17:17:05 +02:00
yellows8
6a9d194fe3
Added hidGetControllerColors and HidControllerColors. Changed rightColorbuttons to rightColorButtons in HidControllerHeader. Updated CONTROLLER_P1_AUTO comment.
2018-10-16 22:45:44 -04:00
fincs
fba43b0f10
nvBufferCreate: use separate is_cpu_cacheable/is_gpu_cacheable parameters
2018-10-17 00:32:47 +02:00
Michael Scire
40e0bf4db7
Refactor service IPC to support domains.
2018-10-16 17:56:39 -04:00
yellows8
cde495241c
Added _hidActivateNpad/_hidDeactivateNpad for internal use in hidInitialize/hidExit. Added hidSetNpadJoyHoldType. Added _hidCmdWithInputU64 and _hidCmdWithNoInput.
2018-10-15 12:10:07 -04:00
yellows8
d4277b6d32
Added hidSetSupportedNpadIdType(), which is automatically called during init. Closes #148 , however vibration disable+enable in system-settings is still needed.
2018-10-14 21:47:26 -04:00
yellows8
57ad3cc1d2
Clarified comments for appletLockExit.
2018-10-14 16:05:24 -04:00
yellows8
52686826d1
Added fsdevGetDeviceFileSystem().
2018-10-12 22:13:14 -04:00
yellows8
c1b4b95bd7
Updated wiki URLs.
2018-10-11 21:44:51 -04:00
yellows8
42d3c32b37
Use FatalType_ErrorReportAndErrorScreen instead of FatalType_ErrorScreen, on pre-3.0.0. FatalType_ErrorScreen is only available with 3.0.0+, this fixes a regression where using fatalSimple on pre-3.0.0 caused a system hang.
2018-10-11 15:41:05 -04:00
SciresM
347e3b3156
Refactor usb:ds, add 5.0.0+ support to usbComms. ( #181 )
...
* Refactor usb:ds, add support for 5.0.0+. Closes #109 .
2018-10-11 15:35:22 -04:00
yellows8
25052190d2
Added comment regarding PlSharedFontType_NintendoExt.
2018-10-09 11:25:25 -04:00
Samuel P
74ebf370dd
add an exit request hook type, allow to delay exit ( #183 )
...
* add an exit request hook type, allow to delay exit
* appletMainLoop: return false on exit request msg
2018-10-09 11:04:33 -04:00
fincs
1563df3921
Refactor console device, see details:
...
- Added ConsoleRenderer interface, which abstracts all relevant
operations needed to set up and write characters to a text mode display
- ConsoleFont now has tileWidth/tileHeight parameters
- PrintConsole now holds a pointer to a ConsoleRenderer
- Added consoleExit for deinitializing the console
- Added consoleUpdate for updating the display every frame
- Corrected lots of obsolete/outdated comments
- Separated console software renderer into its own file (console_sw.c)
- Added getDefaultConsoleRenderer weak function, for selecting the
default console renderer when none (NULL) is specified in PrintConsole
- Software renderer now takes care of gfxInitDefault/gfxExit
- All these changes are backwards compatible with older programs because:
- gfxInitDefault has double-init protection
- Old programs don't call consoleUpdate/Exit, but their implementation
in the software renderer is identical to what old programs were
already doing anyway
2018-10-06 16:48:03 +02:00
yellows8
4fb364060c
Added support for timezones, hence localtime() will now return actual localtime. Added timeToCalendarTimeWithMyRule and TimeCalendarTime/TimeCalendarAdditionalInfo, which are used for timezones support.
2018-10-05 19:59:24 -04:00
yellows8
6d2699b38d
Added pmshellGetApplicationPid().
2018-10-04 18:44:45 -04:00
yellows8
b4859873ec
Added env AppletFlags handling. Don't enter the msg-loop for AppletType_Application when the output from _appletGetCurrentFocusState is already 1. This fixes the hang issue with AppletType_Application where applet init with AppletType_Application was previously done. Moved AppletType_*Application checks into a dedicated function which also checks for AppletType_SystemApplication, hence some of these funcs which didn't check for AppletType_SystemApplication now support it.
2018-10-04 18:06:00 -04:00
yellows8
0b1b7039ca
Changed the value of TimeType_Default to TimeType_UserSystemClock. When timeGetCurrentTime fails where __nx_time_type isn't TimeType_Default, call it again with TimeType_Default.
2018-10-03 19:48:33 -04:00
yellows8
16bbf3411e
Added automatic process exit handling with applet cmds, see __nx_applet_exit_mode. appletSelfExit is no longer user-accessible, see __nx_applet_exit_mode instead. Added envSetExitFuncPtr. Added disabled _appletSetTerminateResult func.
2018-10-03 19:04:48 -04:00
Vicki Pfau
7a952ab39b
hid: Uncomment function that works now
2018-09-30 16:39:51 -04:00
Vicki Pfau
8add42378b
hid: Add SixAxis sensor support
2018-09-30 16:39:51 -04:00
Vicki Pfau
68b2ad0c1e
hid: Call SetSupportedNpadStyleSet to enable additional Npad features
2018-09-27 16:23:37 -04:00
fincs
eb11e25dc5
Add Module_HomebrewAbi/Loader. Reassign Module_LibnxBinder, as it inadvertently collided with Module_HomebrewLoader.
2018-09-27 21:03:29 +02:00
yellows8
1267019d83
Added partial support for hid SixAxisSensor. Moved some hid ipc code into a single func for using cmds with an input u32. Moved handle-generation code from hidInitializeVibrationDevices into a new func, with some improvements + support for SixAxisSensor.
2018-09-26 22:28:40 -04:00
TuxSH
3bd7ca5f7e
Reword ProcessState enum fields
2018-09-26 21:11:02 +02:00
leo60228
1c948e2d32
applet: Add appletSelfExit()
2018-09-21 15:55:06 -04:00
TuxSH
3ecd841ec2
Update svcGetDebugThreadContext, add svcSetDebugThreadContext, implement threadDumpContext
2018-09-18 01:13:55 +02:00
TuxSH
5498d3e0c7
Add ThreadContext, RegisterGroup, svcGetThreadContext3, threadDumpContext
2018-09-18 01:13:55 +02:00
Vicki Pfau
d9e3be27a2
Add psm:GetChargerType
2018-09-18 01:13:24 +02:00
fincs
4645ef7004
gfx: Add gfxAppendFence. Remove obsolete comments related to double buffering.
2018-09-16 18:03:35 +02:00
fincs
a50942509f
NvGpfifo: Redesign API to allow for submitting multiple entries at once
2018-09-16 16:35:57 +02:00
plutooo
4a13ee3e62
Fix function name to not cause linker problems due to symbol truncation issues
2018-09-15 08:42:32 +02:00
plutooo
7279ef0415
Fix signature of svcContinueDebugEvent for firmware 3.0.0 and forward
2018-09-15 08:14:09 +02:00
plutooo
f2c959b941
Fix compilation error on pre-14 C++
2018-09-15 08:11:31 +02:00
Lioncash
9ff32e3260
Resolve trivial -Wmissing-prototypes warnings
...
Gets rid of trivial warnings caused by headers not being included into
the relevant .c file, empty parameter lists missing void, or functions
missing a prototype in the header.
2018-09-14 19:07:34 +02:00
fincs
e7ae7ea846
nv wrappers: Handle cacheability settings properly, more details:
...
- nvAddressSpaceMapBuffer now accepts a flags parameter instead of
hardcoding NvMapBufferFlags_IsCacheable.
- NvBufferFlags was incorrect and was thus removed.
- nvBufferCreate/nvBufferCreateRw replaced with nvBufferCreate, with
an extra 'is_cacheable' bool parameter. There's no such thing as a
"read-only/read-write" buffer.
- nvBufferMakeCpuUncached/nvBufferMakeCpuCached were removed.
2018-09-14 18:09:58 +02:00
fincs
f469fa7458
Add nvioctlChannel_KickoffPb (uses Ioctl2)
2018-09-14 02:15:55 +02:00
fincs
cae1954ebc
nv: add cloned session handle used with certain requests; add Ioctl2
2018-09-14 02:15:24 +02:00
fincs
ad17cb74c7
kernel/ipc.h: add ipcCloneSession
2018-09-14 01:35:24 +02:00
fincs
1cbc67e650
NvBuffer: actually unmap and free the buffer in nvBufferFree
2018-09-13 20:05:55 +02:00
Rajko Stojadinovic
dcdb5c28a4
Fix fsOpenFileSystem ( #153 )
...
* Fix fsOpenFileSystem
* Make fsOpenFileSystem and fsOpenFileSystemWithId work on all firmware versions
* Add some comments for fsOpenFileSystem(WithId)
2018-09-09 19:56:38 +02:00
Random
122fec028c
Added nsListApplicationRecord and nsListContentMetaStatus ( #163 )
2018-09-09 19:56:16 +02:00
neonsea
20a39ef86c
Add appletBeginBlockingHomeButton() and appletEndBlockingHomeButton() ( #165 )
2018-09-09 19:55:53 +02:00
XorTroll
cd813ddb60
Add psm service and psmGetBatteryChargePercentage function (fixed) ( #166 )
2018-09-09 19:55:36 +02:00
Michael Scire
6ef26bff1a
Implement kernelAbove600()
2018-09-09 19:55:12 +02:00
fincs
52c0cee10c
Add nvioctlChannel_SetTimeout & nvChannelSetTimeout
2018-09-08 14:17:54 +02:00
fincs
de664c5655
error_notifier.h: Add missing functions to header
2018-09-08 14:17:27 +02:00
fincs
999edaa8b2
Changes to NvCmdList and NvGpfifo, see details:
...
- NvCmdList:
- Added 'offset' parameter: start of the cmdlist within the buffer
- Added nvCmdListReset for resetting a cmdlist (offset/num_cmds cleared)
- NvGpfifo:
- nvGpfifoCreate: disabled fence wait
- nvGpfifoSubmit -> nvGpfifoSubmitCmdList:
- Added fence_incr parameter
- Cleaned up flags and gpfifo entry creation
- Now advances cmdlist offset by the number of cmds submitted
instead of going back to the beginning
2018-09-07 17:27:15 +02:00
fincs
7f4001bec2
Potentially fix race condition nvGpfifoCreate by waiting on the fence returned by nvioctlChannel_AllocGpfifoEx2
2018-09-05 14:00:28 +02:00
fincs
d718a8dd28
NvBufferFlags_Nintendo doesn't exist, it's a misreading of the alignment parameter
2018-09-05 13:59:50 +02:00
fincs
e3a7187973
gfx: Remove gfxSetDrawFlip. Make 0 the default transform instead of FLIP_V.
2018-08-31 20:14:50 +02:00
fincs
0d1b8bd723
BqQueueBufferInput: add swapInterval field (purpose currently unknown)
2018-08-31 20:11:53 +02:00
fincs
651dd72ac1
Add bqCancelBuffer and use it in gfx.c
2018-08-31 14:14:54 +02:00
fincs
a62fae427b
Introduce Module_LibnxBinder result codes (based on Android status_t) and binderConvertErrorCode
2018-08-31 13:59:18 +02:00
fincs
819a6f0d89
display/binder.h: refactoring and other changes:
...
- Removed session_handle/native_handle state
- Consequence of the above: simplified binderCreate/binderInitSession
- Now using viGetSession_IHOSBinderDriverRelay internally
- Changed binderGetNativeHandle to return an Event
- Added readable aliases for binderAdjustRefcount
- gfx: now using async bqDequeueBuffer when the binder event is available
2018-08-31 13:05:23 +02:00
fincs
60cbb68f46
gfx: use new NvFence waiting code
2018-08-31 13:05:23 +02:00
fincs
a70acdd445
Implement nvFence
2018-08-31 13:05:23 +02:00
fincs
57e1f5f4cb
nvioctlNvhostCtrl: add EventWaitAsync, EventUnregister; fix EventRegister
2018-08-31 13:05:23 +02:00
fincs
99f37184fb
nvQueryEvent: return an Event instead of a raw Handle
2018-08-31 13:05:23 +02:00
fincs
b26bb6ce76
viGetDisplayVsyncEvent: return an Event instead of a raw handle
2018-08-31 13:05:22 +02:00
fincs
88e9d3bb83
kernel/event.h: several fixes, including autoclear support
2018-08-31 13:05:22 +02:00
fincs
f2f59c75c0
display/gfx.h & buffer_producer.h: Start major refactor, highly WIP
2018-08-31 13:05:22 +02:00
fincs
10684e205a
nvidia/fence.h: sketching on NvFence/NvMultiFence {not implemented}
2018-08-31 13:05:22 +02:00
fincs
30e2ca8ec3
Introduce nvidia/types.h & move NvBufferKind to it (renamed to NvKind)
2018-08-31 13:05:22 +02:00
fincs
ace0dea08b
Move Android types to display/types.h; add PIXEL_FORMAT/GRALLOC_USAGE enums
2018-08-31 13:05:22 +02:00
fincs
4e7159ce02
VI service: major revamp, see details:
...
- Added viOpenDefaultDisplay.
- Replaced viOpenLayer with viCreateLayer.
- NativeWindow parcel data is now parsed by viCreateLayer, and the
ViLayer struct contains a new igbp_binder_obj_id field.
- LayerFlags/LayerId parameters replaced by weak global variables
__nx_vi_layer_id/__nx_vi_stray_layer_flags.
- The root vi:* session is closed on startup.
- Simplified corresponding gfx code.
- Misc style fixes
2018-08-31 13:05:22 +02:00
fincs
180cd9b550
display/parcel.h: publish ParcelHeader struct
2018-08-31 13:05:22 +02:00
Jules Blok
e234129598
gfx: Add a buffer index to gfxGetFramebufferHandle().
2018-08-31 13:05:22 +02:00
Jules Blok
4f331eb9f7
gfx: Add function to query framebuffer pitch.
2018-08-31 13:05:22 +02:00
Jules Blok
06e50f74ab
gfx: Add a call to get the framebuffer nvmap handle.
2018-08-31 13:05:22 +02:00
plutooo
de93886c56
Buildfix
2018-08-31 13:05:22 +02:00
plutooo
a3a2e57fc2
More updates to nvidia
2018-08-31 13:05:22 +02:00
plutooo
1c88d99131
Implement cmd list
2018-08-31 13:05:22 +02:00
plutooo
d6dbb59872
Change code style
2018-08-31 13:05:22 +02:00
plutooo
9c234d4d40
Started sketching on cmd lists
2018-08-31 13:05:22 +02:00
plutooo
6d21700ff7
Get rid of flag todo
2018-08-31 13:05:22 +02:00
plutooo
28cac45af8
Completing error notifier
2018-08-31 13:05:22 +02:00
plutooo
267e4e509b
Error notifier bringup
2018-08-31 13:05:22 +02:00
plutooo
d6f2e1118c
Zcull context works
2018-08-31 13:05:22 +02:00
plutooo
420d445a84
Minor fixes, now gets to whitescreen
2018-08-31 13:05:22 +02:00
plutooo
577a76dc06
Minor fixes, adding custom flag to buffer allocation
2018-08-31 13:05:22 +02:00
plutooo
1a22b484f8
Implemented zcull_ctx, 3d_ctx, random fixes
2018-08-31 13:05:21 +02:00
plutooo
cff044f497
Implement 3d_ctx
2018-08-31 13:05:21 +02:00
plutooo
87d29bdeb3
gpu takes reference on singletons
2018-08-31 13:05:21 +02:00
plutooo
f62f6e8b54
Add refcounting to nvidia stuff
2018-08-31 13:05:21 +02:00
plutooo
e7daaf1e71
Hide nv tmem size from gfx
2018-08-31 13:05:21 +02:00
plutooo
74958c57ce
Use reference counting across services
2018-08-31 13:05:21 +02:00
plutooo
194e335532
Let nv reference applet
2018-08-31 13:05:21 +02:00
plutooo
efacee6956
Simplify nv
2018-08-31 13:05:21 +02:00
plutooo
4b20f609a9
Stubbed 3d_ctx
2018-08-31 13:05:21 +02:00
plutooo
1660f99afe
Stubbed gpfifo, zcull_ctx
2018-08-31 13:05:21 +02:00
plutooo
4bd1d3313c
Fix nvgfx, add nvinfo
2018-08-31 13:05:21 +02:00
plutooo
f6aa4e3d52
Minimize nvgfx.c
2018-08-31 13:05:21 +02:00
plutooo
b24f6babbb
Make compilable
2018-08-31 13:05:21 +02:00
plutooo
61ebd9ddfd
Started implementing channels
2018-08-31 13:05:21 +02:00
plutooo
9a759c26f5
Rename nvmap->buffer
2018-08-31 13:05:21 +02:00
plutooo
04751087ca
Stylechanges to binder, and implemented gpu address space
2018-08-31 13:05:21 +02:00
plutooo
cd753b1b58
Implemented nvmap.c
2018-08-31 13:05:21 +02:00
plutooo
d8bb563546
Renamed gfx/ to display/
2018-08-31 13:05:21 +02:00
plutooo
978c3f7f15
Style fixes, use structs for parsing parcels, renamed bufferProducer to bq
2018-08-31 13:05:21 +02:00
fincs
772c839c8c
Add audio/ ("AudioDriver"), a high level wrapper around audren
2018-08-31 13:05:21 +02:00
fincs
6fbf25fb62
Add audren:u IPC service wrapper with structure definitions
2018-08-31 13:05:21 +02:00
fincs
ce23a139f4
arm/counter.h: add armGetSystemTickFreq
2018-08-31 13:05:21 +02:00
fincs
915879a362
Fix #154
2018-08-24 16:24:24 +02:00
XorTroll
722450ae25
Add bpc service with ShutdownSystem and RebootSystem commands ( #144 )
2018-08-24 16:21:16 +02:00
Juan Antonio Hernández Cánovas
377683acd5
Add rwlockInit ( #155 )
2018-08-24 16:20:01 +02:00
fincs
9fa3873fc9
Fix comments in svc.h & thread.h
2018-08-06 17:58:31 +02:00
fincs
1e349b6ce8
Change CondVar API to have the mutex be passed to condvarWait* instead of condvarInit
2018-08-05 14:31:31 +02:00
fincs
062ef2b188
Add svcGetThreadCoreMask and svcSetThreadCoreMask
2018-08-05 14:30:08 +02:00
fincs
0589b39f7a
Add arm/counter.h with armGetSystemTick (supersedes svcGetSystemTick)
2018-08-05 14:29:47 +02:00
fincs
314050065a
Remove ALIGN in favor of C11/C++11 alignas, guard other #defines against redefinition
2018-08-05 13:23:08 +02:00
plutooo
9fc5e85c88
Event bringup
2018-08-05 13:23:08 +02:00
Rajko Stojadinovic
d726c7c55c
Implement some missing fs functions ( #141 )
2018-07-28 17:49:14 +02:00
klockee
27b8868646
Wrapped and implemented fsOpenBisFilesystem() ( #140 )
2018-07-28 17:08:42 +02:00
Rajko Stojadinovic
01fb4218ba
Add ncmContentStorageGetPlaceHolderPath and ncmContentStorageCleanupAllPlaceHolder
2018-07-27 18:14:43 +02:00
Rajko Stojadinovic
1b7acba590
add ncmContentStorageDisableForcibly and ncmContentMetaDatabaseDisableForcibly
2018-07-27 18:14:43 +02:00
Rajko Stojadinovic
c3278ffd34
Add ncmContentStorage functions needed for writing content
2018-07-27 18:14:43 +02:00
Rajko Stojadinovic
e1d50dc129
Fix signature of ncmContentMetaDatabaseSet/Get, add ncmContentMetaDatabaseList ( #134 )
...
* Fix ncmContentMetaDatabaseSet/ncmContentMetaDatabaseGet, add ncmContentMetaDatabaseList
2018-07-25 20:15:54 -04:00
fincs
37689b53b6
Add #pragma once to arm/atomics.h
2018-07-24 16:54:07 +02:00
Joel16
2bcede91ba
Add fsFsCleanDirectoryRecursively
2018-07-19 11:33:56 -04:00
tesnos
9530da3237
Add fsOpenBisStorage and fsStorageGetSize ( #130 )
...
* add fsOpenBisStorage and fsStorageGetSize
2018-07-19 11:16:38 -04:00
Adubbz
e4c3f7d3a2
Added ncm commands ( #129 )
2018-07-07 04:03:48 +02:00
Daniel Edwards
ffc404a7f6
Added accountGetUserCount and accountListAllUsers ( #103 )
...
* Added accountGetUserCount and accountListAllUsers
2018-07-01 16:34:21 -04:00
Kevoot
fbe2c1f2ce
Add Semaphore ( #125 )
2018-07-01 00:45:41 +02:00
SciresM
97b295acbc
Fatal: Only exit process if required, exit cleanly. ( #127 )
...
* Fatal: Only exit process if required, exit cleanly.
2018-06-26 11:28:07 -04:00
fincs
a9c0b213ff
Add missing #pragma once to kernel/condvar.h
2018-06-26 13:12:44 +02:00
SciresM
dbbaf64ad3
ns:dev: Add TerminateProcess and TerminateProgram ( #122 )
...
* ns:dev: Add TerminateProcess and TerminateProgram
2018-06-25 12:02:08 -04:00
Michael Scire
9770f4bb18
Implement svcGetThreadList
2018-06-25 11:18:07 -04:00
Michael Scire
481d27d1f1
Implement svcGetDebugThreadParam
2018-06-25 11:18:07 -04:00
SciresM
773ff46543
Improve IpcParsedCommand domain message info. ( #112 )
...
* Improve IpcParsedCommand domain message info.
2018-06-25 11:08:48 -04:00
Michael Scire
c26e410ed8
Fatal: Make fatalSimple not create report, add FatalType enum
2018-06-25 12:33:15 +02:00
Joel16
eb3c264e88
Add setsysSetColorSetId and region codes
2018-06-13 19:34:20 -04:00
Somebody Whoisbored
ad4af954c2
Added nifm service ( #110 )
...
* Added nifm service
* Properly implemented gethostid
* Implemented gethostname
2018-06-07 18:00:51 -04:00
Joel
3c6344d7f3
Add more set:sys Get*/Set* functions ( #108 )
...
* Use setsysGetFlag/setsysSetFlag instead of setsysGet*/setsysSet*.
* Added more setsys Flags (now handled via an enum).
2018-06-07 16:06:36 -04:00
Joel
1abfb02460
Add nsGetSpace commands ( #111 )
...
* Add nsGetSpace commands
2018-06-05 22:15:52 -04:00
Adubbz
d3889fb9ed
Added a few misc IPC wrappers ( #107 )
...
* Added a few misc IPC wrappers
2018-06-04 22:05:51 -04:00
Joel
deab92d486
Add some setsysGet* functions ( #98 )
...
* Add some setsysGet* functions
2018-05-22 11:33:45 -04:00
yellows8
b11288ea44
In jitTransitionToWritable() and jitTransitionToExecutable(), only run the JitType_CodeMemory handling code when it's actually needed. Actually free j->rx_addr in jitClose() for JitType_JitMemory.
2018-05-21 16:59:49 -04:00
yellows8
a12eb11eab
Sync jit SVC names with wiki + updated the comment for JitType_JitMemory in jit.h.
2018-05-21 14:32:02 -04:00
Joel
c28cae95cd
Add setGetSerialNumber ( #95 )
2018-05-19 16:50:00 +02:00
yellows8
df203f0697
Added hidMergeSingleJoyAsDualJoy().
2018-05-18 18:42:48 -04:00
Dave Murphy
28ebb9ed0c
implement nxlink stdio redirect ( #94 )
2018-05-17 00:22:47 +02:00
Dave Murphy
71036319a7
translate crlf eol markers to lf for consistency
2018-05-15 12:27:25 +02:00
Matthew Bell
61d4140773
Implement pm:info ( #88 )
...
* Added pm:info and GetTitleId
2018-05-14 21:09:43 -04:00
yellows8
05cde6649b
Updated svcGetDebugEvent and svcContinueDebugEvent in svc.h.
2018-05-14 12:51:06 -04:00
yellows8
165932fbde
Added a comment for fsdevCommitDevice().
2018-05-12 11:56:04 -04:00
yellows8
02ff4915d9
Initialize cmdreq buf[1] in ipcCloseSession().
2018-05-11 11:25:46 -04:00