)]}'
{
  "commit": "f01e9e26284d27090840e6c247c4955f3cf9cf71",
  "tree": "764e887484ffbabfa3a08e7bc345a44efca5a2d9",
  "parents": [
    "af39db759ecd48fe78dfee4fff59a918368181c6"
  ],
  "author": {
    "name": "bodymovin",
    "email": "hello@rive.app",
    "time": "Tue Sep 22 21:58:07 2026 +0000"
  },
  "committer": {
    "name": "bodymovin",
    "email": "hello@rive.app",
    "time": "Tue Sep 22 21:58:07 2026 +0000"
  },
  "message": "perf(runtime, performance): preserve path geometry on rigid transform (#14315) 4c824e6f05\n* perf(runtime): keep a shape\u0027s local path across a rigid move\n\nA shape\u0027s local path is each path\u0027s geometry mapped by inverseWorld *\npathTransform -- the path\u0027s transform relative to the shape. That survives any\nrigid move: an ancestor translating, rotating or scaling moves the shape and\nits paths together, so the local path the composer rebuilds is the one it\nalready holds. It rebuilt anyway, because a world transform change routes\nthrough Path::onDirty -\u003e Shape::pathChanged() as plain Path dirt.\n\nThe copy was never the expensive part. Rebuilding rewinds the ShapePaintPath,\nwhich rewinds the RenderPath, which bumps a monotonic mutation id -- so the\ncached inner-fan triangulation is dropped and rebuilt for geometry that did not\nchange. Worse, building one is charged against TriangulationController\u0027s frame\nbudget, and once that is spent every remaining path in the frame falls back to\nmidpoint fans; cache hits cost nothing.\n\nSo snapshot what the local path is built from -- each path\u0027s geometry version\nand its transform relative to the shape -- and skip the rebuild when none of it\nmoved. Measured on a rigidly moving artboard: car_widgets 20.8 -\u003e 15.1 us/frame\nin the update pass (-27%, the same for rotation as for translation), zombie\nskins 104 -\u003e 90 us/frame, and re-triangulating those files\u0027 paths costs 41 and\n140 us/frame respectively, which the retained cache now avoids entirely.\n\nThe comparison cannot be exact. Recomposing inverseWorld * pathTransform after\na move is an A^-1 * A round trip, so it lands a rounding step from the matrix\nthe buffer was built with -- under translation only in the translation, under\nrotation in the linear part too. The tolerance is derived from the terms that\nproduce the value, and is compared against the last built transform rather than\nthe last frame, so the error is bounded rather than accumulating: at most a few\nULPs of the coordinates involved, measured at 3.7e-04 artboard units across\ntwelve real files. A sweep from 1 to 1024 ULPs moves the skip rate by under 3\npoints, so the constant is not load bearing.\n\nSkinned paths rebuild their raw geometry every frame (the skin bakes world\nspace bone transforms into the vertices), so they keep rebuilding; making skins\nshape relative would extend this to them.\n\nNote this changes the silver command streams, which record the rewind and\naddRawPath calls that no longer happen. 69 of them need rebaselining; nothing\nelse in the suite moves.\n\n* test(runtime): render a tarnished silver next to its baseline\n\nA silver fails on any byte difference in the recorded command stream, which is\nstricter than \"the frame changed\": dropping a redundant rewind and addRawPath\npair moves those bytes without moving a pixel. Until now the only thing a\nfailure told you was the size of the stream, so a rebaseline came down to\ntrust.\n\nEverything needed to do better was already in the binary. The SRIV stream\nrecords at the Factory and Renderer level and carries its image bytes and mesh\nbuffers inline, so replaySerializedCommands can replay it with no .riv file or\nfonts; unit_tests already links rive_cg_renderer and tools_common, so it can\nreplay into a CoreGraphics bitmap and write PNGs. Both sides go through that\nsame CPU renderer, so the comparison is exact even where the rasterizer is\napproximate -- there is no golden to disagree with.\n\nHashes the frames first and only keeps pixels for the frames that differ (a\n2370x1680 stream is 16MB a frame), then writes the baseline, the tarnished\nrender, a map of the differing pixels and a padded close-up of the region they\nfall in, because the evidence is usually a handful of pixels on an\nanti-aliased edge.\n\nHidden behind a dot tag, and deliberately run against the built binary rather\nthan through test.sh, which wipes silvers/tarnished on startup:\n\n    ./out/release/unit_tests \"[.silverdiff]\"\n\n* rebased tests\n\n* fix(runtime): address review on the rigid transform path skip\n\n- Do not run the snapshot for a shape with no local path. A clip source or a\n  world stroke was paying for an inverse, a scratch vector and a per path\n  compare whose result the world branch never reads. A shape that gains a\n  local flag later still arrives here with no snapshot, which reads as\n  changed, so it still builds.\n\n- Release a CGRenderer before the context it draws into. ~CGRenderer restores\n  a graphics state on its context, so releasing the context first left that\n  restore reading through freed memory -- on the frame size change and again\n  on the size probe.\n\n- Fail when a tarnished silver has no readable baseline. It only counted the\n  file as unreadable and carried on, so a run could report success having\n  validated nothing, which is the one thing a rebaseline check must not do.\n\n- clang-format (19.1.7, matching CI).\n\nDrops silvers/super_ultra_mega_rig_bound_v002.sriv, which was picked up by the\nrebaseline rather than authored: it is the only added silver in the set, and\nits .riv lives outside the repo.\n\nCo-authored-by: hernan \u003chernan@rive.app\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "53ab4fe9c89fe79ede298ebe0c62254bd5b69694",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "3efaad047f256dd666a90f2c023bcde63b39b4d6",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "1741819df8ba802d26ccec6b2db7d8c14417bd96",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/path.hpp",
      "new_id": "92fd68efe261931476b67d137048531c8199ab7f",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/path.hpp"
    },
    {
      "type": "modify",
      "old_id": "e8605ff9f7eaf9fb6fd7b75612e6e7c96fa01415",
      "old_mode": 33188,
      "old_path": "include/rive/shapes/path_composer.hpp",
      "new_id": "62e6bae1a81996b04b6c80f3044fdc13afae5984",
      "new_mode": 33188,
      "new_path": "include/rive/shapes/path_composer.hpp"
    },
    {
      "type": "modify",
      "old_id": "4359e1f1e3d861c443a91e1178d684d182e92e83",
      "old_mode": 33188,
      "old_path": "src/shapes/path.cpp",
      "new_id": "6312be5734e929009e046357b1de02d0394aaf94",
      "new_mode": 33188,
      "new_path": "src/shapes/path.cpp"
    },
    {
      "type": "modify",
      "old_id": "344467bff5cef434cad0b3b26d34c60b111483cc",
      "old_mode": 33188,
      "old_path": "src/shapes/path_composer.cpp",
      "new_id": "a3807830f3d8e652fcd42df3a2faa6c39e968653",
      "new_mode": 33188,
      "new_path": "src/shapes/path_composer.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c4b47bfd671967c0e9553e41698cb4d703378a8",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/runtime/path_composer_rebuild_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "584fe8d2b7881307b6b9f7d77b0480a30153d239",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/runtime/silver_visual_diff.cpp"
    },
    {
      "type": "modify",
      "old_id": "d58a08f2756866319a767e0976dc3f80cbc251c1",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/artboard_list_overrides_horizontal.sriv",
      "new_id": "f7427bbd30061325ad6a179316d18a2b98371224",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/artboard_list_overrides_horizontal.sriv"
    },
    {
      "type": "modify",
      "old_id": "644d267087ba24195c0d2ec458cd4341c49b1897",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/artboard_list_overrides_vertical.sriv",
      "new_id": "d2c61a8064041c0c963ce636c22b9828f1301851",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/artboard_list_overrides_vertical.sriv"
    },
    {
      "type": "modify",
      "old_id": "ca2602d92f4d4ab8208db4129edd586d973e7935",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/artboard_opacity_and_transform_test.sriv",
      "new_id": "089d6bd7fdce28ee50119f64aeff7f0e5b90e0bc",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/artboard_opacity_and_transform_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "0604aa12342df261e0d8f84a3b6b15de037eaf64",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/bankcard.sriv",
      "new_id": "aeb2bf9b1ec5b306c04805daddbd6e9a319b0285",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/bankcard.sriv"
    },
    {
      "type": "modify",
      "old_id": "df86760f0c90829e5360a5a379688afa4990297a",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/bidirectional_stateful_property.sriv",
      "new_id": "0c945d77d735949cfa08972955bbc0be427ca0d1",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/bidirectional_stateful_property.sriv"
    },
    {
      "type": "modify",
      "old_id": "d771d5282fea0accb426d313377a3a6110fb1159",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/car_widgets_v01.sriv",
      "new_id": "afada96cd2fc27593b7f960c5620cd4d408d23df",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/car_widgets_v01.sriv"
    },
    {
      "type": "modify",
      "old_id": "60ddccc1e765dfc4f1a916d022c2f1fce21cff04",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/collapsable_data_binding.sriv",
      "new_id": "883a76ecb4b7996eaf2c134c2a7a62e9306dcfc8",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/collapsable_data_binding.sriv"
    },
    {
      "type": "modify",
      "old_id": "5c753631cfdb31b6cfa0f1f9d8d59482d0b0d447",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/component_based_conditions.sriv",
      "new_id": "f51aa7d1f042f9f2109b5dfe0baac55be0b56479",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/component_based_conditions.sriv"
    },
    {
      "type": "modify",
      "old_id": "82f7fb9802325844ef3d137b70ba02ae24d1c1db",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/component_list_follow_path.sriv",
      "new_id": "c8de3c568c85ed70c63c4ed662f2e526c2c16f36",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/component_list_follow_path.sriv"
    },
    {
      "type": "modify",
      "old_id": "6d7e6d6712e72835815d95a2a88d67bf1c01ebe4",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/component_list_grouped.sriv",
      "new_id": "34af986e97b7c08d12c52660970825794e1a411b",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/component_list_grouped.sriv"
    },
    {
      "type": "modify",
      "old_id": "13c2afc8ff316091ea1959edeffd050dfb10fc16",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/component_stateful_vm_instance_2.sriv",
      "new_id": "dae40ab5ce5d0881de65d0fdc27e2eee9cde7fe4",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/component_stateful_vm_instance_2.sriv"
    },
    {
      "type": "modify",
      "old_id": "2078c6234506310c95ad8e2abb1cda89fe4da378",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/computed_root_transform-list.sriv",
      "new_id": "3beee85bcfc25b17f2e257d93b4eda4421f69bab",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/computed_root_transform-list.sriv"
    },
    {
      "type": "modify",
      "old_id": "4c92955d1b0d26930e28bf525c58fda1198dfbf8",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/computed_root_transform-nested_artboard.sriv",
      "new_id": "f8a44dbe6d4c3b8f55150cf29967c833e63fc12b",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/computed_root_transform-nested_artboard.sriv"
    },
    {
      "type": "modify",
      "old_id": "38c55bcc27931fc430e3b79ec5edce0f2cdeeb76",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/computed_values_test.sriv",
      "new_id": "37532a76073eaed99b2a0082906c5a97795561d0",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/computed_values_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "820ff45dea65cfc35d413cbaf4eceaf6a99c58ee",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/data_bind_keyframes_test.sriv",
      "new_id": "433df8fa688a250cd148a65bbb297a32935a1d9d",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/data_bind_keyframes_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "eac30882d15adadeceeb953531bf78698326710d",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/data_binding_artboards_default_test.sriv",
      "new_id": "a2af30277e2a7ea8c8a0756eaa77bce39c47feae",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/data_binding_artboards_default_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "63c75dec539d8b329fa8cc4bc62b1568e7c3d215",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/data_binding_artboards_test.sriv",
      "new_id": "6c29e25b48a7df43c7a143358bebf7afefc2f89a",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/data_binding_artboards_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "1f8092d594e297d0b0355fd1e3332d78b740ebb5",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/data_converter_interpolator_reset.sriv",
      "new_id": "cdf679ec71ac622ca63d9ed8fe4d0a54f5dd9799",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/data_converter_interpolator_reset.sriv"
    },
    {
      "type": "modify",
      "old_id": "3198c384ba736488339bdf510a21c50b5f75a381",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/data_viz_demo.sriv",
      "new_id": "f0a90bdcebd0532587d180e5862bd9b93f804289",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/data_viz_demo.sriv"
    },
    {
      "type": "modify",
      "old_id": "92de4499ec73780787939e3f162aad868cece192",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/db_health_tracker.sriv",
      "new_id": "ae5309cab3c06b2e52d542501781aaa44766b006",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/db_health_tracker.sriv"
    },
    {
      "type": "modify",
      "old_id": "384eb0b79c9a2dfe687507662537fda8e4e7f7f8",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/drag_event.sriv",
      "new_id": "1c15ec358d42b982be999243db08989e3e170bc0",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/drag_event.sriv"
    },
    {
      "type": "modify",
      "old_id": "86a2aa4cc1fa59e3e87df73d900df85ac55509e7",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/draw_index_list.sriv",
      "new_id": "3608fe53d308a9bf9af584901a2ab76c09054bf0",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/draw_index_list.sriv"
    },
    {
      "type": "modify",
      "old_id": "33280bfea8a09f48e2359ad50392586ade6b5df4",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/echo_show_demo.sriv",
      "new_id": "61ba2ed2a39a60a3228da523f8ab9b8368cc56fe",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/echo_show_demo.sriv"
    },
    {
      "type": "modify",
      "old_id": "c7f8defe6ed93b5141e424c8fd3f813105b9d310",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/follow_path_animate_shape.sriv",
      "new_id": "77afaec22315401577e90866553c0354f1b78ffe",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/follow_path_animate_shape.sriv"
    },
    {
      "type": "modify",
      "old_id": "4d9669918b674ff26bdf4286b011fcbaddc97283",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/follow_path_animate_solo.sriv",
      "new_id": "bb61bae0b0ea6ac882f0e64f3eb344b157d15c52",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/follow_path_animate_solo.sriv"
    },
    {
      "type": "modify",
      "old_id": "f540fd35670a192982f3332c188c0b516fe807b4",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/follow_path_animate_target.sriv",
      "new_id": "ab3052413ad3b5ee7a19bc5c7a57470b4403e5be",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/follow_path_animate_target.sriv"
    },
    {
      "type": "modify",
      "old_id": "5a7981480707b7caaa8353ffc1362240ef8e4b93",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/follow_path_constraint.sriv",
      "new_id": "c6ca73c5c4b2e8a32ef3919f5dc41e07a6fbcdbd",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/follow_path_constraint.sriv"
    },
    {
      "type": "modify",
      "old_id": "1f77802c6a4fdfbaccff6fff15116c52c2b7cf39",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/formula_random-always.sriv",
      "new_id": "9095ab88c291f3ac6e3abf7082762355bbcd28f2",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/formula_random-always.sriv"
    },
    {
      "type": "modify",
      "old_id": "a7dde87e1273664d61054bc2e24dc161e8eaa0ec",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/formula_random-once.sriv",
      "new_id": "c21c7a8a558a787dbef365837a6413e15a241d0c",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/formula_random-once.sriv"
    },
    {
      "type": "modify",
      "old_id": "b5c21741754d98881b29c233459ac31c0e7217e0",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/formula_random-source_change.sriv",
      "new_id": "484ebc4cfa70e7de541021fdf2bd79f01694ae2d",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/formula_random-source_change.sriv"
    },
    {
      "type": "modify",
      "old_id": "1815cce123b5d0d6480e1ae9aaf8c703d0eae0a1",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/game_menu_ad_police_files.sriv",
      "new_id": "8330299ce3a1e62a07928f69978bd42da225f7aa",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/game_menu_ad_police_files.sriv"
    },
    {
      "type": "modify",
      "old_id": "5505d9c0e3e6acea0b9180e947daae9bc29edaf7",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/gamepad_test.sriv",
      "new_id": "73ab2c13dd04c47820131706689734d34d17d2aa",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/gamepad_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "9d9ceb1b0b5570f26971067d7f21656dd3c135e4",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/hittest_ab_2_non_virtualized.sriv",
      "new_id": "2231ea7dc01037256c07a67500a690a9d950bc5c",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/hittest_ab_2_non_virtualized.sriv"
    },
    {
      "type": "modify",
      "old_id": "6ec0b34e71f51c046a837111c61366a2cc1b727a",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/hittest_ab_2_virtualized.sriv",
      "new_id": "1e86d5867299cbc9c53f50ff816b123ed25ff5fe",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/hittest_ab_2_virtualized.sriv"
    },
    {
      "type": "modify",
      "old_id": "c44ff3c966fe77b0d33be38de472cc99d86e923f",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/hittest_ab_shape_parent.sriv",
      "new_id": "d5be4530d89159ad3e390a4336bf107161631570",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/hittest_ab_shape_parent.sriv"
    },
    {
      "type": "modify",
      "old_id": "859575c24dd8ee23a9d0841f06a17f6ee475d577",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/hittest_ab_text_parent.sriv",
      "new_id": "f71548f23b3afc33dc24e619caa9ff5f921c9147",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/hittest_ab_text_parent.sriv"
    },
    {
      "type": "modify",
      "old_id": "36aff4388bfb309ffc80f9e38b168af5b97c0cdb",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/hunter_x_demo.sriv",
      "new_id": "cc3e0aa0db201f26569e7698785d0172d0f1589f",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/hunter_x_demo.sriv"
    },
    {
      "type": "modify",
      "old_id": "9a6f3972730b164913f40d407b7f594aebe417f1",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/ik_anim_test.sriv",
      "new_id": "8d50ecc4f56b33dc2e5586ba844b24ed8a8c1240",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/ik_anim_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "d4191dac81a27e9209b80872cf70af217e434a94",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/interactive_scrolling.sriv",
      "new_id": "efb21993237a778623b69d7498a0b21ecf7c8b2e",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/interactive_scrolling.sriv"
    },
    {
      "type": "modify",
      "old_id": "b9c84812ced76d67e2bf42660dd9629ef56a1e46",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/interpolation_zero_duration.sriv",
      "new_id": "06e766ec9104f5259c0d33f3331353692ae92c92",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/interpolation_zero_duration.sriv"
    },
    {
      "type": "modify",
      "old_id": "d40874bebea72c236dcb35c11a400f4f95e20a55",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/inventory_demo_test_v2.sriv",
      "new_id": "76c6caade65ea9bb2478c73015bf77e7461654f4",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/inventory_demo_test_v2.sriv"
    },
    {
      "type": "modify",
      "old_id": "dd8259892333bf8d0f7711d9ca76cb641a070dc7",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/joystick_databound_keyframe_test.sriv",
      "new_id": "9f066113a929bd182c29bbc2ac1f086e364eef1a",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/joystick_databound_keyframe_test.sriv"
    },
    {
      "type": "modify",
      "old_id": "12c9c57c62c4210ef4551ab9ef6531811dcbc68e",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/juice.sriv",
      "new_id": "df453da572d776c8ef619a5b0c9e8e1d043e10c2",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/juice.sriv"
    },
    {
      "type": "modify",
      "old_id": "321e0735f3efc7f27ab5b2a4685f8e1cd01aa84b",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/layout_grid_stack_grid_with_layout_participants.sriv",
      "new_id": "1e5650e26a67b278dec4320e7306a34d8eee3b23",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/layout_grid_stack_grid_with_layout_participants.sriv"
    },
    {
      "type": "modify",
      "old_id": "fa98a88ac02b5c3e770f55473a0400da27ade558",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/layoutstest_8-planets-grid.sriv",
      "new_id": "6e1f5ad5e88e82b129db0a94696454a77ae31e16",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/layoutstest_8-planets-grid.sriv"
    },
    {
      "type": "modify",
      "old_id": "95a1f4e8206ae3b50b508a288f37be316760e8a0",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/nested_artboard_quantize_and_speed.sriv",
      "new_id": "7e27c871e71f0326c4623d751d6d09a50fb3cfe7",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/nested_artboard_quantize_and_speed.sriv"
    },
    {
      "type": "modify",
      "old_id": "48c6a4ced616207d520953a959dca9c65cf7e566",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/pause_nested_artboard.sriv",
      "new_id": "21cbffddb51ae7c6cea0ec03230d6f06e2974ebc",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/pause_nested_artboard.sriv"
    },
    {
      "type": "modify",
      "old_id": "93a3c4525a1103b4d9f79570a8e805b9cc34cbb7",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/paused_nested_artboard_opacity.sriv",
      "new_id": "1797a1d343f8b6b95dcac33764348d580010925f",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/paused_nested_artboard_opacity.sriv"
    },
    {
      "type": "modify",
      "old_id": "ccf5a045634d658933bfcbf939c051ea1c758d02",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/pointer_exit.sriv",
      "new_id": "77d75eead7e76c7bfc6e7da84928618f9ccc5967",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/pointer_exit.sriv"
    },
    {
      "type": "modify",
      "old_id": "06ed23da9a56a4b3b5dc796f8a9e5b10d427e789",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/relative_data_bind_path.sriv",
      "new_id": "42e67d3650770604d29f135dbc065355d52dad91",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/relative_data_bind_path.sriv"
    },
    {
      "type": "modify",
      "old_id": "7869d6af462395c421c3339a8800a5a2b11cd925",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/reset_phase_multi_main.sriv",
      "new_id": "3a3d6110f665735cdb1a28ad454d1c074496fdfe",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/reset_phase_multi_main.sriv"
    },
    {
      "type": "modify",
      "old_id": "37113757fe30e15c99b9c299a85818c139722143",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/rewards_demo.sriv",
      "new_id": "21bf796f3fcae1d3ec9a0a6388b003e36a1c4273",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/rewards_demo.sriv"
    },
    {
      "type": "modify",
      "old_id": "a2b3848d789e8f176b00de31c91c8bdd2ffb96e2",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/saturation.sriv",
      "new_id": "0a6e31b6fb1d3982226279f8aa0aedd8011a107f",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/saturation.sriv"
    },
    {
      "type": "modify",
      "old_id": "2ae363d64a0503971c27df17148ad19a5c7089cb",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/script_artboards_opacity.sriv",
      "new_id": "b69ea40e8606d3bc997a1b1102ffb68bb184c883",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/script_artboards_opacity.sriv"
    },
    {
      "type": "modify",
      "old_id": "2d5875f6b4f639658afda77238b7f1edfd24b1c5",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/script_artboards_origin.sriv",
      "new_id": "ec4611f0de208384deb31afbb274ffa2fcf3feca",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/script_artboards_origin.sriv"
    },
    {
      "type": "modify",
      "old_id": "696ea18bcbc153ddd8bea3cf7b32e21992c9983f",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/script_path_effects.sriv",
      "new_id": "da4afdcc42633988c480b2389443c6bfa5019194",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/script_path_effects.sriv"
    },
    {
      "type": "modify",
      "old_id": "d9aa0f82878afb8b7b2885e65c95129a91099c48",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/scripting_linear_animation.sriv",
      "new_id": "f0977436acf7e061a8663971da9e1f54322e9458",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/scripting_linear_animation.sriv"
    },
    {
      "type": "modify",
      "old_id": "9c131997239663cf73a41c4890c30531f8645b31",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/scroll_threshold-horizontal-scroll.sriv",
      "new_id": "aead12791c6033af366b3401e4aeb17add6aa3c0",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/scroll_threshold-horizontal-scroll.sriv"
    },
    {
      "type": "modify",
      "old_id": "970367fe50363caa63dc6257894a848d5f2d99b1",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/scroll_threshold-vertical-scroll.sriv",
      "new_id": "c29790235e5ddab2edcfad153c315a761bc00077",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/scroll_threshold-vertical-scroll.sriv"
    },
    {
      "type": "modify",
      "old_id": "2c4976ff2ea78dc1069e4bd5427b44135d69b5bc",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/spotify_kids_app_icon.sriv",
      "new_id": "2694b5c1fab9999d7ac5c6c0210be423e91e1e01",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/spotify_kids_app_icon.sriv"
    },
    {
      "type": "modify",
      "old_id": "6f8139e67bd6f73fe6890069d50313dc45a5617e",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/spotify_kids_demo.sriv",
      "new_id": "92a10ff6baa3d5fcdb65e244f5c1941429a16a30",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/spotify_kids_demo.sriv"
    },
    {
      "type": "modify",
      "old_id": "4b1378a0e72a472caac0a89833d4b97af7eca5dd",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/stateful_list_props_lifecycle.sriv",
      "new_id": "06efb2058dfe4b28a28948c2cc2aafb6212917cb",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/stateful_list_props_lifecycle.sriv"
    },
    {
      "type": "modify",
      "old_id": "516740e59e3fcdc43ebbc2b9fdd98a408f9ad95a",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/stateful_multi_property.sriv",
      "new_id": "b3186f011f632667e13ef1a3013557c597413524",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/stateful_multi_property.sriv"
    },
    {
      "type": "modify",
      "old_id": "999c0426d0a908a16ef70563ecb7c4d74e878d2f",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/stateful_nested.sriv",
      "new_id": "9e63acac9bc1202578d1ffd8cc0fd39ba912e6d9",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/stateful_nested.sriv"
    },
    {
      "type": "modify",
      "old_id": "05a24a69fdfeca11a8d432161a1ed92be83a8d48",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/target_event.sriv",
      "new_id": "da8f6b89731ec1719698fa199ce70159207a2102",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/target_event.sriv"
    },
    {
      "type": "modify",
      "old_id": "691a9ae7fd58146f6398df318fc208be8f7079b5",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/text_layout_7_3.sriv",
      "new_id": "04e4cf5471fa07cf0cd8063110c5303b1ec3f65b",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/text_layout_7_3.sriv"
    },
    {
      "type": "modify",
      "old_id": "5b4aeed0a70933d14b8b83ceb0fe445a9c9420fd",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/text_layout_pre_7_3.sriv",
      "new_id": "694a46d2a966fedadb978f4b0df5618b9e26c5cc",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/text_layout_pre_7_3.sriv"
    },
    {
      "type": "modify",
      "old_id": "e60c9c7d2e2e1e6cf18ce8a922fbc21f54a11673",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/time_based_interpolation.sriv",
      "new_id": "033c2ac08330dcc64911e92981ac72d29e4e57f6",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/time_based_interpolation.sriv"
    },
    {
      "type": "modify",
      "old_id": "67b79e83fda0b628cc9ba50ccfc3e6d44d214cc1",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/transition_duration_bind_list.sriv",
      "new_id": "40a2560805d5e1de4d8a8dd7990a35c0c7f0e75a",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/transition_duration_bind_list.sriv"
    },
    {
      "type": "modify",
      "old_id": "369dcb5e229c74d816222ff8bd05cb47337e8b89",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/transition_duration_bind_nested.sriv",
      "new_id": "aa4a4bfa093d47cd1beb9864035dc4462d98173a",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/transition_duration_bind_nested.sriv"
    },
    {
      "type": "modify",
      "old_id": "f26cae9f121d8be266593f4ce789a370a7f2f928",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/silvers/virtualized_artboard_databound_children.sriv",
      "new_id": "93f86edd8cbca86d4b79c84c7c50d58ccf9ce659",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/silvers/virtualized_artboard_databound_children.sriv"
    }
  ]
}
