Fidelis Edr
Fidelis EDR is an advanced endpoint detection and response solution that helps organizations detect, investigate, and respond to threats.
Fidelis EDR is a comprehensive endpoint detection and response platform designed to enhance threat detection and response capabilities. This connector enables seamless integration with Swimlane Turbine, allowing users to automate EDR workflows such as retrieving alerts, managing endpoints, and executing tasks or scripts. By leveraging this integration, Swimlane Turbine users can streamline their security operations, improve incident response times, and enhance overall threat management efficiency.
Asset Setup or Prerequisites
Before you can use the Fidelis EDR connector for Turbine, you'll need access to the Fidelis EDR API. This requires the following:
- HTTP Basic authentication using the following parameters:
- URL: The base URL for accessing the Fidelis EDR API.
- Username: Your Fidelis EDR account username.
- Password: The password associated with your Fidelis EDR account.
Capabilities
The Fidelis EDR Connector has the following capabilities:
- Add Endpoint ID by Endpoint Name
- Add or Execute a task
- Add or Execute Script Package by Script Package ID
- Get Alerts
- Get Endpoints
- Get Endpoint by Name
- Get playbooks
- Get playbook and scripts
- Get playbook or script info
- Get Playbook details
- Get Script Packages
- Get Script Package for File
- Get Script Package by Type
- Get Script Job
Notes
- More information on Fidelis EDR can be found here
Additional Notes
- In the case of using Get Script Package by Type action, the type input parameter can be one of the Manifest, Metadata or Template.
Additional Documentation
Configurations
Fidelis EDR HTTP Basic Authentication
Authenticates using username and password.
Configuration Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
url | A URL to the target host. | string | Required |
username | Username | string | Required |
password | Password | string | Required |
verify_ssl | Verify SSL certificate | boolean | Optional |
http_proxy | A proxy to route requests through. | string | Optional |
Actions
Add Endpoint ID by Endpoint Name
Associate an Endpoint ID with a specified Endpoint Name in Fidelis EDR to facilitate targeted security actions.
Endpoint
- URL: /Endpoint/api/endpoints/endpointidsbyname
- Method: POST
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | array | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":["6b568599-de9b-41aa-b47a-a9eb04b198b9","0a8aff62-324b-4478-83cb-a9ea040fb682"]}}
Add or Execute a task
Create or execute a task in Fidelis EDR using a Package ID or Script ID specified in the JSON body.
Endpoint
- URL: /Endpoint/api/jobs/createTask
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
packageId | string | Optional | Unique identifier |
endpoints | array | Optional | Parameter for Add or Execute a task |
isPlaybook | boolean | Optional | Parameter for Add or Execute a task |
taskOptions | array | Optional | Parameter for Add or Execute a task |
taskOptions.scriptId | string | Optional | Unique identifier |
taskOptions.questions | array | Optional | Parameter for Add or Execute a task |
taskOptions.questions.paramNumber | number | Optional | Parameter for Add or Execute a task |
taskOptions.questions.answer | object | Optional | Parameter for Add or Execute a task |
taskOptions.timeoutInSeconds | number | Optional | Parameter for Add or Execute a task |
taskOptions.queueExpirationInhours | object | Optional | Parameter for Add or Execute a task |
Input Example
{"json_body":{"packageId":"8d379688-dde1-451d-8fa2-4f29c84baf97","endpoints":["0d065003-7df5-47c8-98eb-aaaa04e0eb59","c80dbb3b-4a8f-4bb9-8e9f-aaaa04d838cd"],"isPlaybook":false,"taskOptions":[{"scriptId":"8d379688-dde1-451d-8fa2-4f29c84baf97","questions":[{"paramNumber":1,"answer":null}],"timeoutInSeconds":300,"queueExpirationInhours":null}]}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | string | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":"0a900967-0460-4203-91f1-aab20345c841"}}
Add or Execute Script Package by Package ID
Add or execute a script package in Fidelis EDR using the specified Script Package ID provided in path parameters.
Endpoint
- URL: /Endpoint/api/packages/{{ScriptPackageId}}/execute
- Method: POST
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
path_parameters.scriptPackageId | string | Required | Parameters for the Add or Execute Script Package by Package ID action |
timeoutInSeconds | number | Optional | Parameter for Add or Execute Script Package by Package ID |
scriptPackageId | string | Optional | Unique identifier |
hosts | array | Optional | Parameter for Add or Execute Script Package by Package ID |
integrationOutputs | array | Optional | Parameter for Add or Execute Script Package by Package ID |
questions | object | Optional | Parameter for Add or Execute Script Package by Package ID |
Input Example
{"json_body":{"timeoutInSeconds":300,"scriptPackageId":"18E8CE99-C0B7-43AE-9A21-B1A0648E9824","hosts":["10.92.105.92"],"integrationOutputs":["CEFOutput","LEEFOutput"],"questions":{}},"path_parameters":{"scriptPackageId":"18E8CE99-C0B7-43AE-9A21-B1A0648E9824"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.jobId | string | Response data |
data.jobResultId | string | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"jobId":"e173d4e6-5553-486c-b788-5ba1257560d4","jobResultId":"d25b19e5-cfea-4fdc-b3ab-a74e029b92a9"}}}
Get Alerts
Retrieve detailed information about alerts from Fidelis EDR, including status, severity, and classification.
Endpoint
- URL: /Endpoint/api/alerts/getalertsV2
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
parameters.skip | number | Optional | Parameters for the Get Alerts action |
parameters.take | number | Optional | Parameters for the Get Alerts action |
parameters.sort | string | Optional | Parameters for the Get Alerts action |
parameters.facetSearch | string | Optional | Parameters for the Get Alerts action |
parameters.startDate | string | Optional | Parameters for the Get Alerts action |
parameters.endDate | string | Optional | Parameters for the Get Alerts action |
Input Example
{"parameters":{"skip":0,"take":100,"sort":"CreatedDate Descending","facetSearch":"","startDate":"2019-11- 15T16:42:58.400Z","endDate":"2019-11- 22T16:37:58.701Z"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.entities | array | Response data |
data.entities.id | number | Response data |
data.entities.createDate | string | Response data |
data.entities.endpointName | string | Response data |
data.entities.endpointId | string | Response data |
data.entities.name | string | Response data |
data.entities.description | string | Response data |
data.entities.artifactName | string | Response data |
data.entities.source | string | Response data |
data.entities.sourceType | number | Response data |
data.entities.severity | number | Response data |
data.entities.intelId | string | Response data |
data.entities.intelName | string | Response data |
data.entities.validatedDate | object | Response data |
data.entities.actionsTaken | string | Response data |
data.entities.eventId | string | Response data |
data.entities.eventTime | string | Response data |
data.entities.parentEventId | string | Response data |
data.entities.eventType | number | Response data |
data.entities.eventIndex | number | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"entities":[]}}}
Get Endpoints
Retrieve endpoint details with sorting and pagination using startIndex, count, and sort parameters in Fidelis EDR.
Endpoint
- URL: /Endpoint/api/endpoints/v2/{{startIndex}}/{{count}}/{{sort}}
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
path_parameters.startIndex | number | Required | Parameters for the Get Endpoints action |
path_parameters.count | number | Required | Parameters for the Get Endpoints action |
path_parameters.sort | string | Required | Parameters for the Get Endpoints action |
Input Example
{"path_parameters":{"startIndex":0,"count":10,"sort":"hostname"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.endpoints | array | Response data |
data.endpoints.id | string | Response data |
data.endpoints.hostName | string | Response data |
data.endpoints.ipAddress | string | Response data |
data.endpoints.description | object | Response data |
data.endpoints.lastContactDate | string | Response data |
data.endpoints.agentInstalled | boolean | Response data |
data.endpoints.agentVersion | string | Response data |
data.endpoints.os | string | Response data |
data.endpoints.macAddress | string | Response data |
data.endpoints.aV_Enabled | boolean | Response data |
data.endpoints.eventsStopped | boolean | Response data |
data.endpoints.locality | object | Response data |
data.endpoints.groupList | object | Response data |
data.endpoints.isGroupMember | boolean | Response data |
data.endpoints.agentConnected | boolean | Response data |
data.endpoints.isolated | boolean | Response data |
data.endpoints.osType | number | Response data |
data.endpoints.osArch | number | Response data |
data.endpoints.agentTag | object | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"endpoints":[],"totalCount":1}}}
Get Playbook Details by ID
Fetches the details of a specified playbook from Fidelis EDR using its unique identifier (ID).
Endpoint
- URL: /Endpoint/api/playbooks/PlaybookDetail
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
parameters.id | string | Required | Parameters for the Get Playbook Details by ID action |
Input Example
{"parameters":{"id":"791ca8b8-2386-4f24-90c3- f8e99a66bac1"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.scripts | array | Response data |
data.scripts.executionOrder | number | Response data |
data.scripts.scriptId | string | Response data |
data.scripts.scriptName | string | Response data |
data.scripts.questions | array | Response data |
data.scripts.questions.paramNumber | number | Response data |
data.scripts.questions.question | string | Response data |
data.scripts.questions.answer | object | Response data |
data.scripts.questions.isOptional | boolean | Response data |
data.scripts.questions.inputType | string | Input data for the action |
data.scripts.details | object | Response data |
data.scripts.details.id | string | Response data |
data.scripts.details.name | string | Response data |
data.scripts.details.platforms | object | Response data |
data.scripts.details.platforms.windows32 | boolean | Response data |
data.scripts.details.platforms.windows64 | boolean | Response data |
data.scripts.details.platforms.linux32 | boolean | Response data |
data.scripts.details.platforms.linux64 | boolean | Response data |
data.scripts.details.platforms.solaris | boolean | Response data |
data.scripts.details.platforms.aix | boolean | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"scripts":[],"id":"791ca8b8-2386-4f24-90c3-f8e99a66bac1","name":"Test","description":"Let's see how this goes","createdByName":null,"createdById":0,"createdDate":"0001-01-01T00:00:00","scriptCount":1,"tags":null}}}
Get playbook or Script Info by ID
Retrieve detailed information for a specified Playbook or Script in Fidelis EDR using its unique ID.
Endpoint
- URL: /Endpoint/api/playbooks/PlaybookOrScriptInfo
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
parameters.id | string | Required | Parameters for the Get playbook or Script Info by ID action |
Input Example
{"parameters":{"id":"29ccc291-74b6-4e9c-b5bb- 3932051a750a"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.id | string | Response data |
data.name | string | Response data |
data.description | string | Response data |
data.createdByName | string | Response data |
data.createdById | number | Response data |
data.createdDate | string | Response data |
data.tags | string | Response data |
data.platforms | object | Response data |
data.platforms.windows32 | boolean | Response data |
data.platforms.windows64 | boolean | Response data |
data.platforms.linux32 | boolean | Response data |
data.platforms.linux64 | boolean | Response data |
data.platforms.solaris | boolean | Response data |
data.platforms.aix | boolean | Response data |
data.platforms.osx | boolean | Response data |
data.platformsStringList | string | Response data |
data.packageType | number | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"id":"29ccc291-74b6-4e9c-b5bb-3932051a750a","name":"System State","description":"A series of scripts that capture the state of a system","createdByName":"endpoint_apiuser","createdById":1001,"createdDate":"2019-08-22T17:17:00.9479806","tags":"System Management,Investigation","platforms":{},"platforms...
Get Playbooks
Retrieves a comprehensive list of all playbooks available in Fidelis EDR.
Endpoint
- URL: /Endpoint/api/playbooks/Playbooks
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
parameters.take | number | Optional | Parameters for the Get Playbooks action |
Input Example
{"parameters":{"take":100}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.id | string | Response data |
data.name | string | Response data |
data.description | string | Response data |
data.createdByName | string | Response data |
data.createdById | number | Response data |
data.createdDate | string | Response data |
data.tags | string | Response data |
data.platforms | object | Response data |
data.platforms.windows32 | boolean | Response data |
data.platforms.windows64 | boolean | Response data |
data.platforms.linux32 | boolean | Response data |
data.platforms.linux64 | boolean | Response data |
data.platforms.solaris | boolean | Response data |
data.platforms.aix | boolean | Response data |
data.platforms.osx | boolean | Response data |
data.platformsStringList | string | Response data |
data.packageType | number | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"id":"29ccc291-74b6-4e9c-b5bb-3932051a750a","name":"System State","description":"A series of scripts that capture the state of a system","createdByName":"endpoint_apiuser","createdById":1001,"createdDate":"2019-08-22T17:17:00.9479806","tags":"System Management,Investigation","platforms":{},"platforms...
Get Playbooks and Scripts
Fetches the list of available playbooks and scripts from Fidelis EDR for orchestration and automation purposes.
Endpoint
- URL: /Endpoint/api/playbooks/PlaybooksAndScripts
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
parameters.filterType | number | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.platformFilter | number | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.isManagementRequest | boolean | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.search | object | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.search.searchAny | array | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.search.searchAny.value | string | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.search.searchAny.operator | number | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.sort | string | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.skip | number | Optional | Parameters for the Get Playbooks and Scripts action |
parameters.take | number | Optional | Parameters for the Get Playbooks and Scripts action |
Input Example
{"parameters":{"filterType":0,"platformFilter":1,"isManagementRequest":true,"search":{"searchAny":[{"value":"File+Collection","operator":7}]},"sort":"Descending","skip":0,"take":100}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.entities | array | Response data |
data.entities.id | string | Response data |
data.entities.name | string | Response data |
data.entities.description | string | Response data |
data.entities.createdByName | string | Response data |
data.entities.createdById | number | Response data |
data.entities.createdDate | string | Response data |
data.entities.tags | string | Response data |
data.entities.platforms | object | Response data |
data.entities.platforms.windows32 | boolean | Response data |
data.entities.platforms.windows64 | boolean | Response data |
data.entities.platforms.linux32 | boolean | Response data |
data.entities.platforms.linux64 | boolean | Response data |
data.entities.platforms.solaris | boolean | Response data |
data.entities.platforms.aix | boolean | Response data |
data.entities.platforms.osx | boolean | Response data |
data.entities.platformsStringList | string | Response data |
data.entities.packageType | number | Response data |
data.totalCount | number | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"entities":[],"totalCount":2}}}
Get Script Job by Job Result ID
Retrieve the results of a script job from Fidelis EDR using the specified job result ID.
Endpoint
- URL: /Endpoint/api/jobresults/{{jobResultId}}
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
path_parameters.jobResultId | string | Required | Parameters for the Get Script Job by Job Result ID action |
parameters.search | object | Optional | Parameters for the Get Script Job by Job Result ID action |
parameters.search.searchFields | array | Optional | Parameters for the Get Script Job by Job Result ID action |
parameters.search.searchFields.fieldName | string | Optional | Parameters for the Get Script Job by Job Result ID action |
parameters.search.searchFields.values | array | Optional | Parameters for the Get Script Job by Job Result ID action |
parameters.search.searchFields.values.value | string | Optional | Parameters for the Get Script Job by Job Result ID action |
Input Example
{"parameters":{"search":{"searchFields":[{"fieldName":"EndpointName","values":[{"value":"t19-win10-e-1903x3"}]}]}},"path_parameters":{"jobResultId":"514a7c74-513d-4847-a010-ab4204129857"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.hits | object | Response data |
data.hits.total | number | Response data |
data.hits.hits | array | Response data |
data.hits.hits._source | object | Response data |
data.hits.hits._source.User | string | Response data |
data.hits.hits._source._Row | string | Response data |
data.hits.hits._source._EndpointId | string | Response data |
data.hits.hits._source._EndpointName | string | Response data |
data.hits.hits._source._GroupID | string | Response data |
data.hits.hits._source.Matches | number | Response data |
data.hits.hits._id | string | Response data |
data.hits.hits.tags | array | Response data |
data.hits.hits.tags.file_name | string | Response data |
data.hits.hits.tags.file | string | Response data |
data.hits.hits.paramNumber | number | Response data |
data.hits.useNonDeterministicPaging | boolean | Response data |
data.hits.nonDeterministicPagingInfo | object | Response data |
data.columns | array | Response data |
Output Example
{"status_code":200,"response_headers":{},"reason":"OK","json_body":{"success":true,"error":null,"data":{"hits":{},"columns":[]}}}
Get Script Package by Type
Retrieve a specific script package type from Fidelis EDR using the provided ScriptPackageId and type parameter.
Endpoint
- URL: /Endpoint/api/packages/{{ScriptPackageId}}
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
path_parameters.ScriptPackageId | string | Required | Parameters for the Get Script Package by Type action |
parameters.type | string | Required | Parameters for the Get Script Package by Type action |
Input Example
{"parameters":{"type":"Template"},"path_parameters":{"ScriptPackageId":"f989574d-ec25-490b-bfca-59963910c2dc"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{}}}
Get Script Package for File
Retrieve a specific script package for file analysis from Fidelis EDR using the ScriptPackageId and type parameters.
Endpoint
- URL: /Endpoint/api/packages/{{ScriptPackageId}}
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
path_parameters.ScriptPackageId | string | Required | Parameters for the Get Script Package for File action |
parameters.type | string | Required | Parameters for the Get Script Package for File action |
Input Example
{"parameters":{"type":"File"},"path_parameters":{"ScriptPackageId":"8d379688-dde1-451d-8fa2-4f29c84baf97"}}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
file | array | Output field: file |
file.file_name | string | Name of the resource |
file.file | string | Output field: file.file |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Tue, 19 Dec 2023 20:37:23 GMT"},"reason":"OK","file":[]}
Get Script Packages
Retrieve all available script packages from Fidelis EDR for further use in automation playbooks.
Endpoint
- URL: /Endpoint/api/packages
- Method: GET
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
error | object | Error message if any |
data | object | Response data |
data.scripts | array | Response data |
data.scripts.id | string | Response data |
data.scripts.name | string | Response data |
data.scripts.description | string | Response data |
data.totalCount | number | Response data |
Output Example
{"status_code":200,"response_headers":{"content-length":"140","content-type":"application/json","Date":"Mon, 19 Feb 2023 20:37:23 GMT"},"reason":"OK","json_body":{"success":true,"error":null,"data":{"scripts":[],"totalCount":2}}}
Response Headers
Header | Description | Example |
|---|---|---|
content-length | The length of the response body in bytes | 140 |
content-type | The media type of the resource | application/json |
Date | The date and time at which the message was originated | Tue, 19 Dec 2023 20:37:23 GMT |