Commit Graph

750 Commits (d044f51a8913f60666e379fe143affeaa3dc79a6)

Author SHA1 Message Date
Nicholas Van Sickle d044f51a89 Remove DomDocument for now
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 8da04f15d3 Add some Value documentation
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 0216d0ae9f Clarify shared string semantics
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle e080ade885 Switch high perf allocator back on for containers, modest perf boost
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle d9ac3c2120 Tidy up Type enum
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle cc120c772c Add RapidjsonCopyAndMutate to compare w/ shallow copy
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle c53c97cf5f Add another round of benchmarks
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 1f2635d24b Switch to the high pref heap allocator, roll back pool interface changes
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 809ee2dce9 Fix "force string copy" logic
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 1af39a5c5c Add benchmarks, some light optimizations like SSO
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 947951b6c7 Add copy on write tests
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 15e0bb1693 Add tests, fix missing bool in Accept and operator[] insert
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle a2d474cc4f Add some intial tests
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle e7c92b5658 Move ValueWriter out, add DeepCompareIsEqual
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle fada7ace23 Add visitor support to Value
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle f36255b22a Initial value implementation
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 6cf805256b Make backend write API string-based
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle ea9d7c9d82 Add optional size parameter to ReadFromBufferInPlace
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 1c42cd98cc Address a bit more review feedback
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 8165f54c05 Use temporary lifetimes for test
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 037a93406a Fix a couple format string issues
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle f2f7dad972 Remove FormatVisitorErrorMessage
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 016e261f36 Add DomUtils
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 59a2216584 Fix a build issue
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 4dbce4275b Refactor the interface after some chatting with @amazon-employee-dm
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 1aaa267585 Fix one last bit of minor feedback
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 2dddb97b7c One last round of stray review feedback I missed
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle d519d4cb03 Improve performance for both in-place and copy parsing (faster than `AZ::JsonSerializationUtils::ReadJsonString` now!)
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle e0508ddefc Make JsonBackend templated
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle f87021d856 Expose JSON parse flag options
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle a9c05372d5 API tweaks
- Use ref types
- Support using rapidjson::Value in lieu of rapidjson::Document
- Use the existing JSON comparison util function in tests

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 5dbe9e387b Address some review feedback, remove DomBackendRegistry
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
Nicholas Van Sickle 5e4bdac2e1 Merge remote-tracking branch 'upstream/development' into nvsickle/GenericDomJson 4 years ago
amzn-sean b882eddca8
fix dev break. AZStd::fixed_vector cannot be constexp error (#5995)
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
4 years ago
lumberyard-employee-dm 97106f9e60
Adding missing C++20 std::erase implementations (#5735)
There were already implementations for std::erase_if.
This adds the counterpart AZStd::erase versions

resolves #5734

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
Tom Hulton-Harrop 5bd751531d
Update return type for viewport screen functions (#5803)
* update return type for viewport screen functions

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* add tests for AZ::Matrix3x4::CreateFromMatrix4x4 and add TransformPoint to Matrix3x4

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* update NDC -> Ndc

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* updates following review feedback

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* updates and improvements following PR feedback

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* add forward declaration of Matrix3x4 type

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* update where forward declarations are defined for Matrix3x4

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
4 years ago
AMZN-koppersr 389f29f0e7 Performance improvement for fixed_vector
AZStd::fixed_vector had all its functions marked with constexpr, but this requires all member variables to be fully initialized. This meant that the internal array used to store elements always has to be fully initialized. This was done for trivial classes but not for non-trivial classes. As a result trivial classes always did a memset (or more optimized versions for smaller buffers) while the non-trivial version couldn't actually be stored in a constexpr variable. Since AZStd::fixed_vector is meant to be dynamic the choice was made to remove the constexpr from all non-static member functions in favor of avoiding the overhead of memset, which profiling showed was a considerable overhead depending on the reserved size. If a truly constexpr array is needed than AZStd::array is a better choice as that's designed to not by dynamic.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
4 years ago
Esteban Papp 49e8f35858
Creates a deb package (#5567)
* configure/generation working

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Generates deb package forLinux

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes to EngineFinder

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* changes the owner of the installed folder so it is writable by the user

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* jenkins scripts

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes execution permission for scripts

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes wrong parameter to build for linux

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* removal of clang parameters in build_config.json

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Simplifies and fixes build configs

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* fixes to EngineFinder

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Adds linux deb package upload and small fixes/organization cleanup

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* fixes checksum generation

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Some more small fixes for reviewing

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Test if this space is necessary for cpack

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* More fixes for installer jobs

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Adding eval to variables that need to double-expand

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Removing unused variables being passed

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Do not remove symlink

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Use cmake_path for concatenating paths

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* removing quotes so the variable expands

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* cleaned up some variables that have way too many ways to be passed

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Multiple fixes for Jenkins

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Cleanup/re-organization

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* fixes some temp variables so we can run cpack jenkins jobs locally

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Delays cmake download to install step
Cleanup on installer_windows.cmd, we already have the path to cpack (same as cmake, which is added to the path)
Some simplification in the windows installer generation, we now generate the same even if we dont upload

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes mac install

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* CPack can generate hashes for us
Defiine CPACK_OUTPUT_FILE_PREFIX to prevent the exe/msi from ending in the bin dir
Remove unnecessary generation of folder from 3rdPartyPacakges which fails when including from cpack

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* multiple fixes

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* fixes typo

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* more fixes

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes for linux/mac/windows (fixing discrepancies with Jenkins)

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* uploads to S3 from the upload directory and fixes the latest upload

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Adds ERROR_VARIABLE to S3 upload to find a Jenkins issue

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* printing command invocation to try to figure out the errors

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Changes the hashing algorithm to sha256 and fixes the cmd used to call to pythojn

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* wrong path being passed in mac

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* removes compiler parameters from a config job (after rebase)

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* more fixes fro deb packaging job

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* small fix for fingerprint patching for latest

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Changing extension of public key and leaving better TODO places for code signing

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Removes sdl as a dependency, leaving it commented since it is needed for wwise

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* fixes runtime copy during install, makes it more consistent with regular runtime dependencies and optimizes copy when there is already an install

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* $ENV{DESTDIR} and CMAKE_INSTALL_PREFIX cannot be used in cmake_path because the CMAKE_INSTALL_PREFIX is absolute

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixing some runtime_dependencies optimizations, we cannot take size of a bundle

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes warning in mac for an unused variable

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes a variable that was being passed to fix qt frameworks

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* More fixes for Jenkins

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Updates email to use for maintainer to match certificate

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* make directory because in some cases the dependency is copied before the actual library and the directory has to be created

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fix for a new warning/error in linux

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* The sha file is created after the upload happens, so creating it

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* remove the size comparison for install since it stomps over the copy from the target and doesnt trigger stripping

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
amzn-mike 56900484fc
[SPEC-7644] ParallelDeepAssetReferences is failing intermittently (#5721)
* Fixed race condition caused by trying to handle asset ready event before asset container has finished filling out all the data structures.

Added check to only handle asset ready once init is complete
Added unit test to verify fix

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Re-enable test

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add missing space to error message

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add comment on sleep

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Collapse nested namespace

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Collapse nested namespace

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
4 years ago
lumberyard-employee-dm 9d22c98c26
Add support for configuring default Archive File Search Mode through a Cache Var (#5668)
* Renamed ArchiveLocationPriority enum to FileSearchPriority and made it a proper enum class

Added an ArchiveVars.cpp which checks the a new define: `LY_ARCHIVE_FILE_SEARCH_MODE_DEFAULT`
That define represents the default value to use for the Archive system search mode

Moved the FileSearchLocation enum to the ArchiveVars.h header

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the AssetBundleComponent to use AZ::IO::Path for level dirs

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added a LY_ARCHIVE_FILE_SEARCH_MODE cache variable

The Cache Variable default value is to Archive File Search Mode to PakOnly
in Release. This can be overridden using a value for all configurations
by specifying a number of 0, 1 or 2.
Alternatively a generator expression can be used to set the Archive File
Search Mode in specific configurations.
For example to set the FileSearchMode to 1 in profile and 2 in release
the following LY_ARCHIVE_FILE_SEARCH_MODE value can be used
`$<$<CONFIG:profile>:1>$<$<CONFIG:release>:2>`

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated AssetBundler(Batch) VS Debugger arguments to populate the
project-path optoin if a single project is configured.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Add support for serializing older versions of the AssetBundleManifest

This is done by attaching the "ObjectStreamWriteElementOverride"
attribute to the AssetBundleManifest reflection.
That attribute contains a function which outputs an older serialized
version of the AssetBundleManifest based on the `m_bundleVersion` member
value.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* AZStd::variant Serialization fix

The AttributeData<T> type is no longer suitable for storing the
ObjectStreamWriterOverrideCB function

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
amzn-sean e2772fca21
Fix large delta on next frame when turning t_simulationTickDeltaOverride off. (#5716)
This was due to incorrectly setting m_lastSimulationTickTimeUs when t_simulationTickDeltaOverride was enabled to the override.
m_lastSimulationTickTimeUs is now always set to the current time so the delta calculation will always be correct.

Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
4 years ago
amzn-sean e4563c0058
Update RPISystem::GetCurrentTime() to use TimeSystem (#5613)
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
4 years ago
Artur K dc98a56d45
Clang/Clazy pass over AzCore (#5045)
* Multiple cleanups ( tidy etc. )

Coalesce nested namespaces.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Multiple cleanups ( tidy etc. ) cntd.

Converted Uuid into POD ( defaulted the constructor )
Add `&/const &` to `for` loops that benefit from their use
Some Qt optimizations ( string ref, prevent container detaches, etc. )
Replace `::bind` in a few places.
Replaced the use of AZ_CRC with AZ_CRC_CE in a few places.
Replace a few `typedef`s with `using`s

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Linux compilation fix.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Apply review suggestions.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Fix vs2019 build

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Small clang re-format in StringFunc.cpp

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Apply reviewer's suggestions.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
4 years ago
amzn-mike 4b37e742d3
Add interface to allow disabling global AZ Core test environment trace bus suppression (#5594)
* Add interface to allow disabling global AZ Core test environment trace bus suppression

Update BaseAssetManagerTest class to disable the suppression by default
Update specific asset manager tests that rely on the trace bus suppression to ReEnable it

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Remove nodiscard

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Remove unique_ptr for disable token

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Fix move operator

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Switch to having individual flags for suppression of each type of output

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Add cvar to force stacktrace output.

Clean up whitespace

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
4 years ago
Tommy Walton 214b47a0d5 Merge commit 'b20a9b5f39b025475d74f166a2634f74b835fdca' into amzn-tommy/gitflow_211116_o3de2 4 years ago
Tommy Walton 564bf0c819 Merge commit 'fc547d902c2e110b671a095b9731aff18154e68d' into amzn-tommy/gitflow_211116_o3de2 4 years ago
Tommy Walton 4ab3bd487f Merge commit 'e0d736dd844a82b0c232739540a168078e63e276' into amzn-tommy/gitflow_211116_o3de2 4 years ago
bosnichd b20a9b5f39
Some modifications required for restricted platforms: (#5624)
- Replace AZ_TRAIT_MAX_JOB_MANAGER_WORKER_THREADS with AZ_TRAIT_THREAD_NUM_JOB_MANAGER_WORKER_THREADS that allows the number of threads created by the job manager to be set directly.
- Add AZ_TRAIT_THREAD_NUM_TASK_GRAPH_WORKER_THREADS that allows the number of threads created by the task graph to be set directly.
- Add a define that forces the AsyncUploadQueue to use the primary copy queue instead of creating a secondary copy queue.

Signed-off-by: bosnichd <bosnichd@amazon.com>
4 years ago
amzn-mike 8b7e538dd3
Cherry Pick: [LYN-7463] Fix insert streaming request failure (#5604) (#5622)
* Fix race condition where asset would finish loading and another request would start before the streamer request could be cleared

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Re-enable disabled test which was failing for the same reason.

Fix test timeout which was way too long.
Reduce test iterations to keep test time safely under 5 seconds.

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>

* Instead of using a mutex, re-order the statements to remove the streamer request first

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
(cherry picked from commit 0cea59d669)
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
4 years ago
amzn-mike 63713ca284
Fix AssetBus connection policy to re-lock the mutex afterward since some destructors in the calling methods are still altering the context (#5575)
Also made the unlock conditional.

Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
4 years ago