Bond-009
4d311870d2
Fix websocket handling
2020-01-13 20:06:08 +01:00
Bond_009
5ca68f9623
Fix nullref exception and added logging
2020-01-13 20:06:08 +01:00
Bond_009
976459d3e8
Rewrite WebSocket handling code
2020-01-13 20:06:08 +01:00
Bond_009
2ef4ffd698
More warnings (removed)
2019-12-11 00:13:57 +01:00
Bond-009
affb58ef9e
Apply suggestions from code review
...
Co-Authored-By: dkanada <dkanada@users.noreply.github.com>
2019-12-10 16:22:03 +01:00
Bond_009
42ffddc269
Fix more warnings
2019-11-27 16:29:56 +01:00
Vasily
5263aaa026
Merge pull request #1503 from cvium/webapi_v2
...
Move StartupWizard to ASP.NET Web Api
2019-11-27 11:50:06 +03:00
Claus Vium
2af5922af0
Fix review comments
2019-11-24 18:25:43 +01:00
Claus Vium
27e3cf1558
Move appbuilder and service collection to Jellyfin.Server
2019-11-24 15:27:58 +01:00
Claus Vium
3f651de24c
Add authentication and remove versioning
2019-11-23 16:31:02 +01:00
Bond-009
b477b3874e
Fix some warnings
2019-11-22 16:15:31 +01:00
Bond-009
b14d6d0417
Fix GetPathValue function
2019-11-13 16:32:33 +01:00
Vasily
6b6fede2e0
Address review comments
2019-10-16 16:13:59 +03:00
Vasily
82f8345aa5
Log to debug all HTTP 500 response urls
2019-10-14 13:22:53 +03:00
Vasily
1176749f14
Merge pull request #1863 from joshuaboniface/fix-baseurl-issues
...
Fix inconsistent BaseUrl behavior
2019-10-09 19:24:41 +03:00
Joshua Boniface
b96079fee6
Make NormalizeUrlPath static
2019-10-09 09:22:55 -04:00
Vasily
03450f383f
Fix template for logging
2019-10-09 14:05:32 +03:00
Vasily
8109c7eb30
Always log at least error message when error happens during request processing
2019-10-09 14:00:22 +03:00
Vasily
33b69a7099
Set response length and mime type correctly when reporting an error
2019-10-09 13:54:05 +03:00
Joshua Boniface
2a79ae0a6e
Normalize baseUrl behaviour
...
Fully normalizes the baseUrl behaviour to better match how this sort of
feature works in other programs.
1. The baseUrl is always appended to paths, even the built-in `/emby`
and `/mediabrowser` paths.
2. The baseUrl is set statically at class instance creation, to ensure
it persists through changes until the next restart.
3. Configuration is normalized using a function when set, to ensure it's
in a standard `/mypath` format with leading `/`.
4. Cleans up the conditionals around default redirects. For sanity after
changing the URL, it will match *any* path that doesn't match the
current baseUrl and redirect it back to the main page (with baseUrl).
5. Adds a second method, NormalizeUrlPath, to avoid lots of `+ "/" +`
string manipulations which are unclean - we should always have a leading
slash.
6. Sets the default baseUrl to an empty string to avoid unexpected
behaviour, though this would be worked-around automatically.
7. Adds some debug logs whenever a URL is normalized, to help track down
issues with this code (if any arise).
2019-10-08 18:06:03 -04:00
Vasily
fc99f1f563
Merge pull request #1785 from dkanada/compat
...
Add mediabrowser route back for now
2019-09-25 14:18:21 +03:00
dkanada
b5b7db1f32
add an exception to logging
2019-09-24 23:59:24 +09:00
dkanada
ab7e697f30
add mediabrowser route back for now
2019-09-24 23:59:24 +09:00
Bond_009
c9820d30ed
Fix multiple mistakes and warnings
2019-09-23 20:32:44 +02:00
Erik Larsson
74864832ca
Set log level to debug for HTTP range requests
...
This removes some spam when a DLNA renderer uses byte seeking.
2019-09-18 18:29:15 +02:00
Bond-009
ee637e8fec
Fix warnings, improve performance ( #1665 )
...
* Fix warnings, improve performance
`QueryResult.Items` is now a `IReadOnlyList` so we don't need to
allocate a new `Array` when we have a `List` (and `Items` shouldn't need to
be mutable anyway)
* Update Providers .csproj to latest C#
* Remove extra newline from DtoService.cs
* Remove extra newline from UserLibraryService.cs
2019-09-02 02:19:29 -04:00
dkanada
97d6c2db6b
keep old base url for now
2019-08-11 00:35:18 -07:00
dkanada
d521e5c36a
add base url to server configuration
2019-08-11 00:35:18 -07:00
dkanada
c987203f5a
remove old routes from http server
2019-08-11 00:33:13 -07:00
Bond_009
9fff4b060e
Replace custom code with Asp.Net Core code
2019-08-09 22:36:20 +02:00
Erik Larsson
0e6417c9fa
Set log level to debug for HTTP range requests
2019-08-03 12:37:02 +02:00
Bond-009
ce1fa42f9d
Merge branch 'master' into tasks
2019-06-01 17:06:01 +02:00
Joshua M. Boniface
2bc378a9c3
Merge pull request #1337 from jellyfin/release-10.3.z
...
Backmerge for 10.3.2 release
2019-04-30 23:35:11 -04:00
Bond-009
61d7bed181
Merge pull request #1304 from jellyfin/release-10.3.z
...
Backmerge 10.3.1
2019-04-25 07:27:37 +02:00
Bond_009
71479286e9
Fix #1234
2019-04-24 19:56:57 +02:00
Claus Vium
28c2ac528d
Re-add content length, semi revert of changes in #1010 ( #1287 )
...
* Re-add content length, semi revert of changes in #1010
2019-04-24 14:06:54 +02:00
Bond-009
a8da122fb3
Merge pull request #1252 from jellyfin/release-10.3.z
...
Backmerge release 10.3.0
2019-04-20 12:25:29 +02:00
Joshua Boniface
250e0c75df
Add MethodNotAllowedException with code 405
2019-04-17 22:31:06 -04:00
Joshua M. Boniface
c3532b92f7
Merge pull request #1158 from Bond-009/httpclean
...
Reduce complexity http routes
2019-04-17 22:12:17 -04:00
Bond-009
a332092769
Reduce complexity http routes
2019-03-26 19:20:40 +01:00
Bond-009
b44a70ff36
Simplify/remove/clean code
...
* Remove useless runtime check (we only support one)
* Remove unused args
* Remove a global constant
And ofc fix some warnings ;)
2019-03-25 22:25:32 +01:00
Bond_009
2696ac5eac
Lower the amount of running tasks
2019-03-25 21:33:48 +01:00
Bill Thornton
4cd8903abc
Fix default value for Expires header
2019-03-19 23:13:02 -04:00
Bond-009
e64aaebbac
Improvements around streams
...
* Use ArrayPool instead of allocating new buffers each time
* Remove NetworkStream copy
* Remove some dead code
2019-03-13 21:11:01 +01:00
Claus Vium
e3b844b5aa
Add urlprefixes during init
2019-03-07 22:49:41 +01:00
Claus Vium
3fa43a1e08
Don't set status code if response is closed
2019-03-07 22:26:23 +01:00
Claus Vium
dfff68b2f4
Make SkipLogExtensions static
2019-03-07 19:05:53 +01:00
Claus Vium
bba049c987
Make FileSystem readonly
2019-03-06 19:29:25 +01:00
Claus Vium
446f9bf81f
Remove more Content-Length references
2019-03-05 20:48:04 +01:00
Claus Vium
913e80fd55
Add ProcessWebSocketRequest to IHttpListener
2019-03-05 20:35:07 +01:00
Claus Vium
9a4a01fb0e
Fix DI in FileWriter.TransmitFile
2019-03-05 19:32:22 +01:00
Claus Vium
78742b8e4c
Switch to HeaderNames instead of hardcoded strings (and other header related fixes)
2019-03-05 19:20:28 +01:00
Claus Vium
bc00617df7
Remove unused Brotli compressor
2019-03-05 10:26:43 +01:00
Claus Vium
51648a2a21
Remove unused _listener
2019-03-05 08:05:42 +01:00
Claus Vium
0250204f14
Expand todo
2019-03-04 22:26:57 +01:00
Claus Vium
9020f68ce1
Use QueryHelpers.AddQueryString
2019-03-04 20:08:54 +01:00
Claus Vium
e823c11b46
Add certificate to https and minor cleanup
2019-03-03 08:29:23 +01:00
Claus Vium
fb1de5a921
Remove more cruft and add the beginnings of a socket middleware
2019-02-27 23:22:55 +01:00
Claus Vium
c0b95dbc79
Fix query log for real
2019-02-27 20:11:40 +01:00
Claus Vium
647adc51c8
Fix query log
2019-02-27 19:55:25 +01:00
Claus Vium
27e7e792b3
Replace some usage of QueryParamCollection
2019-02-27 14:23:39 +01:00
Claus Vium
333bd2107a
Remove HttpUtility
2019-02-27 12:40:18 +01:00
Claus Vium
848cfc32cc
More cleanup
2019-02-26 22:57:59 +01:00
Claus Vium
e342b7bc71
Extend the IHttpServer interface to avoid the typecasting
2019-02-26 22:11:21 +01:00
Claus Vium
f1c93ae618
Remove SetContentLength and company
2019-02-26 22:11:21 +01:00
Claus Vium
4e8de67aca
Remove SocketSharp from Jellyfin.Server and some other cleanup
2019-02-26 22:11:21 +01:00
Claus Vium
a85488cd20
Fix websockets array index out of bounds and some cleanup
2019-02-26 22:11:21 +01:00
Claus Vium
f3e7bc0573
Replace some todos with http extensions and prepare some socket work
2019-02-26 22:11:21 +01:00
Claus Vium
852460b991
kestrel init
2019-02-26 22:11:21 +01:00
Claus Vium
4db31acff9
Begin removing System.Net sources
2019-02-26 22:11:21 +01:00
Bond-009
0804bed66d
Log time in a standardized way
2019-02-26 19:40:23 +01:00
Bond_009
0f9006c81f
Use stopwatch for more accurate measurements and reduce log spam
...
DateTime.Now is suitible for small timespans
Replaced the needlessly complex and verbose logging for the httpserver
2019-02-25 18:26:17 +01:00
Joshua M. Boniface
89d4ce309d
Merge pull request #848 from Bond-009/perf
...
Minor changes to reduce allocations
2019-02-19 21:24:51 -05:00
Vasily
13f2783a8e
Merge pull request #887 from wtayl0r/replace-primitives-with-iconfiguration
...
Replace primitive injection with IConfiguration
2019-02-18 19:30:11 +03:00
William Taylor
18ae107ce4
Removed unnecessary configuration options and reduced primitive dependencies
2019-02-17 14:09:52 +00:00
Claus Vium
c720504e39
Drop ETag and use Last-Modified header ( #890 )
...
Drop ETag and use Last-Modified since performance is much better
2019-02-13 21:08:59 +01:00
Bond-009
3f13851be5
Address comments
2019-02-12 21:06:47 +01:00
Bond_009
8d98885cda
Less string allocations
2019-02-12 21:06:47 +01:00
Bond_009
a709cbdc64
Fix more analyzer warnings
2019-01-27 12:12:44 +01:00
Claus Vium
df5e87409a
Fix trim input
2019-01-22 22:40:06 +01:00
Claus Vium
94789860b1
Trim quotes from If-None-Match
2019-01-22 22:37:26 +01:00
Claus Vium
fd6d35e1d0
Remove unconditional caching, modified since header and use ETags
2019-01-22 21:18:48 +01:00
William Taylor
65cd3ed597
Replaced injections of ILogger with ILoggerFactory
...
This makes resolving dependencies from the container much easier as
you cannot resolve with primitives parameters in a way that is any
more readable.
The aim of this commit is to change as little as possible with the end
result, loggers that were newed up for the parent object were given the same
name. Objects that used the base or app loggers, were given a new logger with
an appropriate name.
Also removed some unused dependencies.
2019-01-20 21:05:12 +00:00
cvium
b35dcbb9f0
Remove MediaBrowser.Text since it violates licenses and is overall hacky
2019-01-20 06:30:50 +01:00
Erwin de Haan
e63b18f17d
Reformat JustAMan review second pass changes.
2019-01-19 14:30:23 +01:00
Erwin de Haan
d116efe1f7
Merge branch 'dev' into reformat
2019-01-18 17:04:01 +01:00
Erwin de Haan
321c440739
Reformat JustAMan review pt1 changes
...
Refs #575
2019-01-17 20:24:01 +01:00
Bond-009
d0980f0da5
Update HttpListenerHost.cs
2019-01-16 19:13:13 +01:00
Bond-009
900dc851e6
Merge branch 'dev' into cleanup
2019-01-16 19:10:42 +01:00
Erwin de Haan
49b61f238e
Merge branch 'dev' into reformat
...
# Conflicts:
# Emby.Server.Implementations/ApplicationHost.cs
# Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
# Emby.Server.Implementations/LiveTv/LiveTvManager.cs
# Emby.Server.Implementations/Security/MBLicenseFile.cs
# Emby.Server.Implementations/Security/PluginSecurityManager.cs
# Emby.Server.Implementations/Security/RegRecord.cs
# MediaBrowser.Api/PluginService.cs
# MediaBrowser.Api/System/SystemService.cs
# MediaBrowser.Common/Security/IRequiresRegistration.cs
# MediaBrowser.Common/Security/ISecurityManager.cs
# MediaBrowser.Common/Security/PaymentRequiredException.cs
# MediaBrowser.Model/Entities/MBRegistrationRecord.cs
# MediaBrowser.Model/Entities/PluginSecurityInfo.cs
# deployment/win-generic/build-jellyfin.ps1
2019-01-15 17:34:39 +01:00
Claus Vium
eca3c099d9
removed a bunch of validation, security, registration, premiere, whatever bs
2019-01-15 16:48:21 +01:00
Erwin de Haan
e867446437
ReSharper format: conform inline 'out' parameters.
2019-01-13 21:46:33 +01:00
Erwin de Haan
65bd052f3e
ReSharper conform to 'var' settings
2019-01-13 21:37:13 +01:00
Erwin de Haan
e566d9a231
Find+Sed BOM removal *.cs: BDInfo-Emby.XmlTv
2019-01-13 20:54:44 +01:00
Erwin de Haan
c5c7a3c4ee
Visual Studio Reformat: Emby.Server.Implementations Part De-H
2019-01-13 20:20:41 +01:00
Erwin de Haan
e2751d42e8
Merge branch 'dev' into code-cleanup
2019-01-11 12:50:36 +01:00
Erwin de Haan
ec1f5dc317
Mayor code cleanup
...
Add Argument*Exceptions now use proper nameof operators.
Added exception messages to quite a few Argument*Exceptions.
Fixed rethorwing to be proper syntax.
Added a ton of null checkes. (This is only a start, there are about 500 places that need proper null handling)
Added some TODOs to log certain exceptions.
Fix sln again.
Fixed all AssemblyInfo's and added proper copyright (where I could find them)
We live in *current year*.
Fixed the use of braces.
Fixed a ton of properties, and made a fair amount of functions static that should be and can be static.
Made more Methods that should be static static.
You can now use static to find bad functions!
Removed unused variable. And added one more proper XML comment.
2019-01-10 20:38:53 +01:00
hawken
bd169e4fd4
remove trailing whitespace
2019-01-07 23:27:46 +00:00
Bond_009
07a8e49c4b
Cleanup some small things
2019-01-06 20:35:36 +01:00
Bond_009
a997bb609f
Remove unnecessary using statements
2019-01-05 01:49:52 +03:00
Bond_009
391b48614d
Remove FireEventIfNotNull
...
It's a pretty useless "helper" class
2019-01-05 01:49:52 +03:00
Bond_009
ea4c914123
Fix exception logging
2018-12-30 22:44:39 +01:00
Bond_009
0c1b9d3bff
Rebase
2018-12-30 22:44:38 +01:00
Bond_009
b7ebb67cbb
Remove the need for NullLogger
2018-12-30 22:44:38 +01:00
Bond_009
0f8b3c6347
Use Microsoft.Extensions.Logging abstraction
2018-12-30 22:44:38 +01:00
Bond_009
ab8df3741d
Fixes possible NullReferenceException
2018-12-29 17:26:36 +01:00
Bond_009
6e5d2aadaa
Remove custom ToArray extension
2018-12-28 16:48:26 +01:00
Andrew Rabert
a86b71899e
Add GPL modules
2018-12-27 18:27:57 -05:00
Andrew Rabert
7c2248727a
Remove Emby.Server.Connect
2018-12-10 19:29:51 -05:00
stefan
48facb797e
Update to 3.5.2 and .net core 2.1
2018-09-12 19:26:21 +02:00
Luke Pulverenti
9b71812325
update live stream management
2017-10-23 15:14:11 -04:00
Luke Pulverenti
32e89f6deb
resolve version changing in now playing display
2017-10-17 15:50:10 -04:00
Luke Pulverenti
e19b8f81c7
update recording conversion
2017-10-07 02:13:26 -04:00
Luke Pulverenti
5d583f42d4
update https redirect
2017-09-30 13:40:42 -04:00
Luke Pulverenti
878abbddda
fixes #1427 - [Feature Request]: Require Encryption
2017-09-29 15:17:54 -04:00
Luke Pulverenti
8d4602035f
fix for missing response headers
2017-09-28 13:05:10 -04:00
Luke Pulverenti
a0d82a02c8
update param encoding
2017-09-26 13:09:42 -04:00
Luke Pulverenti
768f20b1bb
update response headers for HEAD requests
2017-09-24 16:24:12 -04:00
Luke Pulverenti
39394e74c7
fix dlna direct play on samsung tv's
2017-09-23 21:03:46 -04:00
Luke Pulverenti
31b01cbb56
add fixes for dng images
2017-09-22 16:33:01 -04:00
Luke Pulverenti
467f440501
3.2.30.26
2017-09-19 16:08:34 -04:00
Luke Pulverenti
381ea159de
update user deletion
2017-09-12 02:27:39 -04:00
Luke Pulverenti
49b799adbe
3.2.30.8
2017-09-05 15:49:02 -04:00
Luke Pulverenti
39c4542cf6
update query objects
2017-09-04 15:28:22 -04:00
Luke Pulverenti
504f56d841
update request classes
2017-09-03 14:38:26 -04:00
Luke Pulverenti
2084678266
update service creation
2017-09-03 03:28:58 -04:00
Luke Pulverenti
e0c1d740a3
update path parsing
2017-09-02 23:17:48 -04:00
Luke Pulverenti
0dbfc21442
update listener host
2017-09-02 22:46:21 -04:00
Luke Pulverenti
78165d78a2
update SocketHttpListener
2017-09-02 22:42:13 -04:00
Luke Pulverenti
da3d8894a8
update aliases
2017-09-02 21:44:02 -04:00
Luke Pulverenti
9d78482358
fix skiasharp reference
2017-09-01 15:24:39 -04:00
Luke Pulverenti
dd9404ebc6
update skiasharp to 1.58.1
2017-08-30 23:49:38 -04:00
Luke Pulverenti
0f23c7cfc1
3.2.30.3
2017-08-30 14:52:29 -04:00
Luke Pulverenti
8de80d43ba
update ResolutionNormalizer
2017-08-30 14:06:54 -04:00
Luke Pulverenti
1ad990ad72
update live tv data transfer
2017-08-19 15:43:35 -04:00
Luke Pulverenti
40442f887b
consolidate emby.server.core into emby.server.implementations
2017-08-09 15:56:38 -04:00
Luke Pulverenti
4e52c027bc
improve nextup queries
2017-08-01 12:45:57 -04:00
Luke Pulverenti
b41614ac81
update request logging
2017-07-22 18:58:03 -04:00
Luke Pulverenti
dab74b9cd1
3.2.25.8
2017-07-18 13:34:56 -04:00
Luke Pulverenti
07b5c6a750
update logging
2017-06-15 13:26:48 -04:00
Luke Pulverenti
ccb5b14d77
update series resolver
2017-06-15 13:22:05 -04:00
Luke Pulverenti
5bfcbd4e9e
update dlna profiles
2017-05-31 15:21:32 -04:00
Luke Pulverenti
e456df546c
update nlog
2017-05-29 13:31:31 -04:00
Luke Pulverenti
ffb68b0318
update realtime monitor
2017-05-27 03:19:09 -04:00
Luke Pulverenti
33014f77aa
update GetItems method
2017-05-26 02:48:54 -04:00
Luke Pulverenti
71f7fc4e11
3.2.17.12
2017-05-24 15:39:59 -04:00
Luke Pulverenti
f07af448fa
update main projects
2017-05-24 15:12:55 -04:00
Luke Pulverenti
54cf0da758
update query fields
2017-05-22 00:54:02 -04:00
Luke Pulverenti
198cb1bc9c
update file responses
2017-05-09 14:51:26 -04:00
Luke Pulverenti
3a8b567f14
update file responses
2017-05-05 13:55:38 -04:00
Luke Pulverenti
6e4d234212
update directory picker
2017-04-02 00:08:07 -04:00
Luke Pulverenti
f1b1458ee8
3.2.8.6
2017-03-20 13:56:44 -04:00
Luke Pulverenti
38e05b11e2
unify encodng param creation
2017-03-19 14:59:05 -04:00
Luke Pulverenti
b38b7a7062
rework filestream
2017-03-13 00:08:23 -04:00
Luke Pulverenti
a660aa001e
re-organize file streaming
2017-03-12 15:27:26 -04:00
Luke Pulverenti
9e74d834a7
update legacy hdhomerun support
2017-03-05 21:32:56 -05:00
Luke Pulverenti
aa290062d6
fix server restart
2017-02-16 02:13:32 -05:00
Luke Pulverenti
5181b31886
implement chrome media session api
2017-02-13 15:54:28 -05:00
Luke Pulverenti
e1b2b2e77e
removed dead code
2017-02-12 21:06:54 -05:00
Luke Pulverenti
0a03d7ad9f
localization fixes
2017-02-12 20:07:48 -05:00
Luke Pulverenti
6d344fabb9
update components
2017-01-13 16:05:12 -05:00
Luke Pulverenti
5372c0bf23
remove unused property
2016-12-28 01:08:18 -05:00
Luke Pulverenti
0b53004c61
update exception response mapping
2016-12-27 02:24:44 -05:00
Luke Pulverenti
325066f7ed
update logging
2016-12-26 12:38:12 -05:00
Luke Pulverenti
009e860f6f
limit http compression
2016-12-22 11:47:43 -05:00
Luke Pulverenti
524e7facc8
fix socket errors on linux under .net core
2016-12-13 18:38:26 -05:00
Luke Pulverenti
e1b880a5a0
update series queries
2016-12-13 02:36:30 -05:00
Luke Pulverenti
401a6b8f4a
add request logging
2016-12-04 16:30:38 -05:00
Luke Pulverenti
56b24da151
update response stream parsing
2016-11-28 00:38:41 -05:00
Luke Pulverenti
26ef23d628
update caching headers
2016-11-27 14:36:56 -05:00
Luke Pulverenti
921ec9cd11
save additional info to recording nfo's
2016-11-26 19:40:15 -05:00
Luke Pulverenti
9606a2a710
filter duplicate recordings based on showId
2016-11-24 11:29:23 -05:00
Luke Pulverenti
65a1ef020b
move sync repository to portable project
2016-11-19 00:52:49 -05:00
Luke Pulverenti
0e9cd51f9c
update .net core startup
2016-11-13 16:04:21 -05:00
Luke Pulverenti
1714cb8764
update response stream handling
2016-11-12 03:02:46 -05:00
Luke Pulverenti
a855864207
limit access to response stream
2016-11-12 02:14:04 -05:00
Luke Pulverenti
c035f2baa1
update responses
2016-11-12 01:58:50 -05:00
Luke Pulverenti
406e6cb813
update portable projects
2016-11-11 14:55:12 -05:00
Luke Pulverenti
f8b8de13b7
update HttpListenerHost
2016-11-11 13:58:36 -05:00
Luke Pulverenti
8492225dee
update portable projects
2016-11-10 22:29:51 -05:00
Luke Pulverenti
836e1fdc30
make additional classes portable
2016-11-10 20:58:20 -05:00
Luke Pulverenti
01fc207b62
update portable components
2016-11-10 20:37:20 -05:00
Luke Pulverenti
227dd0a42d
rework result factory
2016-11-10 09:41:24 -05:00
Luke Pulverenti
e8c70da2b6
fix ipv6
2016-11-08 14:50:39 -05:00
Luke Pulverenti
a8b340cbb2
update portable projects
2016-11-08 13:44:23 -05:00
Luke Pulverenti
3c1447804b
move localization classes
2016-11-04 22:17:18 -04:00
Luke Pulverenti
46efa464d8
move classes
2016-11-03 21:18:51 -04:00