diff --git a/diffs/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807_before_AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807_after.md b/diffs/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807_before_AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807_after.md new file mode 100644 index 000000000..6a0c290d7 --- /dev/null +++ b/diffs/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807_before_AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807_after.md @@ -0,0 +1,1248 @@ +## Access Manager Role Changes + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 200 (HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE) + +- target/selector grants removed: + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xa7aeae2000000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x1947e19000000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7f0633c500000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x486b0e0e00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xbc3a425e00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x9845671100000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x91c28cf900000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x493e28ae00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7427ca5f00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7441ce9100000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xa3254c9000000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x0e50f67a00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xa2455af200000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xc987da3800000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 201 (HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1), [0x3c06dce358add17aaf230f2234bccc4afd50d090](https://snowscan.xyz/address/0x3c06dce358add17aaf230f2234bccc4afd50d090) +- target/selector grants added: + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x9845671100000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 202 (HUB_CONFIGURATOR_SPOKE_HALTED_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_SPOKE_HALTED_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1), [0x3c06dce358add17aaf230f2234bccc4afd50d090](https://snowscan.xyz/address/0x3c06dce358add17aaf230f2234bccc4afd50d090) +- target/selector grants added: + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x91c28cf900000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 203 (HUB_CONFIGURATOR_LISTING_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_LISTING_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1), [0x3c06dce358add17aaf230f2234bccc4afd50d090](https://snowscan.xyz/address/0x3c06dce358add17aaf230f2234bccc4afd50d090) +- target/selector grants added: + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xa7aeae2000000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x1947e19000000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xbc3a425e00000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 204 (HUB_CONFIGURATOR_EMERGENCY_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_EMERGENCY_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1), [0x3c06dce358add17aaf230f2234bccc4afd50d090](https://snowscan.xyz/address/0x3c06dce358add17aaf230f2234bccc4afd50d090), [0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107](https://snowscan.xyz/address/0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107) +- target/selector grants added: + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7f0633c500000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x486b0e0e00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x0e50f67a00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xa2455af200000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 205 (HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1), [0x3c06dce358add17aaf230f2234bccc4afd50d090](https://snowscan.xyz/address/0x3c06dce358add17aaf230f2234bccc4afd50d090), [0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107](https://snowscan.xyz/address/0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107) +- target/selector grants added: + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x493e28ae00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7427ca5f00000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xa3254c9000000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0x7441ce9100000000000000000000000000000000000000000000000000000000 + - [0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33](https://snowscan.xyz/address/0xbdf92ed96ff6d678469afaffa1e7d37b25beaa33) 0xc987da3800000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 400 (SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE) + +- target/selector grants removed: + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x98e7856f00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xde3487b800000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x579b47eb00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xd15916be00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x727ae39700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x5f42a73b00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x3a84f85a00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x46bfdc7200000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x722c65ee00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xf165fdea00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xdf51754500000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x092622b700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x710bc18000000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x3b0beccf00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x063c7dc000000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xfd19d8f700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xcb51c39400000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x404f0b2c00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x99b4425800000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x36f1dfa000000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x7492b5ec00000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 401 (SPOKE_CONFIGURATOR_PAUSE_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_PAUSE_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1) +- target/selector grants added: + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x5f42a73b00000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 402 (SPOKE_CONFIGURATOR_FREEZE_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_FREEZE_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1) +- target/selector grants added: + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x3a84f85a00000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 403 (SPOKE_CONFIGURATOR_LISTING_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_LISTING_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1) +- target/selector grants added: + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x727ae39700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x46bfdc7200000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x722c65ee00000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 404 (SPOKE_CONFIGURATOR_EMERGENCY_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_EMERGENCY_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1), [0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107](https://snowscan.xyz/address/0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107) +- target/selector grants added: + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x36f1dfa000000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x7492b5ec00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x99b4425800000000000000000000000000000000000000000000000000000000 + +#### [0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522](https://snowscan.xyz/address/0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522) role 405 (SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE" +- members added: [0xb619fa61e795d47f517702e63ce50292370561f1](https://snowscan.xyz/address/0xb619fa61e795d47f517702e63ce50292370561f1), [0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107](https://snowscan.xyz/address/0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107) +- target/selector grants added: + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xf165fdea00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xdf51754500000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x092622b700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x710bc18000000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x3b0beccf00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x063c7dc000000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xfd19d8f700000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xcb51c39400000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x404f0b2c00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x98e7856f00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xde3487b800000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0x579b47eb00000000000000000000000000000000000000000000000000000000 + - [0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642](https://snowscan.xyz/address/0x8f72573f1aa0a1e39ffd2a2a69e9edaa8b982642) 0xd15916be00000000000000000000000000000000000000000000000000000000 + +## Event logs + +#### 0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522 (AaveV4Avalanche.ACCESS_MANAGER) + +| index | event | +| --- | --- | +| 0 | RoleLabel(roleId: 201, label: HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE) | +| 1 | RoleLabel(roleId: 202, label: HUB_CONFIGURATOR_SPOKE_HALTED_ROLE) | +| 2 | RoleLabel(roleId: 203, label: HUB_CONFIGURATOR_LISTING_ROLE) | +| 3 | RoleLabel(roleId: 204, label: HUB_CONFIGURATOR_EMERGENCY_ROLE) | +| 4 | RoleLabel(roleId: 205, label: HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE) | +| 5 | RoleLabel(roleId: 401, label: SPOKE_CONFIGURATOR_PAUSE_ROLE) | +| 6 | RoleLabel(roleId: 402, label: SPOKE_CONFIGURATOR_FREEZE_ROLE) | +| 7 | RoleLabel(roleId: 403, label: SPOKE_CONFIGURATOR_LISTING_ROLE) | +| 8 | RoleLabel(roleId: 404, label: SPOKE_CONFIGURATOR_EMERGENCY_ROLE) | +| 9 | RoleLabel(roleId: 405, label: SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE) | +| 10 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 201, selector: 0x98456711) | +| 11 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 202, selector: 0x91c28cf9) | +| 12 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 203, selector: 0xa7aeae20) | +| 13 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 203, selector: 0x1947e190) | +| 14 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 203, selector: 0x7cf1dbc5) | +| 15 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 203, selector: 0xbc3a425e) | +| 16 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 204, selector: 0x7f0633c5) | +| 17 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 204, selector: 0x486b0e0e) | +| 18 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 204, selector: 0x0e50f67a) | +| 19 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 204, selector: 0xa2455af2) | +| 20 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 205, selector: 0x493e28ae) | +| 21 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 205, selector: 0x7427ca5f) | +| 22 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 205, selector: 0xa3254c90) | +| 23 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 205, selector: 0x7441ce91) | +| 24 | TargetFunctionRoleUpdated(target: 0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33, roleId: 205, selector: 0xc987da38) | +| 25 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 401, selector: 0x5f42a73b) | +| 26 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 402, selector: 0x3a84f85a) | +| 27 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 403, selector: 0x727ae397) | +| 28 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 403, selector: 0x46bfdc72) | +| 29 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 403, selector: 0x722c65ee) | +| 30 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 404, selector: 0x36f1dfa0) | +| 31 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 404, selector: 0x6a8b9a27) | +| 32 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 404, selector: 0x7492b5ec) | +| 33 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 404, selector: 0x99b44258) | +| 34 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0xf165fdea) | +| 35 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0xdf517545) | +| 36 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0x092622b7) | +| 37 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0x710bc180) | +| 38 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0x3b0beccf) | +| 39 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0x063c7dc0) | +| 40 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0xfd19d8f7) | +| 41 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0xcb51c394) | +| 42 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0x404f0b2c) | +| 43 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0x98e7856f) | +| 44 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0xde3487b8) | +| 45 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0x579b47eb) | +| 46 | TargetFunctionRoleUpdated(target: 0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642, roleId: 405, selector: 0xd15916be) | +| 47 | RoleGranted(roleId: 201, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 48 | RoleGranted(roleId: 202, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 49 | RoleGranted(roleId: 203, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 50 | RoleGranted(roleId: 204, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 51 | RoleGranted(roleId: 205, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 52 | RoleGranted(roleId: 201, account: 0x3C06dce358add17aAf230f2234bCCC4afd50d090, delay: 0, since: 1786090593, newMember: true) | +| 53 | RoleGranted(roleId: 202, account: 0x3C06dce358add17aAf230f2234bCCC4afd50d090, delay: 0, since: 1786090593, newMember: true) | +| 54 | RoleGranted(roleId: 203, account: 0x3C06dce358add17aAf230f2234bCCC4afd50d090, delay: 0, since: 1786090593, newMember: true) | +| 55 | RoleGranted(roleId: 204, account: 0x3C06dce358add17aAf230f2234bCCC4afd50d090, delay: 0, since: 1786090593, newMember: true) | +| 56 | RoleGranted(roleId: 205, account: 0x3C06dce358add17aAf230f2234bCCC4afd50d090, delay: 0, since: 1786090593, newMember: true) | +| 57 | RoleGranted(roleId: 401, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 58 | RoleGranted(roleId: 402, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 59 | RoleGranted(roleId: 403, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 60 | RoleGranted(roleId: 404, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 61 | RoleGranted(roleId: 405, account: 0xb619fA61e795D47f517702e63ce50292370561F1, delay: 0, since: 1786090593, newMember: true) | +| 62 | RoleGranted(roleId: 205, account: 0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107, delay: 0, since: 1786090593, newMember: true) | +| 63 | RoleGranted(roleId: 204, account: 0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107, delay: 0, since: 1786090593, newMember: true) | +| 64 | RoleGranted(roleId: 405, account: 0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107, delay: 0, since: 1786090593, newMember: true) | +| 65 | RoleGranted(roleId: 404, account: 0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107, delay: 0, since: 1786090593, newMember: true) | + +#### 0xa72636CbcAa8F5FF95B2cc47F3CDEe83F3294a0B (AaveV3Avalanche.ACL_MANAGER) + +| index | event | +| --- | --- | +| 66 | RoleGranted(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107, sender: 0x3C06dce358add17aAf230f2234bCCC4afd50d090) | + +#### 0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107 + +| index | event | +| --- | --- | +| 67 | topics: `0x2329cbe7a0a6163d660474fbbc2e37d4b23710a3427e5cace6b371f5dba354b6`, data: `0x000000000000000000000000bdf92ed96ff6d678469afaffa1e7d37b25beaa33...` | + +#### 0x3C06dce358add17aAf230f2234bCCC4afd50d090 (AaveV2Avalanche.POOL_ADMIN, AaveV3Avalanche.ACL_ADMIN, GovernanceV3Avalanche.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 68 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1786090593, withDelegatecall: true, resultData: 0x) | + +#### 0x1140CB7CAfAcC745771C2Ea31e7B5C653c5d0B80 (GovernanceV3Avalanche.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 69 | PayloadExecuted(payloadId: 122) | + +## Raw storage changes + +### 0x1140cb7cafacc745771c2ea31e7b5c653c5d0b80 (GovernanceV3Avalanche.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0c91243f75e216cf1d80d738f653c23abf15a7e3590b83c6e4772e2ddcffe533 | 0x006a759460000000000002000000000000000000000000000000000000000000 | 0x006a759460000000000003000000000000000000000000000000000000000000 | +| 0x0c91243f75e216cf1d80d738f653c23abf15a7e3590b83c6e4772e2ddcffe534 | 0x000000000000000000093a800000000000006aa3b8e100000000000000000000 | 0x000000000000000000093a800000000000006aa3b8e10000000000006a759461 | + +### 0xa72636cbcaa8f5ff95b2cc47f3cdee83f3294a0b (AaveV3Avalanche.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xa6e98b9d4b61083554d3215798b04fea9ba5219508b982cf5c1e47b0014f8ddf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | + +### 0xd8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107 + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000bdf92ed96ff6d678469afaffa1e7d37b25beaa33 | +| 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000012c000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000012c000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000012c000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000006 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000007d0000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000007 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x010000000000000000000000000000000000000000000000002710000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x010000000000000000000000000000000000000000000000002710000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000008f72573f1aa0a1e39ffd2a2a69e9edaa8b982642 | +| 0x000000000000000000000000000000000000000000000000000000000000000a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000007530000001fa40 | +| 0x000000000000000000000000000000000000000000000000000000000000000b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000032000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000032000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000001f4000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000032000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0100000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000010 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0100000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000011 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000012 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0100000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000013 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x010000000000000000000000000000000000000000000000000032000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000058d15e17628000000002a300 | + +### 0xe069096bdaff9bad15b2f1079eaf0f1685a24522 (AaveV4Avalanche.ACCESS_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0x001c8c333b7a49c6fdcc8856008d33a352b5835b9cd67df888b3c4aadc44bd0f | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x00c46833d4fc0456c1942b8007c3355a761c7987c9dc4a2cab7e157566f2430f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x017d6c547581a22d9d4ebb14f6c2daca53540defd00b276752b4a36d9da02ec2 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x019eee052d8b8053fc6e62ffd5be13b3f0e91936230338b48886fb5f783a9768 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x02d435bfc1557649d338a52a78dc482b8d46c1e5071cf57063be98893b833f82 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x032b3820af2f4bad1abd5c2f312f6cb6bfbe5e2857d743716a1a75a226009d10 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x0487f45463b189b7c4c91c25c27d0c4dc57977968873f7b48a5ec9cee6a0d81b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x05f2c5c0f6d2a5490fd88909f150d46eb7246dd04631191fc97258c4f1301f76 | 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x06eb74298f90461b4f3dfe9a94d02d51030a23e56bc89aa2cfe57eec33b2aa19 | 0x000000000000000000000000000000000000000000000000000000000000000d | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0735b376d3c287aa12cb7ba0cd1ac97e660071d478e2dae1d46fd84b49a61ed9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000a | +| 0x0764ad9844ce5562ee5f0cc9508ddedbdc631ec5436056f04f53ffaa9c6a14e2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x493e28ae00000000000000000000000000000000000000000000000000000000 | +| 0x0764ad9844ce5562ee5f0cc9508ddedbdc631ec5436056f04f53ffaa9c6a14e3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7427ca5f00000000000000000000000000000000000000000000000000000000 | +| 0x0764ad9844ce5562ee5f0cc9508ddedbdc631ec5436056f04f53ffaa9c6a14e4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xa3254c9000000000000000000000000000000000000000000000000000000000 | +| 0x0764ad9844ce5562ee5f0cc9508ddedbdc631ec5436056f04f53ffaa9c6a14e5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7441ce9100000000000000000000000000000000000000000000000000000000 | +| 0x0764ad9844ce5562ee5f0cc9508ddedbdc631ec5436056f04f53ffaa9c6a14e6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xc987da3800000000000000000000000000000000000000000000000000000000 | +| 0x08b0ae78d7742b686c728d8aa37738fae46bb771e4809389c8d372de0bb313b8 | 0x000000000000000000000000000000000000000000000000000000000000000a | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x08d1153def37dd54b80f18696c9ce7f734675e0f90b665244e220babffd1f1f9 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x08df3ba7792438012cdecedd636f959fc0bf8777eb6d00ba16b726d173e33873 | 0x000000000000000000000000000000000000000000000000000000000000000a | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0cf7d4f6ff7f976b80faaa1a80bf63ab8942eb204ac0534fe4d5a7d404f8cd8e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x107e83b6cade4a3cb36954621f66962c65ddcda1f6df21833a9453ea04c89623 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x119553a9a8d36b52612fa01d4bb20d765a160679db66548526ad7a16ebf6882a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x12be4b3a957d22df2e2df6d888ed906cf0137beddfe79139ec62fd0511ff80f4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f5249534b5f4d414e4147454d454e54 | +| 0x12be4b3a957d22df2e2df6d888ed906cf0137beddfe79139ec62fd0511ff80f5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x5f524f4c45000000000000000000000000000000000000000000000000000000 | +| 0x1309a3fefa3b710125133fed01122d49f43a03329410428a90fac54e383d1d2c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0x1309a3fefa3b710125133fed01122d49f43a03329410428a90fac54e383d1d2d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000003c06dce358add17aaf230f2234bccc4afd50d090 | +| 0x136390a34eefeacad639aaf826fd29185b47944a47d21565fad79887714bf29d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x13e1d8d0e0fe03966c11d1a1a557fc717874e215d397d6cc7c1e103e1385486d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xa7aeae2000000000000000000000000000000000000000000000000000000000 | +| 0x13e1d8d0e0fe03966c11d1a1a557fc717874e215d397d6cc7c1e103e1385486e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x1947e19000000000000000000000000000000000000000000000000000000000 | +| 0x13e1d8d0e0fe03966c11d1a1a557fc717874e215d397d6cc7c1e103e1385486f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 | +| 0x13e1d8d0e0fe03966c11d1a1a557fc717874e215d397d6cc7c1e103e13854870 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xbc3a425e00000000000000000000000000000000000000000000000000000000 | +| 0x15682488a057e73e9a73a03f08e95b5517de06203c2f834ad167d1a45332a23c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x17c2f46a0cff1fe4695749c1ed097b29b9be5089c70f563b3641c8d29069bec8 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0x18f2fd90128c5880b2bfb7794a0672ade035230feaa4854fcfd5bf4c7f68be52 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x3a84f85a00000000000000000000000000000000000000000000000000000000 | +| 0x18fe2baba04b04b843cd138489dc125d2854aec75ebb8a449c914ba035cd57fe | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0x1b6ba2e792d561a285c81755c600ce627c518c50e8b87b61a790258ec239131d | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x1beda5ef31eb144c7ef242d9ea895c11bb384d800d89c54abc8a84ce88faa3de | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x91c28cf900000000000000000000000000000000000000000000000000000000 | +| 0x1c0ee19f7a0369dab3d86f68111c7f72b1b0613fbc91116983758633b10d98e2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0x1c330739bb1f37d7c5c59c81c24299b9c1b2b81d5d270b4d1f041333592b859b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000006 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1790 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xf165fdea00000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1791 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xdf51754500000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1792 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x092622b700000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1793 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x710bc18000000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1794 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x3b0beccf00000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1795 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x063c7dc000000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1796 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xfd19d8f700000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1797 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xcb51c39400000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1798 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x404f0b2c00000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea1799 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x98e7856f00000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea179a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xde3487b800000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea179b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x579b47eb00000000000000000000000000000000000000000000000000000000 | +| 0x1c5773bdafd2c0092a7ddd9463936e1d51c138f56ce0572c1a10012189ea179c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xd15916be00000000000000000000000000000000000000000000000000000000 | +| 0x1c8fcc5337bbc6937822c8cdb9aa4ae2a9e57ebb32d292c1d7fadafa2fe2726a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0x1c8fcc5337bbc6937822c8cdb9aa4ae2a9e57ebb32d292c1d7fadafa2fe2726b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000003c06dce358add17aaf230f2234bccc4afd50d090 | +| 0x1c8fcc5337bbc6937822c8cdb9aa4ae2a9e57ebb32d292c1d7fadafa2fe2726c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000d8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107 | +| 0x1cbca566d2b962981d72e0a89bd23ce01c9362fd17ebec1f29a932eb2ff61ca7 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x1ceecbeaac4e12ff8a52d7b3ffa9a66ddeab82f122d66813c0d062fb79a09ecb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0x1e9358abcf1b20b523fa42000cec427c1b40be9c9c708842bb46c9e25430a9e6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x1f63186679bab43ac720e6f8b6eab0567c4922b83b3472e57f0d543c68cf619e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x2091139362f8cbad621a6d3d46e8a49878d22cd015d2067303f818981c712e2b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x210b8af4641d46dd2d5f63b2750683eba6bc1fcc5c65bfecc2a722a655bd9f70 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x228127e588e08229c963f848e86d2e8d6862c7a065be84d48bab4cd9a2fc871b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x22e0cf7d9c7a297d6c8c334ecdb10daef55f0fe3168adaa8e0eea22c08720f4e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x23c91e966f603a72e071c49d141c390dc84c292a25969083b627254bcd72c310 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x23fd5c50324e42074c0de6539f04d7a5ac51520e4d1d1b68cefdbab46a8df92a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x24155629b43d61d280be706354dc733276d79a6459cdd9d8e968a948af626972 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x26564a9842445dc74d9f07ed82bf6b114b8b1d9caab12e4ffe452622666b4936 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000010 | +| 0x2729f3aa81dc9295f84be4c1fdbf3332ef35b4904f43585e9ea284d564648603 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x273b4ad4cfbfcf8b849cffc95d2c957195686f56bf80f6ec535b50c4b653e85b | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0x286280989e6dfc0763edae61b1f27ad5ed5aaffd32391590925479939eab5323 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff2c | 0x98e7856f00000000000000000000000000000000000000000000000000000000 | 0x152ef83200000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff2d | 0xde3487b800000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff2e | 0x579b47eb00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff2f | 0xd15916be00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff30 | 0x727ae39700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff31 | 0x5f42a73b00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff32 | 0x3a84f85a00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff33 | 0x46bfdc7200000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff34 | 0x722c65ee00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff35 | 0xf165fdea00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff36 | 0xdf51754500000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff37 | 0x092622b700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff38 | 0x710bc18000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff39 | 0x3b0beccf00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff3a | 0x063c7dc000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff3b | 0xfd19d8f700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff3c | 0xcb51c39400000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff3d | 0x404f0b2c00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff3e | 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff3f | 0x99b4425800000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff40 | 0x36f1dfa000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff41 | 0x7492b5ec00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2b2f68eaabbe5b3734e39742df35f6a4be157f26328f79cfeb4b0bb8b7b5ff42 | 0x152ef83200000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2cb911e767ee410e3fd8e27f576bf96c2660b5c99f0ff93698cd05f56f0cf401 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2d1b7059e5867235b632f6758dcde179c90c28bcb6a80a42105653be89fbdd7f | 0x0000000000000000000000000000000000000000000000000000000000000015 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x2ddf86c66af6896fcb1fc290502e90a5db3e24b977435fe9b561b8e272eb59bf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f454d455247454e43595f524f4c | +| 0x2ddf86c66af6896fcb1fc290502e90a5db3e24b977435fe9b561b8e272eb59c0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4500000000000000000000000000000000000000000000000000000000000000 | +| 0x2e1f5583aa480f7ec099771dc82fbce75854fabff4bb89441dd42a05dc553f24 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x30a32bb0cf410f4914d247d9662e941237469f696491c3bca234610c5ef2b4bc | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000008f72573f1aa0a1e39ffd2a2a69e9edaa8b982642 | +| 0x30f1c35f99d9a1b6192bb972c2baf29e38aeba81f17a9624e40718f7833eb847 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x3168f8593f23c9d4eb5d65f3e4059752a574731f297b397f990c3178e51f4e90 | 0x0000000000000000000000000000000000000000000000000000000000000007 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x321cc939580fad64f2191d02fc182a2faa0c929d95c1943ea316dbb3c209cab9 | 0x0000000000000000000000000000000000000000000000000000000000000011 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x32630043f60d56bf03704151ffc2bcd7dcb6bcc63139a14b2ddd1362364668da | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000008f72573f1aa0a1e39ffd2a2a69e9edaa8b982642 | +| 0x32a8ef9b73b28c50c530515c40516b6eee0670f3a4c9d26faf47c612a25b42cd | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x33e2fbca29dbf98909aa7574538d8961468cdc6135ed20690fdd7fbef6c530c8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0x3424c85cf97681a66257c75a347851d6fa8d0c3c1ff00205610164e54847083f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000012 | +| 0x351695c346fd2c430009941254a9bdc2f2d74ee6b16e73852b2cef9efe2a2db2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x3537287cb90110bce7dd900f0eec9696ed7e09a43d3d2d9f7d4acafb369a0a8d | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x35db5378e946724a70bae166bc4e47f5aa2773ea947450e6cdcb498801179b79 | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x370a13b1aa1af87c3dd53ea9a2e59bf16d0cee87b5f95fcc1a7db6e2d0e647a3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000c | +| 0x380e8fb2b2e2981600848effe3d54c909bd51559f43c0cd9652590784c5f33fd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x386d263cabbe67990b74526d283ee5273fd4f10fe27991751d6b72943fbc932e | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x39aec26ccd3005f1d073f5217f5d1599153bcd591cb959247f1f43b162e3baca | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x3a06428f0f9c98131908303b266df0efa51cfff5351b87c18536b00d7774cd44 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x3b25bfcddb08945e9030ad9c40a88e3ff7517ad5d9decbaf7921974925d91f0c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x3b2846dc4d2c6fe944dcabcda3751b19df8389ce70b0739a6bf6174b10863e44 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x3b509a0155d52cbb54e35d94df85aca9c2a0d72a434aa776cc93d0e436116132 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x3b62763de31f30239f24e19ebd25af7c2b15e18ed3dc60849dcb6f3d9a3603be | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x3d79183ea8c2df5bff67af4e4d9eb76450b717b4660316189bcc32466b5a3a37 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x3dc0d665fb26c9df21cf0c333240611bc16a75eb7137eb8114331a4ff0ef60cb | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x3dd326fdc9bc3768a9c44cc2465058a195c9b311cb269b296884a2f48099babe | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x3e22a58397c2dc6777c62cd416d7b585f058ca3ecc697cd4df7da7526963193f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000012 | +| 0x3fd307df8a0b4aa5139f2b1a8fced95e83ffe0f4bf96031be83e0dd2657f9212 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x417898fb6c7dbb5e7c9985459526bf778fb3454658820e36148d158d77ce1619 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004b | +| 0x41cb1185900d367945efc14428af3e583768e9d2afb540c8f6e1ca19b96fdb93 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x41dc3dab004f9ca45618b36646009e68335fe63a32fa60740e0c50e4a5aed3eb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0x41dc3dab004f9ca45618b36646009e68335fe63a32fa60740e0c50e4a5aed3ec | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000d8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107 | +| 0x42ade020ffdb60199492192b7100c22c9017c6aafbba400e20e989cff1c0d4d4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000c | +| 0x460bfd791169ff971f44be32e0014c7f5573bda26b5dcb324fca54a989c3a1ed | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x46e52bc5f9a0f5b1e48e2990575db3b486df472af357b146a0801a73ef63adf8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f48414c5445445f524f | +| 0x46e52bc5f9a0f5b1e48e2990575db3b486df472af357b146a0801a73ef63adf9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0x482bdf07029a47d4427bb38dccd0fdfbb76987ebd34b909a6eeb7c04e1a3dd99 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x48dad462932d3bb58e970b91402b85a71e649f260f994d8b579f757464b97a3c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x4afe61ac818e62870b6ad62d3e63fc9b60e869342452373f60f31aa2e6e5438b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x4b5f1f0d28cefec6344dd668c50d44d60bfbb59d3ef18381d6aca5dcec161d6e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x4b908c99c4b936c2fd4079f0dc4b74474c9e4e524139e6c55dcb3f15f58419f3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x4c7ad7de04cdbbed7ac607cce756ab69f3ce6b2782a5114a9819ccb8d6b7d5db | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x4e5263d0c038e6d5108989864deaec4d725b2fa367d027e0aa49aa3cd891bf42 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x50759859414948a7d2e6e28c26e67a9efdebeed1d5bab54b2e3ddbd338325a7f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x51ccba6e50c3ad10ca1f1fec5f29eaa6fc8c25b65d5b36d5785d594e9a991eae | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x5242161b3c60b07c4212650b76529b15f44e3adeb5c751319527252e17e8a34c | 0x0000000000000000000000000000000000000000000000000000000000000013 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x533076e02e890e3541c4091581c076168306156e10055d5b071dcd32d2165701 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x53ba0a420fe141f284762c71c30e6c8b3eaf2575794f61763c732e604ae51858 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x551beaec28d06dd7ce54a440b176e84379c7f54c3acfd927c9d5bbe99cc32135 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x5547fdb081b036a9d1e782856d3c2b8eb5c4d721f63ac4130c5ca63650cd1283 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x5612cef6451d6cbf4daa09c956f004aa34528cb63fae488cd32bd0ab49160c62 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x5727eeb47fd568ae91c965922d39789cff173f6ad030c58d00cde4a4d4018459 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x58bcb576c79d47b805e44e43d5990785b89d3cb8f5a388541bea2293e3a947d7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x591e7226917498da44cd9be15381f9c2102513c896fc0cdad9dbcc7a1734ae66 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x598971fba20d735dfd88e29c6b1c5b4f915f19e607d53dd87983cb790b10bd4b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0x599936c6b184fbf3b9ff2af4337ecf8377f8f68d33016365f54e599b233674a2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x5b1f68d7be2d8753246db01a01a83ffd41028fb450b374b19fe4d7575ac0ff17 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000011 | +| 0x5b6b1a7f74c3642da38d48ca684b4874f889b9cf8d431bbe4ffd64955cea5972 | 0x0000000000000000000000000000000000000000000000000000000000000012 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x5cb9eb007c83fefa7c966e2a23922c7a7de759305da4bfd0dfc8a46e90ac3545 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x5d430b4895ef497fce25462c1da5c157897f41167602488898d3b5bbc282166e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x5db10d17ec61644664cc9d511365179c325ee94996aa7162b86283817c7e1d81 | 0x0000000000000000000000000000000000000000000000000000000000000018 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x5ea55bbee64ce750bc8f2f1a7197752f21879f2052880c117132b7439dbbbc6c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x5f5278d8d2d7665f25bee2947dc354e1a00e4de788108d7557a55f335fe0e601 | 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x5fc6570690edcd80cf99ef3f67269ec94a95d737d94d123477994fc95f721e6a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x6145dfe13693804c29a0fcbd4a9c2030ca9945b7bed74d3e0fcfbdb1ce138cde | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0x61ac2e768d2a4fd4cb918bb1a3e655c92444d52d77eee2b164316ced88ae805e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x61fb1e91dea217f2cd585f648b4974a81257e487154b261152a006d17ff03eaf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f4143544956455f524f | +| 0x61fb1e91dea217f2cd585f648b4974a81257e487154b261152a006d17ff03eb0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0x626ea958d61cb3269c4adc9523862daa6f6db42b521d5558072a6d4cc2fc5559 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f50415553455f524f4c4500003a | +| 0x650bf135fa5e7a553aae7afdaa066aab9dd0f916234d78089e4ecbc781565c68 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x66012db8132cde6395ac60eaec2ca4903a26d504649cf2dc4f0fba168e7e41bc | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9fe9 | 0xa7aeae2000000000000000000000000000000000000000000000000000000000 | 0xa9fe640400000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9fea | 0x1947e19000000000000000000000000000000000000000000000000000000000 | 0x86803a1f00000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff0 | 0xa9fe640400000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff1 | 0x7f0633c500000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff2 | 0x486b0e0e00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff3 | 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff4 | 0xbc3a425e00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff5 | 0x9845671100000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff6 | 0x91c28cf900000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff7 | 0x493e28ae00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff8 | 0x7427ca5f00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ff9 | 0x7441ce9100000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ffa | 0xa3254c9000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ffb | 0x0e50f67a00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ffc | 0xa2455af200000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ffd | 0x86803a1f00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x68803fccdbe35e9ca3c949572b5482ab694ffdcdbe3ddde9e1a6b67f238a9ffe | 0xc987da3800000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x6b031375fe4e65c5e745909c331c8be968de93e4d9e39f342bec40ced529cfd9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x6bde0527e0c92eba5e76f40cda5075b31de29687227e2e4a7874adbcf6e20935 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x6c165aa7edd0e15ba652a3e7360d6dd17d066b7d2ab490c656528d87d4fa7ea3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x6c3b83b7a35972cf988a56a4c8668243d8a3df026e87f0e9a6a641e4ef9ada69 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x6cc7d5aa31cf589ac29d22f98c9db135ce24bba912f6fe90a0f3d1229def7dd0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x6d43d1f76405a8e3a2a36ead705071d623c0a8a0b4c3eadd6fee0aa6f353df20 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x6dc04bc89acf6ac6e93c36802a9b50d9d985df029d65654372573cc4f43958ab | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000b | +| 0x6f6f4b90f42bc3b1c45257ba49ae6e71875509c012267a8381ac0d77ca93fb45 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x701b5d687eb62af0eb18eb02d71426f2205884f5e7acc1bcd7b47c1b498ea8c9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000011 | +| 0x71539ee574fda1e3f0b78017ebd63271f1603ad1bd05a9d918e4da3c491c75cd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x72d150a791d42164cb8b0e6aa63f74b0a12ef3673af994f9fb1d8fdb3e8c1923 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x737878f418b42db5abee7b71fc345e9568a5edd238668ac6c6e06a70ad95b4b7 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x74f2d2bf05542916745b0e7a1107d702abb7679951121d1691c62f2d7fa975cd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000a | +| 0x75f2b60a0bccfa4986234ec4e22de72492da071071d3f788d398f9c505286324 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000bdf92ed96ff6d678469afaffa1e7d37b25beaa33 | +| 0x7764dccec372bf5220311cd88c48a2ccfcdb83778086dc14bd4bec4a79fe633b | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x77b0e09d4da69288a7ead2d06d0d4d1b069a63a40d254b458305d24703538d0a | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0x7855f45363d604968b3feaf32cf40718ce00e028950c183274bd8d8c77f49856 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x78c0f5d1876e0db705960c1f8c660e724c2a3b58fb054621a2a4795613096a0d | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0x78d51a2803b176cc7cced955e0fe19bc8339a1d9ffc21b962b0e62fb02da3f74 | 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x793723e36f9419e120d7c77e54b6277228fe5498624bcc7d8ebe9c19125f0b4b | 0x000000000000000000000000000000000000000000000000000000000000000c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x7b020e005794d37b247fb2526f93cfffe43b9eefc82074975de36f139a6eadaf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000a | +| 0x7b99f6f0a53abaec4143de311b3ccb56b0bd6de1852a4b734088dfe9507a4ddd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000008f72573f1aa0a1e39ffd2a2a69e9edaa8b982642 | +| 0x7cf5f71ce5622a26482b59a179f9d2e8fe06654d80ab8b6b55d46746be3dee1a | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x7e130870472f889aca65e324cc5379f721c6b3480e4606cbf2afad62e4a33b1b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x7e7d30303c91daab6e42fe633f81ba95564bf05b4370c71bf9535e60435b849c | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x7ef8f20b6e1227c49dbc49b46add414e70949b8df9ba346240b2dc97d3464cb0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x7f2b3ecf6d561fbe547eb438c4adb409921c1553d65d2a1b9e56170df01a8f48 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x836680111e0d8d43ec4f6ec2e3e5978aac322a96660de808630a7aa9efbf2a64 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f48414c5445445f524f | +| 0x836680111e0d8d43ec4f6ec2e3e5978aac322a96660de808630a7aa9efbf2a65 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0x83d94b0cdb75113d17adb1e4f7c6961938f8ecbb7d910c322c5cca45968e5533 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x852b951860dcd4d4da8e28b189a2977387f00b4be71fb7c151bfadf4747eb516 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x8597b2b7bced08d89abc7223d1d5062d186c03db394f759b2cf1417ee629bf22 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x85f7cdb4cb0f8a985b3305e6b613b80c44fa3708ad17efe4ed7597a78cddbf35 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0x860db22d7564de6de5514bb67c3cc610dc0ac43ecae1bceb17fc5da8679ad133 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000007 | +| 0x8674f0221584f196da9eeac33b14531ab68d9f6648b12196b11792389780de82 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0x86e7c500a9f59d74a7d62957fc09469993cd5c22c4fcf50ec466265ad34c3d9d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0x884377b20e5db3d3532bb6fb589737fbb8225f0cf453ac4a883d6b1361a5aec2 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x88453c48132435e55356856c3f474ee3b5dbf9d630424275d907b2988dc62974 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x88e2d34d8f3010c87526b5f719e07aef5f1cae45a6ecae0c81d7b0c595d08e32 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000009 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1aa | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1ab | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1ac | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x8ac7052b648e410f15b9aefa832eacf25a7343623849adbae52623d5e2e115c9 | 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x8b404d93c7d5d7bd3826bcf385b10639ef9c76d4684b968dc4ddfcbac13452b9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0x8b6b08f4be9dc9a458a2b6a8c9ab547ce4cea4948799f503f88488870565d4b4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x8cc10488bed4d32471363ef03e7491ec81a34ab404933ac3e13b146b80dd4303 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x8eb26618bbb543038583b45ae2102224f34fccab82e3c6b7dfeee0228fd5d0ff | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7f0633c500000000000000000000000000000000000000000000000000000000 | +| 0x8eb26618bbb543038583b45ae2102224f34fccab82e3c6b7dfeee0228fd5d100 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x486b0e0e00000000000000000000000000000000000000000000000000000000 | +| 0x8eb26618bbb543038583b45ae2102224f34fccab82e3c6b7dfeee0228fd5d101 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0e50f67a00000000000000000000000000000000000000000000000000000000 | +| 0x8eb26618bbb543038583b45ae2102224f34fccab82e3c6b7dfeee0228fd5d102 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xa2455af200000000000000000000000000000000000000000000000000000000 | +| 0x8ff41266020b430e7b8901adba0329581c7dd938df10bcb4919869b029c573e5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x900826d89466ba5ed6bbffb6e2b6cbbe8b55ecf96b56d9824ba8bc9833a33886 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x90248e092ca3c33f3a0333ace1803c497d9690ccab798b34a670d4e8037377ec | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x90ce4a99a190264bc58bf54acc7b534a12a2303229c4b3f256bf3e0cc57b2d4a | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x910a365c8584c9c213be1fd91315dd5baec0b09f6560c7cfa70d158f05371ba0 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x911db89b900672d1b06cae972bebea15b6bdc360530eafb7916455320bbbd0d1 | 0x0000000000000000000000000000000000000000000000000000000000000015 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x91796d0035fa608ae1ba9cfd508c2438ab4fe9a2a0076d891e39bee982cdc1cb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000c | +| 0x91a6f9f35f53a1edf37093333fa0d42918e57e76280a821f59cf545489e75b67 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x92133e9636a33285a96642d0cac4896855201db65425deb980c7f59fed39a248 | 0x0000000000000000000000000000000000000000000000000000000000000012 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x92b382c9271d0d64a32999c4661480946a8a8c9a5f14ecbca578551b6afe8d3b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000008f72573f1aa0a1e39ffd2a2a69e9edaa8b982642 | +| 0x93c03db7033583d815faa5219cdb847f23e61d2fe63511457550f7c65e8d8f96 | 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x958bbb1659d364a0c655a10b63d1c78620d64a97f5947d28294b3435e76ecd10 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x969fa1dac059fe2035ff5c676f9d29b4834d7bd03133deca82f40335a36abaac | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x96d217c0458f5811868360b9ca4933dc438b8b3c9558966d1316a02601d39da4 | 0x000000000000000000000000000000000000000000000000000000000000000d | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x96d9b344ef42e397df525e5b0d8b3fb43c010dfc20e0f518a38e75f7cb8eb9fa | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000b | +| 0x9715e541c62fd1e155fedcc526954ebbf3a1141244f77fd74a1a293e60c9da8e | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x97888aca91596668bd053379350d9007ae225bb00fe2befb038a3444a3d0ec84 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x9789dd75e673a901bf22a0fa8e8867decd684c7baba02fa93e4a0d8b56294848 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x97cdf29bbe1626ef753fa18f0116aa6676c3b27571e349b8025695b5fe768af6 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0x97d3dc421f021b3fd5b47969b3984179f38dd3ec9302da725a452be2c8979e29 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x97eb9a220f7ac11d226a5a5846c6d5e4dfacc259cb6c5852eb5d6b55c059ba5f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x981f1cd794feee20e2392042b66721d2cd6989fa3a999811331693d2e396e56a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x985d1c5d829c7a68bf2e7ac2c92a7a1c3347d8dc97f87b62b7cee069934e1c56 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x987ffbeafa08f81f99e4f724572d973738693917bcb9f61a3b082e4ab117dd1a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000010 | +| 0x99dce4fe82fb2d3eccbccfbaaa4d82c019329956a0c201b44fa6a4afef2d2d94 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f4c495354494e475f524f4c453e | +| 0x9a58f1454be26a4e8d333851d01f8803a8491916de74c9bc290ecb320a43b632 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0x9a83581774ea88b4f3adf80a6f8e9b07ac61b3a4c792d52473eab794b2b0f5d7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x9c74814f4a583073d67ec1a33f79a3a22709bc486d6ee0791bcaa10bea61fd3c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0x9d031ecb59cd9b18566bad8e6be39cf34088b5939c255124c4129ff291ba8d32 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x9e2cd55fe6bfb25ceb71bb4411c9a0641050a9a7a90ffc95d84863e96d79cf3f | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0x9e55112b8b8a6a317d37d2fd0a20704d461c265c2ebb40a9db787268be106a3d | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x9e9731dfeffd9d14e15a18e3b7e4dfcc65277f6d083bc7742bbd4b8f47e06283 | 0x0000000000000000000000000000000000000000000000000000000000000016 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x9ed5fb65e64bba8ec9fefa0c77abaada008548b44eb9c1febaed4b62516a0276 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa04a3fbcc81196222a8e82062f7e171844b6cf2d014e37bb0e1f56a1aadefaa2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa0f68b8b28b0beaba2bb46ab1060b5440fe27fa7d3fa118d2c8bd75dfd52d486 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0xa0f68b8b28b0beaba2bb46ab1060b5440fe27fa7d3fa118d2c8bd75dfd52d487 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000d8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107 | +| 0xa127ef6bdc57b0af085d7fec053c3d132f231f3358e68cda85156a174630bf30 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa202a96526abe04712e192d95fef0d7c0fdec093eb84472b308dbaa3decd0424 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0xa2712b5c32a3455ae52592404b421aca8d65dd6c53c2f829fb8304df96c97765 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0xa2c4a6613e6198de47b365dc72b0de0c010b7a60e7dff7c49f99bac574106d42 | 0x0000000000000000000000000000000000000000000000000000000000000013 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xa2d3813a5b6324f17fe2407f724566ffdd541c0b0044aac989b2ce5ad070eb4b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa45defb830449f780c90e7c526a263ecd50f11c4485245e189fba4cfe31ee4a6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000005 | +| 0xa51a63c942776bb28abd2ca6e53e4839ac0e443715b46b6cc174ee40a068cd13 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f5249534b5f4d414e4147454d454e54 | +| 0xa51a63c942776bb28abd2ca6e53e4839ac0e443715b46b6cc174ee40a068cd14 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x5f524f4c45000000000000000000000000000000000000000000000000000000 | +| 0xa600fae9f6d2fd20ba10e06faffd4f04df5533a43fc1eac68ca985a9cdfbbe8d | 0x0000000000000000000000000000000000000000000000000000000000000011 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xa6cfb94fdedc8567277d957c944d8d5764f907f345ad44d00438ae84bc4f7c02 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0xa826dc9b3c3b3e5e15154308658447f020d18cad2ff58a6d43c949f4f8f497f8 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xa8e64492068ced0bb2704120ff48a1554cdb4e4fef6c09e37190543567dd1467 | 0x000000000000000000000000000000000000000000000000000000000000000b | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xa944832a70f024d0aca797a57e2e4cafbe2f750c0c778568bcd9da040385ff3c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa9d65b7ee235cd8d7d1075ff2a2ba820ec4b41f2739ba8fbf050ba3b42de9b60 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x36f1dfa000000000000000000000000000000000000000000000000000000000 | +| 0xa9d65b7ee235cd8d7d1075ff2a2ba820ec4b41f2739ba8fbf050ba3b42de9b61 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 | +| 0xa9d65b7ee235cd8d7d1075ff2a2ba820ec4b41f2739ba8fbf050ba3b42de9b62 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7492b5ec00000000000000000000000000000000000000000000000000000000 | +| 0xa9d65b7ee235cd8d7d1075ff2a2ba820ec4b41f2739ba8fbf050ba3b42de9b63 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x99b4425800000000000000000000000000000000000000000000000000000000 | +| 0xa9e27ed6ce6d2f36465ebe8b72ee4ba457a93e51d5fd7c30a786970b541f76f1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000bdf92ed96ff6d678469afaffa1e7d37b25beaa33 | +| 0xaa3882d7b11a4d0a75b0a3f758583f247342fd83b846fa650e91f1219360d1c3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000008 | +| 0xaad94041bae308714d4c083b8205281b2ad9ba2a616176b6022224780184f671 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xac127332ecc37b2e9081f0eb3f8890c26c1ee0285dbffa3342e2f9b9578bbfbb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0xaccc15c3a383f7e810a677274bb2ce175172d90b134f4233984d8c76a368dbde | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xacf719ed7fd8dc1cccaeca1061c24f8afd43deca5cbd1c4eb55f599ba7d206c8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0xacf719ed7fd8dc1cccaeca1061c24f8afd43deca5cbd1c4eb55f599ba7d206c9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000003c06dce358add17aaf230f2234bccc4afd50d090 | +| 0xadb962ba6aa076cf9793c472630dc76b05c2598f9abdb5c64f2a4973f5ca153f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000f | +| 0xae3ad2e23cc940543efb669adb3bb56f1ad14d964ec68848c865fa157fd37ea6 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xafb89c25d7e2fef95c2a7c45069b67419abfc1a3d99301200592da6715324818 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f5249534b5f4d414e4147454d45 | +| 0xafb89c25d7e2fef95c2a7c45069b67419abfc1a3d99301200592da6715324819 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4e545f524f4c4500000000000000000000000000000000000000000000000000 | +| 0xb042a8a7ada83d9b18b3281b6085b070a6c947fba3dd5d997bc8a6e0003ae327 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0xb0a841caeba30a416215db5b2a0eb71c1d5add23c76076cfbfa6953dfa2833ba | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xb0c89357d133b2685a6b6b1be43ee4fe8323fbadd2c35ab48a744471a43acf24 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000043 | +| 0xb4c23dcdebd9d566016c87966d5d84d4a343b8e048d30205dd04a40bee460080 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0xb4f285a3e52e1d70792b13284805c55b4460401bda2c17201832bad2459762b2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xb5ae8b9d215902738d5af577e6cbadd1c4956a6946f5a3309a4763905b52d71a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0xb5eb9df1785bf2171fa2e919fa81954d87499df6458676a81f9196169acc017e | 0x0000000000000000000000000000000000000000000000000000000000000010 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xb63b6b3a3059ba40f8d8e6677561fe6df621d091bccaded5073d37a964c74fb8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xb6af1de56115cbeb82c0d74b96cf4571b7f9e617b76cabd3b39bbbd73489f363 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xb76ae2ad9362d7f954320a0416bdf2a5b9c597592704d56111bc54bbd7a69194 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xb8a285bab9f2d0b5f23c8287e4d6ee6289a6ce68a98dc09dad7d18daf0860efa | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xb8e37567ed0a03fc9cf125ec882242589e40e9e51dfe9bf83e51380b3e873c05 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xb9f14786e15333109731a350598ff51891bcc1520dbe4b11a4cb1e1c382476ce | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xba264d22ca631fb6b62ad68584a8daa32e7655066ad0c9e94e2d3405ac3a3128 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xbae595de8bec45a3a2d38daa1a019ff6426d3b73e7ee1aaa6cc880b384e42323 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000bdf92ed96ff6d678469afaffa1e7d37b25beaa33 | +| 0xbc3710825f19e193789e00a120daa1fcfd34cc988ced49ec25ae3681d28b79d2 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xbcf6b071cdccf3313314be2ea9ca3cc18a367e7b3459d686aac17ea9fef4a434 | 0x0000000000000000000000000000000000000000000000000000000000000006 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xbfc96c916714081196a74c44ef7dda7339dfc4805c13f1a1a9d2dfe682488502 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0xc03f1dff009b1b4ba73d5939e866e322dc7aa5fb3f9ba6c3f6e6c7ea9dc5a02d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x9845671100000000000000000000000000000000000000000000000000000000 | +| 0xc0975f9c350391e2ee22b54a8dc63afb7264eda8f7d878db3facbedd2a0a0d43 | 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xc16f98a863e806206e90cbe0e80e5e270b2341e6d82959b6ee163bb0a7fb7244 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xc26662bdd5d469d23d5e8b122e1844f99deb2720157da807669402cd35056b9c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xc2d19062e6189c55f7e882839508644fae76b955fb0ec5a72955320c823462f3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xc36700b6f7358e0bdec9aab26c88a3eb4dee718919d152549996a5413ac981fc | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xc538845544d0a6cf5db4461a7f8daa1d67dd0c0d0b931c8465bb367b09306742 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xc6646d900f3664f398aae12aff1e829ed1db48f00428b681c299845664fd29fd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000008f72573f1aa0a1e39ffd2a2a69e9edaa8b982642 | +| 0xc700152ce293e00812e0955bd8449a6151b7d7a36a02275c067d5de661a44590 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xc765ce17cfdd08adfd50b91aafa03d9cb30fc99ec80bc0f7038a423acf25d2e7 | 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xc9201b0a95925601e3fe6123e95548427b0f4d6239da638251307ec8fc1d8737 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0xc9201b0a95925601e3fe6123e95548427b0f4d6239da638251307ec8fc1d8738 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000003c06dce358add17aaf230f2234bccc4afd50d090 | +| 0xc944e3f30e15136a9451d0513a3b875f57ce0b57185a21cda98097b9f7887bec | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759461 | +| 0xca86a7b74175916d0df02e709a1a0838a6213f09612a29f85e59eee8b0610dde | 0x000000000000000000000000000000000000000000000000000000000000000b | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xcc6b1f8495051b0ef2ecf92d2b630f64406f0de4134ccc88c3cda2a14d1bad9d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000005 | +| 0xcd15593a7d975616b5049455b7f65874db2ee34ec39d758e3f26219f8e8ddaa1 | 0x000000000000000000000000000000000000000000000000000000000000000f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xcd1e3e99512b83e987fae8ce9e318866b0019523c0e04cee3241c4f454cd51da | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0xcd72d659512754110bf6c73b6c1c0003359cda2167dbb47cda53134b5941d2d2 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0xce8949f0bbe6792c3fa70aa28f5871e5d9dbfe06abf9a1095b6da66b8fc64f71 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000bdf92ed96ff6d678469afaffa1e7d37b25beaa33 | +| 0xcfcad9ca19432de66efc9e22282e0ecef1daee504c58b3273dc3ad813cc42b86 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000e | +| 0xd04cffe1ec35ceeb66aa26c8a5e62ef0cb917705b1fce6452261bab29258b62a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xd5c7c5f04d893d21c2bf019ffa6ca5507049cf4d7cbf7fabf0936f140d2a2c36 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xd6b8db32c53e90308595214e10f51f697547ce256aefcccd68ce04186509370f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0xd6bccd7c648d195b343ce21738444d584ccb29ce57b537084cff1b0d885f9d0e | 0x0000000000000000000000000000000000000000000000000000000000000016 | 0x0000000000000000000000000000000000000000000000000000000000000007 | +| 0xd700dd5c84dfd4fcc24ba413c2d053bc0c5ace2d70e94b5ed65e746856fd9002 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xd78c6e8063c8650d89fa80e32afae715f12619f83b99f9830affd25766429fc0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x5f42a73b00000000000000000000000000000000000000000000000000000000 | +| 0xd7dc8579f0207541a71e1d27ae5a26ebe64c0b00f652fed866f14fb553a34518 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xd8bf1d2af9a7a8c011f2e76a9bf933e07faddf853553ac3f0d4be5a356a21aff | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f465245455a455f524f4c45003c | +| 0xd980a0a63ee5f7b1d7f65e360e95428fd9e80e58e57b977ec71f94d000862d04 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0xdb3dc0380daf65d0070a9bac560cf8789a11827c18af73405945cbbe9eb9c7fa | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0xdb913a1347ca182ac0434915bda64f0669cfcb08f928c7d46209a08e1fb6f5d3 | 0x0000000000000000000000000000000000000000000000000000000000000016 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdc32ac20884c43d11d76cb706829227fbba865c5e01cbe683792a39134ffc56c | 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdc756fe80d26a01d9f2c32480d6e3fadc756a4c069bb9da5404862575f0171d5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000f | +| 0xdceb17fd3b02a1cb3c3c7fe1c3dcca42f00c7ad8ed8aa27a59330abab407748d | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xdd1640ee9991ada48a9e9c412f89ee805597071e1b930b1de6527ec68c73d62a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x727ae39700000000000000000000000000000000000000000000000000000000 | +| 0xdd1640ee9991ada48a9e9c412f89ee805597071e1b930b1de6527ec68c73d62b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x46bfdc7200000000000000000000000000000000000000000000000000000000 | +| 0xdd1640ee9991ada48a9e9c412f89ee805597071e1b930b1de6527ec68c73d62c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x722c65ee00000000000000000000000000000000000000000000000000000000 | +| 0xddeb2d7dfdff89c5ce2474f5388be1b5c63276bbb127901e648cb133e59acd51 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xdf229ebc3fdba62d1b6f376c21cc8b8311489a4f2c5f66f3e4c412cf9a432db8 | 0x0000000000000000000000000000000000000000000000000000000000000017 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdf2f442be238a1c5e1b653e19ee4413cac977cb52ab5546b30e3240808b0cc32 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000005 | +| 0xdf3339c9cb45f0e2a2eacf5b543249b4f05df7f0209837cd42d717f99ae590ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f454d455247454e43595f524f4c453e | +| 0xdfd9cc20cee92f3aa9fda2aefb837dbfb35e0436f74ea6d25fb2d4efe9b005a9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0xe0cb271714966660be303b80c3fc6b640511f09d351a45d76067ecf259cb249d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xe2f776198c553f7c984e06c2742c604d9ece47d561906321feb92740908529f1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0xe2f776198c553f7c984e06c2742c604d9ece47d561906321feb92740908529f2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000003c06dce358add17aaf230f2234bccc4afd50d090 | +| 0xe2f776198c553f7c984e06c2742c604d9ece47d561906321feb92740908529f3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000d8d7abc42c1c938bdec94ff8da1b3cd5b7e3b107 | +| 0xe31c40bd2e6a289d910afd8065544f29f8b155c12ec4843d48954268db79fece | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0xe40fd68ffb98dcb0b39ef0d285b57c24b250388902df7188c5eca0bf6949a0c3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xe80e08143af164456c7d48dc12c4f3da36aa1d0d98f76f736934c63dd3942b5b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000bdf92ed96ff6d678469afaffa1e7d37b25beaa33 | +| 0xe83075f518bbdbe3306ed41b0811031e19d8bb91a9961c55fa99fa2089a73dc3 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xe9c30e86f01009a269245ea02fcaf9a3c141ebca745df8bd144718754cd62398 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xea853fc98253241fbffd502b294f61d9a758ca8f88d244e0adaa1c3d78f04804 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f5249534b5f4d414e4147454d45 | +| 0xea853fc98253241fbffd502b294f61d9a758ca8f88d244e0adaa1c3d78f04805 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4e545f524f4c4500000000000000000000000000000000000000000000000000 | +| 0xeaa88e948a25597764604d48d9a56b5a2f2f18f2127ebd674470bd45299fdf69 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0xeae99fe37768432196da95a874092e5ba9a34c02395b8d1912326677dc0612d6 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xeb3df5b15166f7491f3ba8cdefc0a09adce4b688b51b327fd6923f654a13d81a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xeba47d632f7ad62a5e30921ebdeb4807e694f80da2c67fef5367071602e0c224 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000b619fa61e795d47f517702e63ce50292370561f1 | +| 0xebba2a971794728f0d287d5b4a3f1fffa5447581b329e8554f6a531fcb665080 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xec98c7fcfc7d52854437b220843ca26646455aaa1bfda426113da21075d028ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xed1c63a9c1ab27b18f722aa6162887df591f44a7e7ed92bfbd357b029a79a3e9 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xefa277973783d913f000350550a794e4b615ad2976a76ec5df2fcf3f6dfe8474 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004f | +| 0xf068300a81c04827a6aead294f6c8df1bd6deeef14f7e66800af49f4ace0beac | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xf09672fd47fb0bea10487e0a4a1134571b0690de6a1389696fa865eeb387636f | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xf1bfcafbc3aac9407e95071e2b2a8e0f3463dbac82a92bf0ecb4f6d53476351b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000b | +| 0xf282e2888c324df7cb75156822c2e77eb209598344e61a2f9e26eac48e8a1c0d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000e | +| 0xf2d87c8ad77125685c0869f4afa2bf06c404c37bd5a4bba4e50f57eeb1f4504a | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eec | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eed | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eee | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f4c495354494e475f524f4c4500003a | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eef | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f454d455247454e43595f524f4c453e | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004b | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f50415553455f524f4c4500003a | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f465245455a455f524f4c45003c | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f4c495354494e475f524f4c453e | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000043 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004f | +| 0xf46221c342e8cfedfc5ff6257e8475895ef4b93650cd7d2b1421efe008bbf799 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f4143544956455f524f | +| 0xf46221c342e8cfedfc5ff6257e8475895ef4b93650cd7d2b1421efe008bbf79a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0xf4f953d7712b18bde2b55c7194643d2e67bcb7a571472e6622155843b39400b2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xf5bf79fcb045bcd641f838176ebd456900819fe10a6f80cdbc2fcd70e19a875c | 0x0000000000000000000000000000000000000000000000000000000000000010 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xf6deab46f08a8c9a4c6dff3a9ef0f366e013b6802d07144e2c005b2e262e60fa | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xf700df65568f4b5015ee88e89100e130b698454e1f27078796e70a3a2177ff30 | 0x000000000000000000000000000000000000000000000000000000000000000c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xf7ae258053851370ade81c6484697903caec28fb174824e5165ce91d862efe09 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f4c495354494e475f524f4c4500003a | +| 0xf82d711870898b4a59d1d6064658768896d430f81b2a4e4701ccd5bc34cd77bb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xfa90d39b7c57233019a3c22811a770f4d7078a0ec8bc99505c33660ff42ec08a | 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xfadcd98029e3b5173f1ee99abe809c64309feec91f6a41c2f12d88512e88ff76 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xfb2b045a62aaee69989e4e2d927373b799393ff58a4a63d7387a12f946793591 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0xfc2000f2ef30f5bdeb6cd962e0966edb0d82052475ff712d3fd8e56b3762f2ac | 0x000000000000000000000000000000000000000000000000000000000000000f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xfc3c06ea6c9c0f89e72c1c71b728b3e18440a4c66a5578ae20636a02be6061e0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xfcaf9a127b9568b229fcedc80b66f012daa4e343dbf80933e1dddbd5a091330e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f454d455247454e43595f524f4c | +| 0xfcaf9a127b9568b229fcedc80b66f012daa4e343dbf80933e1dddbd5a091330f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4500000000000000000000000000000000000000000000000000000000000000 | +| 0xfe15be02069b07196430ed9da1da38301bf15bd1969c687f756ec612b6bb6de3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xfe173a66c8fd1395bcbb1a70c9342adc9eebf9c094afa0c565ac0df7719bcffe | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xfefd4848aae9a5615f3e624c552909666394c2415ca5c578e4de24594319b256 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xffc98eca7d6f7dc23762025042468c6884d0732830a7556dc5cfe56e3ce1875d | 0x0000000000000000000000000000000000000000000000000000000000000018 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xffd80ae363033ad6f45f34e088f3558ca4d3fd9dbf57ec2d6aefc4790f39344b | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | + + +## Raw diff + +```json +{ + "accessManagerRoles": { + "0xe069096bDAfF9bAD15b2f1079EaF0f1685a24522": { + "200": { + "selectors": { + "0": { + "from": "0xa7aeae2000000000000000000000000000000000000000000000000000000000", + "to": "0xa9fe640400000000000000000000000000000000000000000000000000000000" + }, + "1": { + "from": "0x1947e19000000000000000000000000000000000000000000000000000000000", + "to": "0x86803a1f00000000000000000000000000000000000000000000000000000000" + }, + "7": { + "from": "0xa9fe640400000000000000000000000000000000000000000000000000000000", + "to": null + }, + "8": { + "from": "0x7f0633c500000000000000000000000000000000000000000000000000000000", + "to": null + }, + "9": { + "from": "0x486b0e0e00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "10": { + "from": "0x7cf1dbc500000000000000000000000000000000000000000000000000000000", + "to": null + }, + "11": { + "from": "0xbc3a425e00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "12": { + "from": "0x9845671100000000000000000000000000000000000000000000000000000000", + "to": null + }, + "13": { + "from": "0x91c28cf900000000000000000000000000000000000000000000000000000000", + "to": null + }, + "14": { + "from": "0x493e28ae00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "15": { + "from": "0x7427ca5f00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "16": { + "from": "0x7441ce9100000000000000000000000000000000000000000000000000000000", + "to": null + }, + "17": { + "from": "0xa3254c9000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "18": { + "from": "0x0e50f67a00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "19": { + "from": "0xa2455af200000000000000000000000000000000000000000000000000000000", + "to": null + }, + "20": { + "from": "0x86803a1f00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "21": { + "from": "0xc987da3800000000000000000000000000000000000000000000000000000000", + "to": null + } + }, + "targets": { + "7": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "8": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "9": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "10": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "11": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "12": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "13": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "14": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "15": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "16": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "17": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "18": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "19": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "20": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + }, + "21": { + "from": "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "to": null + } + } + }, + "201": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1", + "0x3C06dce358add17aAf230f2234bCCC4afd50d090" + ], + "selectors": [ + "0x9845671100000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33" + ] + } + }, + "202": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_SPOKE_HALTED_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1", + "0x3C06dce358add17aAf230f2234bCCC4afd50d090" + ], + "selectors": [ + "0x91c28cf900000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33" + ] + } + }, + "203": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_LISTING_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1", + "0x3C06dce358add17aAf230f2234bCCC4afd50d090" + ], + "selectors": [ + "0xa7aeae2000000000000000000000000000000000000000000000000000000000", + "0x1947e19000000000000000000000000000000000000000000000000000000000", + "0x7cf1dbc500000000000000000000000000000000000000000000000000000000", + "0xbc3a425e00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33" + ] + } + }, + "204": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_EMERGENCY_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1", + "0x3C06dce358add17aAf230f2234bCCC4afd50d090", + "0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107" + ], + "selectors": [ + "0x7f0633c500000000000000000000000000000000000000000000000000000000", + "0x486b0e0e00000000000000000000000000000000000000000000000000000000", + "0x0e50f67a00000000000000000000000000000000000000000000000000000000", + "0xa2455af200000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33" + ] + } + }, + "205": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1", + "0x3C06dce358add17aAf230f2234bCCC4afd50d090", + "0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107" + ], + "selectors": [ + "0x493e28ae00000000000000000000000000000000000000000000000000000000", + "0x7427ca5f00000000000000000000000000000000000000000000000000000000", + "0xa3254c9000000000000000000000000000000000000000000000000000000000", + "0x7441ce9100000000000000000000000000000000000000000000000000000000", + "0xc987da3800000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33", + "0xbdf92ed96FF6D678469aFAFFa1e7d37B25beaa33" + ] + } + }, + "400": { + "selectors": { + "1": { + "from": "0x98e7856f00000000000000000000000000000000000000000000000000000000", + "to": "0x152ef83200000000000000000000000000000000000000000000000000000000" + }, + "2": { + "from": "0xde3487b800000000000000000000000000000000000000000000000000000000", + "to": null + }, + "3": { + "from": "0x579b47eb00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "4": { + "from": "0xd15916be00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "5": { + "from": "0x727ae39700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "6": { + "from": "0x5f42a73b00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "7": { + "from": "0x3a84f85a00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "8": { + "from": "0x46bfdc7200000000000000000000000000000000000000000000000000000000", + "to": null + }, + "9": { + "from": "0x722c65ee00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "10": { + "from": "0xf165fdea00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "11": { + "from": "0xdf51754500000000000000000000000000000000000000000000000000000000", + "to": null + }, + "12": { + "from": "0x092622b700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "13": { + "from": "0x710bc18000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "14": { + "from": "0x3b0beccf00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "15": { + "from": "0x063c7dc000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "16": { + "from": "0xfd19d8f700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "17": { + "from": "0xcb51c39400000000000000000000000000000000000000000000000000000000", + "to": null + }, + "18": { + "from": "0x404f0b2c00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "19": { + "from": "0x6a8b9a2700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "20": { + "from": "0x99b4425800000000000000000000000000000000000000000000000000000000", + "to": null + }, + "21": { + "from": "0x36f1dfa000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "22": { + "from": "0x7492b5ec00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "23": { + "from": "0x152ef83200000000000000000000000000000000000000000000000000000000", + "to": null + } + }, + "targets": { + "2": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "3": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "4": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "5": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "6": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "7": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "8": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "9": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "10": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "11": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "12": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "13": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "14": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "15": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "16": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "17": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "18": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "19": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "20": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "21": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "22": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + }, + "23": { + "from": "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "to": null + } + } + }, + "401": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_PAUSE_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1" + ], + "selectors": [ + "0x5f42a73b00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642" + ] + } + }, + "402": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_FREEZE_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1" + ], + "selectors": [ + "0x3a84f85a00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642" + ] + } + }, + "403": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_LISTING_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1" + ], + "selectors": [ + "0x727ae39700000000000000000000000000000000000000000000000000000000", + "0x46bfdc7200000000000000000000000000000000000000000000000000000000", + "0x722c65ee00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642" + ] + } + }, + "404": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_EMERGENCY_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1", + "0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107" + ], + "selectors": [ + "0x36f1dfa000000000000000000000000000000000000000000000000000000000", + "0x6a8b9a2700000000000000000000000000000000000000000000000000000000", + "0x7492b5ec00000000000000000000000000000000000000000000000000000000", + "0x99b4425800000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642" + ] + } + }, + "405": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE", + "members": [ + "0xb619fA61e795D47f517702e63ce50292370561F1", + "0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107" + ], + "selectors": [ + "0xf165fdea00000000000000000000000000000000000000000000000000000000", + "0xdf51754500000000000000000000000000000000000000000000000000000000", + "0x092622b700000000000000000000000000000000000000000000000000000000", + "0x710bc18000000000000000000000000000000000000000000000000000000000", + "0x3b0beccf00000000000000000000000000000000000000000000000000000000", + "0x063c7dc000000000000000000000000000000000000000000000000000000000", + "0xfd19d8f700000000000000000000000000000000000000000000000000000000", + "0xcb51c39400000000000000000000000000000000000000000000000000000000", + "0x404f0b2c00000000000000000000000000000000000000000000000000000000", + "0x98e7856f00000000000000000000000000000000000000000000000000000000", + "0xde3487b800000000000000000000000000000000000000000000000000000000", + "0x579b47eb00000000000000000000000000000000000000000000000000000000", + "0xd15916be00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642", + "0x8F72573F1Aa0A1e39fFD2a2A69e9EDAa8B982642" + ] + } + } + } + } +} +``` diff --git a/diffs/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807_before_AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807_after.md b/diffs/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807_before_AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807_after.md new file mode 100644 index 000000000..f54a5b1ce --- /dev/null +++ b/diffs/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807_before_AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807_after.md @@ -0,0 +1,1323 @@ +## Access Manager Role Changes + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 200 (HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE) + +- target/selector grants removed: + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xa7aeae2000000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x1947e19000000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7f0633c500000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x486b0e0e00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xbc3a425e00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x9845671100000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x91c28cf900000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x493e28ae00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7427ca5f00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7441ce9100000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xa3254c9000000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x0e50f67a00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xa2455af200000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xc987da3800000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 201 (HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE" +- members added: [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9) +- target/selector grants added: + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x9845671100000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 202 (HUB_CONFIGURATOR_SPOKE_HALTED_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_SPOKE_HALTED_ROLE" +- members added: [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9) +- target/selector grants added: + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x91c28cf900000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 203 (HUB_CONFIGURATOR_LISTING_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_LISTING_ROLE" +- members added: [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9) +- target/selector grants added: + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xa7aeae2000000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x1947e19000000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xbc3a425e00000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 204 (HUB_CONFIGURATOR_EMERGENCY_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_EMERGENCY_ROLE" +- members added: [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9), [0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1](https://etherscan.io/address/0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1) +- target/selector grants added: + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7f0633c500000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x486b0e0e00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x0e50f67a00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xa2455af200000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 205 (HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE) + +- label: "" -> "HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE" +- members added: [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9), [0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1](https://etherscan.io/address/0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1) +- target/selector grants added: + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x493e28ae00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7427ca5f00000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xa3254c9000000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0x7441ce9100000000000000000000000000000000000000000000000000000000 + - [0x1f0753480bb03eaa00863224602267b7e0525c3d](https://etherscan.io/address/0x1f0753480bb03eaa00863224602267b7e0525c3d) 0xc987da3800000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 400 (SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE) + +- target/selector grants removed: + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x98e7856f00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xde3487b800000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x579b47eb00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xd15916be00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x727ae39700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x5f42a73b00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x3a84f85a00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x46bfdc7200000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x722c65ee00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xf165fdea00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xdf51754500000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x092622b700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x710bc18000000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x3b0beccf00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x063c7dc000000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xfd19d8f700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xcb51c39400000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x404f0b2c00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x99b4425800000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x36f1dfa000000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x7492b5ec00000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 401 (SPOKE_CONFIGURATOR_PAUSE_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_PAUSE_ROLE" +- members added: [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a) +- target/selector grants added: + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x5f42a73b00000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 402 (SPOKE_CONFIGURATOR_FREEZE_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_FREEZE_ROLE" +- members added: [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a) +- target/selector grants added: + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x3a84f85a00000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 403 (SPOKE_CONFIGURATOR_LISTING_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_LISTING_ROLE" +- members added: [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a) +- target/selector grants added: + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x727ae39700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x46bfdc7200000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x722c65ee00000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 404 (SPOKE_CONFIGURATOR_EMERGENCY_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_EMERGENCY_ROLE" +- members added: [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a), [0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1](https://etherscan.io/address/0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1) +- target/selector grants added: + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x36f1dfa000000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x7492b5ec00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x99b4425800000000000000000000000000000000000000000000000000000000 + +#### [0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01](https://etherscan.io/address/0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01) role 405 (SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE) + +- label: "" -> "SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE" +- members added: [0x187aae17d4931310b3fc75743e7f16bdc9ed77e9](https://etherscan.io/address/0x187aae17d4931310b3fc75743e7f16bdc9ed77e9), [0x14339e2178a954d5fb839d5ff31644fe0f25f517](https://etherscan.io/address/0x14339e2178a954d5fb839d5ff31644fe0f25f517), [0x5300a1a15135ea4dc7ad5a167152c01efc9b192a](https://etherscan.io/address/0x5300a1a15135ea4dc7ad5a167152c01efc9b192a), [0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1](https://etherscan.io/address/0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1) +- target/selector grants added: + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xf165fdea00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xdf51754500000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x092622b700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x710bc18000000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x3b0beccf00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x063c7dc000000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xfd19d8f700000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xcb51c39400000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x404f0b2c00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x98e7856f00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xde3487b800000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0x579b47eb00000000000000000000000000000000000000000000000000000000 + - [0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a](https://etherscan.io/address/0x9bfff48bfb5a7ae70c348d4d4cb97e8defa5389a) 0xd15916be00000000000000000000000000000000000000000000000000000000 + +## Event logs + +#### 0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01 (AaveV4Ethereum.ACCESS_MANAGER) + +| index | event | +| --- | --- | +| 0 | RoleLabel(roleId: 201, label: HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE) | +| 1 | RoleLabel(roleId: 202, label: HUB_CONFIGURATOR_SPOKE_HALTED_ROLE) | +| 2 | RoleLabel(roleId: 203, label: HUB_CONFIGURATOR_LISTING_ROLE) | +| 3 | RoleLabel(roleId: 204, label: HUB_CONFIGURATOR_EMERGENCY_ROLE) | +| 4 | RoleLabel(roleId: 205, label: HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE) | +| 5 | RoleLabel(roleId: 401, label: SPOKE_CONFIGURATOR_PAUSE_ROLE) | +| 6 | RoleLabel(roleId: 402, label: SPOKE_CONFIGURATOR_FREEZE_ROLE) | +| 7 | RoleLabel(roleId: 403, label: SPOKE_CONFIGURATOR_LISTING_ROLE) | +| 8 | RoleLabel(roleId: 404, label: SPOKE_CONFIGURATOR_EMERGENCY_ROLE) | +| 9 | RoleLabel(roleId: 405, label: SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE) | +| 10 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 201, selector: 0x98456711) | +| 11 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 202, selector: 0x91c28cf9) | +| 12 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 203, selector: 0xa7aeae20) | +| 13 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 203, selector: 0x1947e190) | +| 14 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 203, selector: 0x7cf1dbc5) | +| 15 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 203, selector: 0xbc3a425e) | +| 16 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 204, selector: 0x7f0633c5) | +| 17 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 204, selector: 0x486b0e0e) | +| 18 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 204, selector: 0x0e50f67a) | +| 19 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 204, selector: 0xa2455af2) | +| 20 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 205, selector: 0x493e28ae) | +| 21 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 205, selector: 0x7427ca5f) | +| 22 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 205, selector: 0xa3254c90) | +| 23 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 205, selector: 0x7441ce91) | +| 24 | TargetFunctionRoleUpdated(target: 0x1F0753480bB03EaA00863224602267B7E0525C3d, roleId: 205, selector: 0xc987da38) | +| 25 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 401, selector: 0x5f42a73b) | +| 26 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 402, selector: 0x3a84f85a) | +| 27 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 403, selector: 0x727ae397) | +| 28 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 403, selector: 0x46bfdc72) | +| 29 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 403, selector: 0x722c65ee) | +| 30 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 404, selector: 0x36f1dfa0) | +| 31 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 404, selector: 0x6a8b9a27) | +| 32 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 404, selector: 0x7492b5ec) | +| 33 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 404, selector: 0x99b44258) | +| 34 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0xf165fdea) | +| 35 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0xdf517545) | +| 36 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0x092622b7) | +| 37 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0x710bc180) | +| 38 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0x3b0beccf) | +| 39 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0x063c7dc0) | +| 40 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0xfd19d8f7) | +| 41 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0xcb51c394) | +| 42 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0x404f0b2c) | +| 43 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0x98e7856f) | +| 44 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0xde3487b8) | +| 45 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0x579b47eb) | +| 46 | TargetFunctionRoleUpdated(target: 0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a, roleId: 405, selector: 0xd15916be) | +| 47 | RoleGranted(roleId: 201, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 48 | RoleGranted(roleId: 202, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 49 | RoleGranted(roleId: 203, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 50 | RoleGranted(roleId: 204, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 51 | RoleGranted(roleId: 205, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 52 | RoleGranted(roleId: 201, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 53 | RoleGranted(roleId: 202, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 54 | RoleGranted(roleId: 203, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 55 | RoleGranted(roleId: 204, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 56 | RoleGranted(roleId: 205, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 57 | RoleGranted(roleId: 201, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 58 | RoleGranted(roleId: 202, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 59 | RoleGranted(roleId: 203, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 60 | RoleGranted(roleId: 204, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 61 | RoleGranted(roleId: 205, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 62 | RoleGranted(roleId: 401, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 63 | RoleGranted(roleId: 402, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 64 | RoleGranted(roleId: 403, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 65 | RoleGranted(roleId: 404, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 66 | RoleGranted(roleId: 405, account: 0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9, delay: 0, since: 1786090583, newMember: true) | +| 67 | RoleGranted(roleId: 401, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 68 | RoleGranted(roleId: 402, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 69 | RoleGranted(roleId: 403, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 70 | RoleGranted(roleId: 404, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 71 | RoleGranted(roleId: 405, account: 0x14339e2178A954d5FB839D5Ff31644fE0F25F517, delay: 0, since: 1786090583, newMember: true) | +| 72 | RoleGranted(roleId: 401, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 73 | RoleGranted(roleId: 402, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 74 | RoleGranted(roleId: 403, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 75 | RoleGranted(roleId: 404, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 76 | RoleGranted(roleId: 405, account: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A, delay: 0, since: 1786090583, newMember: true) | +| 77 | RoleGranted(roleId: 205, account: 0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1, delay: 0, since: 1786090583, newMember: true) | +| 78 | RoleGranted(roleId: 204, account: 0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1, delay: 0, since: 1786090583, newMember: true) | +| 79 | RoleGranted(roleId: 405, account: 0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1, delay: 0, since: 1786090583, newMember: true) | +| 80 | RoleGranted(roleId: 404, account: 0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1, delay: 0, since: 1786090583, newMember: true) | + +#### 0xc2aaCf6553D20d1e9d78E365AAba8032af9c85b0 (AaveV3Ethereum.ACL_MANAGER) + +| index | event | +| --- | --- | +| 81 | RoleGranted(role: 0x8aa855a911518ecfbe5bc3088c8f3dda7badf130faaf8ace33fdc33828e18167, account: 0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1, sender: 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A) | + +#### 0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1 + +| index | event | +| --- | --- | +| 82 | topics: `0x2329cbe7a0a6163d660474fbbc2e37d4b23710a3427e5cace6b371f5dba354b6`, data: `0x0000000000000000000000001f0753480bb03eaa00863224602267b7e0525c3d...` | + +#### 0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A (AaveV2Ethereum.POOL_ADMIN, AaveV2EthereumAMM.POOL_ADMIN, AaveV3Ethereum.ACL_ADMIN, AaveV3EthereumEtherFi.ACL_ADMIN, AaveV3EthereumHorizon.ACL_ADMIN, AaveV3EthereumLido.ACL_ADMIN, GovernanceV3Ethereum.EXECUTOR_LVL_1) + +| index | event | +| --- | --- | +| 83 | ExecutedAction(target: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f, value: 0, signature: execute(), data: 0x, executionTime: 1786090583, withDelegatecall: true, resultData: 0x) | + +#### 0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) + +| index | event | +| --- | --- | +| 84 | PayloadExecuted(payloadId: 462) | + +## Raw storage changes + +### 0x08ae3be30958cdd1847ec58fffd4c451a87fdf01 (AaveV4Ethereum.ACCESS_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0x005405cea44e228ecb3a53320f1e7e0b141858bf56f72ca7c314144f0571c38f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x00c46833d4fc0456c1942b8007c3355a761c7987c9dc4a2cab7e157566f2430f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x0171cf204c6dd481cbfe8108591b88033a5c76a09d14ec5260efc40df9a5b610 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x01739acbdb8992704c84983fba0c7fc3626e4f59bd3f5184d76025ea28312100 | 0x0000000000000000000000000000000000000000000000000000000000000013 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x02bda2fd68c885b8bb55866c548f3ea4cf69467db51ba975fa6acda91b730bdf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x05b181fcb841d26e8aaf18c4e1494209e5f461e58027132b59ab37a05eb79e39 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x06feb08d53680f4761d9359d56457db5f31b274f5a6d39a08eb6cab94127bae8 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x08a14bf757d5f7d6253d2771c00904e79b6cdd866836f49873e7dcbb260354cc | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x08f2d7c926c0de52aa3ecba3805f37dc1d99219610b1e58c0737a9fe4642af45 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x09b48b01ebd66f9839cb28ab0f096e753819ed0b754620eb5d46b4f6aa61f8ca | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x0a019a676ebceaad3be29e7a4e1c227b4e87e1f6dd11bc6942084cc0b78f0bf7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x0af5ee7b9b950ba368873616450413cc5944e982d9ca6a364871307582c2933e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x0b2006430315f105852db8eb491932033d9bf6a4f9d527df995cdc0f2a519072 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x0b35734dc32792ef107eeca33ef842daf46cb6f05760d6e1d2d82a4f62eea36e | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x0b4fb0f1782c83b4a5eaa01cc591e8e3a7c6d7592444e6fbdc5acc5354b2eb55 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0x0bcc41abc3c6b06fd0bb3949e38edc115547520db52df38f99c7d7e1ebf8be86 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020d9 | 0xa7aeae2000000000000000000000000000000000000000000000000000000000 | 0xa9fe640400000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020da | 0x1947e19000000000000000000000000000000000000000000000000000000000 | 0x86803a1f00000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e0 | 0xa9fe640400000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e1 | 0x7f0633c500000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e2 | 0x486b0e0e00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e3 | 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e4 | 0xbc3a425e00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e5 | 0x9845671100000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e6 | 0x91c28cf900000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e7 | 0x493e28ae00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e8 | 0x7427ca5f00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020e9 | 0x7441ce9100000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020ea | 0xa3254c9000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020eb | 0x0e50f67a00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020ec | 0xa2455af200000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020ed | 0x86803a1f00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0d0215f9e2177f42bcaa9240b765ac4cc64862af65bc29574f023862561020ee | 0xc987da3800000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x0ed3554a1be6ec9930698e3550616c3b7a061925d7442a95d4953c6eda36ab4b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x0f380e2179e2aecdcadd6604b1782f77aa1951016c4c1de0985d31629142fe8a | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x0f97915931ecd71b5bbcbfc276c76f5f26b93344768206a07e85d4f35b1da508 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x10f1b6c6605286a1ab69757eeed8c4898a9e487af239269edeaac5a7cfc72698 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x12be4b3a957d22df2e2df6d888ed906cf0137beddfe79139ec62fd0511ff80f4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f5249534b5f4d414e4147454d454e54 | +| 0x12be4b3a957d22df2e2df6d888ed906cf0137beddfe79139ec62fd0511ff80f5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x5f524f4c45000000000000000000000000000000000000000000000000000000 | +| 0x1309a3fefa3b710125133fed01122d49f43a03329410428a90fac54e383d1d2c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0x1309a3fefa3b710125133fed01122d49f43a03329410428a90fac54e383d1d2d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0x1309a3fefa3b710125133fed01122d49f43a03329410428a90fac54e383d1d2e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0x1424a164da2667f80040f243ad8d452e3e11ff60c8d42a4b3fde726984fd94f0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x146fb7f7d8ebdedb15e52d7270f000d60a5df82c23b1726a91967a5af6f7c07b | 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x14f30deafd1fb82af6ae241fb9bc55289c2a7f03bb4e00034d98b98d97f83910 | 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x15682488a057e73e9a73a03f08e95b5517de06203c2f834ad167d1a45332a23c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x15be76996749a3327f074120a56a55e0bc581768a40424cda053aaaa6030c2d0 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x1615fb37a05fbe7e4cb4781592b29294581a00ffcb6540a0ca6dcc61b23befec | 0x0000000000000000000000000000000000000000000000000000000000000018 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x1719e53af86951f8f8633159f34733a5c64c1d042a2d76c10b801a40dd37ceaf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x172aa74d24e08adfafa81722b896abcf69f4720b073139bd90208ac79a39b843 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x1869fb982c2a06ec6aa5154ecc4bf1860e793a6d690b8d17b2f0c5a99d14b097 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x18eb8bd2dc7ee9ecfce4ffa68fab1080314ac404b6ae649ce7ca277d7a48a119 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x18fe2baba04b04b843cd138489dc125d2854aec75ebb8a449c914ba035cd57fe | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0x1c0ee19f7a0369dab3d86f68111c7f72b1b0613fbc91116983758633b10d98e2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0x1c0ee19f7a0369dab3d86f68111c7f72b1b0613fbc91116983758633b10d98e3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0x1c0ee19f7a0369dab3d86f68111c7f72b1b0613fbc91116983758633b10d98e4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0x1c216c26a6a820b97d7392e24be1c37d66c5952001ad2d054231578762ab4994 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x1c8fcc5337bbc6937822c8cdb9aa4ae2a9e57ebb32d292c1d7fadafa2fe2726a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0x1c8fcc5337bbc6937822c8cdb9aa4ae2a9e57ebb32d292c1d7fadafa2fe2726b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0x1c8fcc5337bbc6937822c8cdb9aa4ae2a9e57ebb32d292c1d7fadafa2fe2726c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0x1c8fcc5337bbc6937822c8cdb9aa4ae2a9e57ebb32d292c1d7fadafa2fe2726d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000006f48d9cdb8ee6e17c96b2d8aec128af426a295c1 | +| 0x1cc855041c463b2f31a26cd59cbb14e75db6e2ddbe78e49bc884a23ebca180e9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x1d6199f1b1accdd0c23ed408e554f0ab1477b9d789d2c6e967a6aa62e6157adf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x493e28ae00000000000000000000000000000000000000000000000000000000 | +| 0x1d6199f1b1accdd0c23ed408e554f0ab1477b9d789d2c6e967a6aa62e6157ae0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7427ca5f00000000000000000000000000000000000000000000000000000000 | +| 0x1d6199f1b1accdd0c23ed408e554f0ab1477b9d789d2c6e967a6aa62e6157ae1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xa3254c9000000000000000000000000000000000000000000000000000000000 | +| 0x1d6199f1b1accdd0c23ed408e554f0ab1477b9d789d2c6e967a6aa62e6157ae2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7441ce9100000000000000000000000000000000000000000000000000000000 | +| 0x1d6199f1b1accdd0c23ed408e554f0ab1477b9d789d2c6e967a6aa62e6157ae3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xc987da3800000000000000000000000000000000000000000000000000000000 | +| 0x1dd027b9d9c0618c576c73019c5eefed9b20edebe8838134f783c355ccc830eb | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x1e8cd30e7e7d4dfcabdf95d1a36574b472292fac1b19ee58f071007e9c1f2902 | 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x1ed01fdde7910b8a0164da1a1c28e621f796347170bb5ed318984b8c37e71ead | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x1f50b487bd86acd47e60ceb8eb1520c94146c9fa5a58fa32afad3ecde7b9ce9e | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x1fcd5fe63937f0d4bfed9a69606e7d5394ca86a751ca3a32c560047f5eeaefdd | 0x0000000000000000000000000000000000000000000000000000000000000001 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2091139362f8cbad621a6d3d46e8a49878d22cd015d2067303f818981c712e2b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x20e5602cbbc2a45fd8ee50cbc618ff5f5550a24a44aa77253eb1370f877068db | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x20ef97c8d63ad519ddd3588e62d0e4ac8d3de75cf3ffd3a7df10bac196468dcf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x230aefcedb43a2f4c6147bfd4835fb60b3ca150c21e7b60322e090c8c85a8799 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x232ca739bb2687a87552bb3fe385b63e496506ad0e2f7066ddc213a86fc298b6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x24d369d368c0075de5d22eb68768046bb512d427defab78d7d20e0ec0955f49d | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0x262a4839371570be88830b055572c1cc095d9f78bd2a18e47d234c36e5b0a24f | 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x26564a9842445dc74d9f07ed82bf6b114b8b1d9caab12e4ffe452622666b4936 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000010 | +| 0x266754053cad742122b678386b3dff997428c78c259d34580f186a67e77be946 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x266fe4df759827955dfa8b6ea3f587ca5f4939a64c130986c6239b663cbb8a2a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x26a0dd257b6ca6ceb6fafc1c778d7e718d036cf91116cf5ee2da559bdc54c9df | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x286280989e6dfc0763edae61b1f27ad5ed5aaffd32391590925479939eab5323 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x2c4d8dd8c9e8cff548d5a0a37a1835af8d5297caa4ed72101b97a7ad6536baed | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x2c640b752eb91aa52de4f364b73b6a63c0050a6826294ef0cb577feb26f4ee72 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x2c92247ccef542f7aa12b41482703114a9dd6a7de6bdbb76a50f4b69175c30a5 | 0x000000000000000000000000000000000000000000000000000000000000000a | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2d7b2aaf62acf53790fc7d62161e6b2a51ed2f474008242114edb7a1deaea2b4 | 0x000000000000000000000000000000000000000000000000000000000000000a | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2d9561a9abc4292f426733001e38ac1a4343387ac81032e3d9303b93da711e7d | 0x0000000000000000000000000000000000000000000000000000000000000011 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x2ddf86c66af6896fcb1fc290502e90a5db3e24b977435fe9b561b8e272eb59bf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f454d455247454e43595f524f4c | +| 0x2ddf86c66af6896fcb1fc290502e90a5db3e24b977435fe9b561b8e272eb59c0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4500000000000000000000000000000000000000000000000000000000000000 | +| 0x2e1f5583aa480f7ec099771dc82fbce75854fabff4bb89441dd42a05dc553f24 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x2e290d2c6b4ccfdf4af43551f2b84d31a6daa04844bd5dd7f7d9130711c2da5a | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0x3014773e9c28fc008ba5212f9564db5d4ca210d5bdc533dc9f63ccf02abe78fb | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x305b442050f4a7ca8a5b7d3986cad6b800c1ac07f4dae4c159ce9abba8d69bf9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x30a32bb0cf410f4914d247d9662e941237469f696491c3bca234610c5ef2b4bc | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000009bfff48bfb5a7ae70c348d4d4cb97e8defa5389a | +| 0x3223d763815fd8ec4bdcb07bdcc48076c9ca4d93c051be03b4533dd29a6add46 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x325041e0138f4d1ce287a9522ccdee92975f5526f7df537d5679901be8ecabe7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x326126df8cf07316d050fa82dec8e454973380d1dc3903653152107e514b9110 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x32630043f60d56bf03704151ffc2bcd7dcb6bcc63139a14b2ddd1362364668da | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000009bfff48bfb5a7ae70c348d4d4cb97e8defa5389a | +| 0x3269c1a2ceaf17ab73148c0e32df4f6eb2110b19b66073b7bad836f78f9ff182 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x33e2fbca29dbf98909aa7574538d8961468cdc6135ed20690fdd7fbef6c530c8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0x3424c85cf97681a66257c75a347851d6fa8d0c3c1ff00205610164e54847083f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000012 | +| 0x34420f28cda0dfba8b7184157fea22468c013477ff9941e7124f3395c9bb624f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x3666e619ed5fe84714dda75d7c0511944e61000bffbdf1364f469b125df9dbc6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x370a13b1aa1af87c3dd53ea9a2e59bf16d0cee87b5f95fcc1a7db6e2d0e647a3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000c | +| 0x39434d4b241c3bd7102d0bd82ff6ca96c962d4a0679f8b321cd6e9311967fccd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x39851648447f0753812a194891d9e89063feec11da2e97b00108c9126a90f5c5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x39bdd321fa3419d167f864b2cbe44f6dd7acb8bab854994b2ce24cf6b11ee443 | 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x3b2846dc4d2c6fe944dcabcda3751b19df8389ce70b0739a6bf6174b10863e44 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x3b9a9f3f2b77fcc25bf7fb03e12e345d0d6f3052e8ca9c5e4d414a593686c5f8 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0x3ba3437bcb296e7406d828684b17b68275893d9d14c17591d8730296c5e11527 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x3c18b30554d8c7ea3e073e1fcee9badc765d6ff79befbf35a5ffc669ced726c8 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0x3d5a47c06b0276229a02e373f1b1d9b970d792668397ffeae512c1cffc5c25ab | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x3d66e6e98190bb6be31b492871dd5525a694af35f2ac3f49f857754f5b359921 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0x3e0b1b433166a4d4672332b57ca46cf9bcc52cd84eb161d04dbbd9abd92b1947 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x3e1483fce3759075c8cd2cb903805ce9a9e849c3f072187352f92d729ce6f5a3 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x3e22a58397c2dc6777c62cd416d7b585f058ca3ecc697cd4df7da7526963193f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000012 | +| 0x405ffb23dd647c46879293ebc93ebd3f46e7beb29dbeb7f9925cbbc797777d3c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x409e5e23dc88999e801f902a286e0f428dc2ebaa1a3064015b9cbfa9f22e12e2 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x417898fb6c7dbb5e7c9985459526bf778fb3454658820e36148d158d77ce1619 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004b | +| 0x41dc3dab004f9ca45618b36646009e68335fe63a32fa60740e0c50e4a5aed3eb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0x41dc3dab004f9ca45618b36646009e68335fe63a32fa60740e0c50e4a5aed3ec | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0x41dc3dab004f9ca45618b36646009e68335fe63a32fa60740e0c50e4a5aed3ed | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0x41dc3dab004f9ca45618b36646009e68335fe63a32fa60740e0c50e4a5aed3ee | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000006f48d9cdb8ee6e17c96b2d8aec128af426a295c1 | +| 0x41f2ba260235e8562b2e9c55f87760f70d62776c504335e94e655e12ed2d5698 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x42a523acbf14433870b673092031eae9e9a987c738c1b532c8ddbd7d74f77c04 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x42ade020ffdb60199492192b7100c22c9017c6aafbba400e20e989cff1c0d4d4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000c | +| 0x42eda8e73c3a96aabb87350f8ece2827a20b978ad9ca81d64e8fc12ac7552dd4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x36f1dfa000000000000000000000000000000000000000000000000000000000 | +| 0x42eda8e73c3a96aabb87350f8ece2827a20b978ad9ca81d64e8fc12ac7552dd5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 | +| 0x42eda8e73c3a96aabb87350f8ece2827a20b978ad9ca81d64e8fc12ac7552dd6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7492b5ec00000000000000000000000000000000000000000000000000000000 | +| 0x42eda8e73c3a96aabb87350f8ece2827a20b978ad9ca81d64e8fc12ac7552dd7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x99b4425800000000000000000000000000000000000000000000000000000000 | +| 0x46944b5692976b76a18cbad6c9fa05626e1bd444f385fadd1c8a9c5d7ab4542a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x46e52bc5f9a0f5b1e48e2990575db3b486df472af357b146a0801a73ef63adf8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f48414c5445445f524f | +| 0x46e52bc5f9a0f5b1e48e2990575db3b486df472af357b146a0801a73ef63adf9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0x48296bb8aaf9c50d98349b684d6ec042f7299fbb4696ca338b19934b17e33232 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x48869c54e0715ce47a2fdcb544c9a74032b2b37903451fbf2e0c9ba35b310422 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x4888fa652651b277781b22a16ec4c36578b2aaa2776b6871ca2fd7bde9b98c34 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x48dad462932d3bb58e970b91402b85a71e649f260f994d8b579f757464b97a3c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x490b1841c915b3bab81b956478d35e316b7de755f9aed5524a557008ba8406a1 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x49aa79f32d09c9f70b714c7c6d4ee5cadf4f0e54385f97cfb14cc259be4f9ef1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x49d358154340a46a3eed21766e770ae1f03aa19a44c3b3db0d87e21e2ffc1894 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x4a6ae82bc95913773d15101e32a9e2cd49767195f16762e0b87529b35d19444a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x4b2cecde8207ec6619e6c10f56b4e247476ba6c55067a2439c08a031b53d8ea4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x4b5f1f0d28cefec6344dd668c50d44d60bfbb59d3ef18381d6aca5dcec161d6e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x4b7257c7b7ce928a99cb23ff6393daa31ae4e3ad032509be8b1053850a6e6f20 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x4b908c99c4b936c2fd4079f0dc4b74474c9e4e524139e6c55dcb3f15f58419f3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x4bed554f258f3d6660ba5bac46026fa42d5374dcf0636fa41f5148da266c30c7 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0x4c7ad7de04cdbbed7ac607cce756ab69f3ce6b2782a5114a9819ccb8d6b7d5db | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x4d7d14f2af5a0769ef5b1a7543637c0a9ae878f1454a3c1c5617e781c1cdf0a4 | 0x000000000000000000000000000000000000000000000000000000000000000f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x50cb52344cce4621bddab903acdfeddb7683157eecd079aa2057b529306802b5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x51243ba84263809274c8d3e21eb8c2e317196a210f4137afaee87a619ad5f88a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x51a3f969697ca9b56826b5e8572d541fbaf2eb2ee9ba005350211caeb6b95574 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000a | +| 0x52834d42678c91588f136db7d0a6b6a444588da94a96aab9f0c30744fffb1dc9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x53d18c1b384add8965a8665445d02157d4504963aa5c0c828b4383e3ec83c1cf | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x542bb90cfdf9f0748f3843f7253ae97788c1e297e29a2c7215799f7d67075931 | 0x000000000000000000000000000000000000000000000000000000000000000c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x5494a7460975f6c65e0a46ba2dcefa84df55f9c0555062a71fa13860adbcfe1c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x55f1257334b37b0fa473a18a5e0633eb3bff93d5d1bac9ac6e3aaa83afddaf61 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x56ade2e98c6b02171ec17e8e38f200e4144acd2fa2ae0e00c92ffd8517d2a647 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x57bb5fadd75a751809d3b8a87e6da72b678d22d5c3cd2edd2a1e89699bdbe6f7 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x57f0eafa2bae7cc4e2c819ff641429476d1f2e429955060e5198549e4a4eb3b9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x58685646bca0437094c8912b56bbe0220a21414fc445421d3f02113a7649fb88 | 0x0000000000000000000000000000000000000000000000000000000000000010 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x5915b86bfd8acb3f5db3fdd539d3812d94cf8213c81fc1c9142979fd8a1d6350 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x598971fba20d735dfd88e29c6b1c5b4f915f19e607d53dd87983cb790b10bd4b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0x5b1f68d7be2d8753246db01a01a83ffd41028fb450b374b19fe4d7575ac0ff17 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000011 | +| 0x5b553bc7f4f274c56482d9523b06488bb143ecbcdb52542821a4636d7c252530 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x5d3dc62d6666a9d19a1b33516bddb22e3ca84825f99be10ea95006b7ff36d334 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x3a84f85a00000000000000000000000000000000000000000000000000000000 | +| 0x5e09649d935cef395fa682c976f1a815de038a390e5fb08786401d09229ec239 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x5fc6570690edcd80cf99ef3f67269ec94a95d737d94d123477994fc95f721e6a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x5fe4df015c577a96721d2b4f7e0f4239279f8ce181abfc5e8f3d079d53f14608 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x60fbc9da2face00d51a10bbebffa7d75e33be93d13a197102ec4b5d5d0c9d168 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000007 | +| 0x6145dfe13693804c29a0fcbd4a9c2030ca9945b7bed74d3e0fcfbdb1ce138cde | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0x61571e98f0a7ca05b9499156c3376bcfb1e78332812d783cf6121c00ebbb4334 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x61fb1e91dea217f2cd585f648b4974a81257e487154b261152a006d17ff03eaf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f4143544956455f524f | +| 0x61fb1e91dea217f2cd585f648b4974a81257e487154b261152a006d17ff03eb0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0x62651be63651de4678cc7ec27da68d9d60d84d53a48a0e73363b8fd66e39b5b5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x626ea958d61cb3269c4adc9523862daa6f6db42b521d5558072a6d4cc2fc5559 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f50415553455f524f4c4500003a | +| 0x62ec2dee8ce85a4cafbda3dd98b814442f784f8a4cf8c0da1b2d61e455d23af3 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x64f8c0d4e2380952032d70b812fbccf85dd227988312afd962c09b765ab313e3 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x66f1239eb37eae3c316e2f71e26a29c52f226622beb55efbae713e3b59c88301 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x727ae39700000000000000000000000000000000000000000000000000000000 | +| 0x66f1239eb37eae3c316e2f71e26a29c52f226622beb55efbae713e3b59c88302 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x46bfdc7200000000000000000000000000000000000000000000000000000000 | +| 0x66f1239eb37eae3c316e2f71e26a29c52f226622beb55efbae713e3b59c88303 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x722c65ee00000000000000000000000000000000000000000000000000000000 | +| 0x67201fe86157b9a00ef9248a8d45d83a9ea214e141c78bda72d6676bc9b0a6e5 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x68d0be37a341872d68c6fec33432c47b0d66f94658d22f971f4c26b4ddea5aca | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x6b031375fe4e65c5e745909c331c8be968de93e4d9e39f342bec40ced529cfd9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x6c76349aa8cf95ce5d01580c4b897f4f4454712f8c2b352363904ada459e3d02 | 0x0000000000000000000000000000000000000000000000000000000000000006 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x6c8c202382225d050625bd01a19e3c2d147f8f869c016f5cd43968a58bb31155 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x6dca4d4b09b62d1f634b8912972bd2eb9b7db94a63d936f59e60492d07a75bec | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x6de31cdf002f829fe142da4cea7b34679e52a5540e2cc20142c02a76d2da21c1 | 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x6f994855bc126a3c12868c254dd2343970b1613cd58dcfc9c0e64d2bd33b6dc4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x701b5d687eb62af0eb18eb02d71426f2205884f5e7acc1bcd7b47c1b498ea8c9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000011 | +| 0x70e7d730734040f490ca7fc65c45677ff5e29d964f93694196aa109adc971134 | 0x0000000000000000000000000000000000000000000000000000000000000017 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x72580ef26b881f7971fc0262fbbfc64d62940112d06e52aa411d39a9693d6643 | 0x000000000000000000000000000000000000000000000000000000000000000f | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x74022ffb923380ec1239954f6ab1141c6826b0c4945f3e1470173af61cbf922c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xa7aeae2000000000000000000000000000000000000000000000000000000000 | +| 0x74022ffb923380ec1239954f6ab1141c6826b0c4945f3e1470173af61cbf922d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x1947e19000000000000000000000000000000000000000000000000000000000 | +| 0x74022ffb923380ec1239954f6ab1141c6826b0c4945f3e1470173af61cbf922e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7cf1dbc500000000000000000000000000000000000000000000000000000000 | +| 0x74022ffb923380ec1239954f6ab1141c6826b0c4945f3e1470173af61cbf922f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xbc3a425e00000000000000000000000000000000000000000000000000000000 | +| 0x74667cfa6ea44db81f97d1d5d409df67970f1b77fe2e26d6fb1f24102e9acb58 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x74f2d2bf05542916745b0e7a1107d702abb7679951121d1691c62f2d7fa975cd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000a | +| 0x757ddfa11e72cb51559c07b56ae785c30beaa92c50f335f5eed0f9f02c1e4efe | 0x000000000000000000000000000000000000000000000000000000000000000b | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x75f2b60a0bccfa4986234ec4e22de72492da071071d3f788d398f9c505286324 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000001f0753480bb03eaa00863224602267b7e0525c3d | +| 0x75fabcc75013614b1fc7a402b7d4ab9ef7fda8612ceee8e7b019a7438cdad0b1 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x77d782e252280cfa6d1a18472d06784d842c7b5f2546fe6cc3964529b37cc74a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000006 | +| 0x77e5edd448bb7a52699ad08e324bee51f0d334dc694b3d3289907ecc37a86024 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x91c28cf900000000000000000000000000000000000000000000000000000000 | +| 0x7844225c2cd5bf27c23c1c1ceac431c50a6966a33d29769ce23d66d8fe5c0528 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x787060f3e410c2e86f7e259558d8d84a7f22cdfc718d1b70349b7b2d1514d208 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x78a84c59f0a403be613ea154923284bb5f1b3772151842a1a0c55b82a913ff7a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x7a0362d9e41f6052cb6334eeb4121f4def2af89c4f1410ab2a6eb7313d7b8e18 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x7b020e005794d37b247fb2526f93cfffe43b9eefc82074975de36f139a6eadaf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000a | +| 0x7b99f6f0a53abaec4143de311b3ccb56b0bd6de1852a4b734088dfe9507a4ddd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000009bfff48bfb5a7ae70c348d4d4cb97e8defa5389a | +| 0x7bca922fced6be35744acc20d49e5714392bf77e929975aec54e1f4f31c4095a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x7e258c607714586a0e46c4c1c0890f43290025115d0d87d9bb96237bedb8c488 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0x7f788b4bf8e651783f3aaf392fdb762720887b37458294196c4ea4f7f8211eab | 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x80ed5ef0facf980a1d2508fbe2e346cbf282b11147063065e7c4fca2d40945c4 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0x812687f010431d3561b42c0a864302cc647b9e1f9b9de9444c8fdebaa73331f0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x8184037f0465024cb897a7d7f99e510a35b61b84a384b41948b880749a8822fd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x835dc187c71536a34b2ef10b3c830b2e9bf312e8e961d0cef28ad57f51c0c3aa | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x836680111e0d8d43ec4f6ec2e3e5978aac322a96660de808630a7aa9efbf2a64 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f48414c5445445f524f | +| 0x836680111e0d8d43ec4f6ec2e3e5978aac322a96660de808630a7aa9efbf2a65 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0x83d94b0cdb75113d17adb1e4f7c6961938f8ecbb7d910c322c5cca45968e5533 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x841b69434b86c6be7edf2ac1f23d3f7cd5363f57bb1af1a08bea5a581bdd0aca | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x84730404c7c9954c336fba8d7c3bdab26ab5071f4732507084edddacf0eae45e | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x84bfb16dd0bb7e7f4eb77fc89d2b8ec8dc2c5859fbf98d7f2df1db4d54404b08 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x85a721fb9368a84dab328a89ada500593e249cebd3608d60b1acd39728df9ac3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x86e7c500a9f59d74a7d62957fc09469993cd5c22c4fcf50ec466265ad34c3d9d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0x87099e5ee97e3aa8491dec2e3d5879d1df247ee8ee9fb9d3a5c05223fe17030e | 0x0000000000000000000000000000000000000000000000000000000000000015 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x87525cb848aa6f53560959adb72b46cffe837f99c403b7375b6ee697627f29c3 | 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x8a34e61baf4933d37c69e34e0320711fbc0d037ba0256d28e73008bc9ce811c4 | 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a6 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1a9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1aa | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1ab | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1ac | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd1ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x8ae6ccaab3b78e45a10fd5e7ade88d8471b9d3d4e293a2456dce68ba9af14e7d | 0x0000000000000000000000000000000000000000000000000000000000000007 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x8afba7b7afade7965ec5d731fa13a62affe98b8a9e2e802ffa6a49cb8ce57a50 | 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x8b3d1de624cb27e3eb1f0da877f881d8c6ef8dbe73a9e0e11871113ffe527f4d | 0x000000000000000000000000000000000000000000000000000000000000000d | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x8b404d93c7d5d7bd3826bcf385b10639ef9c76d4684b968dc4ddfcbac13452b9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0x8b404d93c7d5d7bd3826bcf385b10639ef9c76d4684b968dc4ddfcbac13452ba | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0x8b404d93c7d5d7bd3826bcf385b10639ef9c76d4684b968dc4ddfcbac13452bb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0x8b6b08f4be9dc9a458a2b6a8c9ab547ce4cea4948799f503f88488870565d4b4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x8bad79e13a5b86797d54750359ccf4d92f61333203222d0d6d3efe868feecd36 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x8ce61d439c4952de232b197ecf106c4153e68c9f15c443da78867de2eccb5d28 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x8f7ec405a0615f7c1dc0a136a344634175aecc80625a93dcdfd3675f619ccb3b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x9845671100000000000000000000000000000000000000000000000000000000 | +| 0x8ff41266020b430e7b8901adba0329581c7dd938df10bcb4919869b029c573e5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0x911fbd86458863b7c6ba0658436269d164a2a37acee3f59198b3e178c949779c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0x92281f39d5835a57274f0f5a436435bbfd4e018f0ac01cc8849a29d75279f8c3 | 0x000000000000000000000000000000000000000000000000000000000000000b | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0x92b382c9271d0d64a32999c4661480946a8a8c9a5f14ecbca578551b6afe8d3b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000009bfff48bfb5a7ae70c348d4d4cb97e8defa5389a | +| 0x92e985d40d1faab54a403812073057303158beb48e99ae5d6f9085b1f4ffdddc | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000005 | +| 0x96d9b344ef42e397df525e5b0d8b3fb43c010dfc20e0f518a38e75f7cb8eb9fa | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000b | +| 0x987ffbeafa08f81f99e4f724572d973738693917bcb9f61a3b082e4ab117dd1a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000010 | +| 0x99dce4fe82fb2d3eccbccfbaaa4d82c019329956a0c201b44fa6a4afef2d2d94 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f4c495354494e475f524f4c453e | +| 0x9a58f1454be26a4e8d333851d01f8803a8491916de74c9bc290ecb320a43b632 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000ca | +| 0x9b37678a5d9cf43ed680f8008d9a545967eea4f5cb0cf480b2df42ba516ac6a4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x9bffd4c2932b9788bd567248a80564547961d62d437deb46d3e062c806800cdf | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0x9d031ecb59cd9b18566bad8e6be39cf34088b5939c255124c4129ff291ba8d32 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0x9e085e756699b19bcfc77e69c45c54f724fe5fee5abd2d1865d3621de0fd5f51 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0x9e7e194042e5a9868501b7daebc1df1816d5f457a18666086fe152aebf765842 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0x9eb2d4479b02dcf7ed98dc95533f42bd38580515c124ddee459d011ea8ac5f37 | 0x000000000000000000000000000000000000000000000000000000000000000d | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xa0b6e398096f56a73241b308f56eecbb2d982f353ac2e2a38bfa1e2e2e72d09a | 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa0f68b8b28b0beaba2bb46ab1060b5440fe27fa7d3fa118d2c8bd75dfd52d486 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0xa0f68b8b28b0beaba2bb46ab1060b5440fe27fa7d3fa118d2c8bd75dfd52d487 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0xa0f68b8b28b0beaba2bb46ab1060b5440fe27fa7d3fa118d2c8bd75dfd52d488 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0xa0f68b8b28b0beaba2bb46ab1060b5440fe27fa7d3fa118d2c8bd75dfd52d489 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000006f48d9cdb8ee6e17c96b2d8aec128af426a295c1 | +| 0xa127ef6bdc57b0af085d7fec053c3d132f231f3358e68cda85156a174630bf30 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa465e63a7a800f98a8eb90c1a7a0152b01fd83805ec60da47cbf1166ec33d1f5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xa49c09af264bf1f3a04173aec9b796b152b22e61da38506cad75c6562ef8eb03 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xa51a63c942776bb28abd2ca6e53e4839ac0e443715b46b6cc174ee40a068cd13 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f5249534b5f4d414e4147454d454e54 | +| 0xa51a63c942776bb28abd2ca6e53e4839ac0e443715b46b6cc174ee40a068cd14 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x5f524f4c45000000000000000000000000000000000000000000000000000000 | +| 0xa552467889b8e6ff93b10b28b1f9580116561835d4b9252ab5abccb6c73b2a9f | 0x0000000000000000000000000000000000000000000000000000000000000011 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xa6a2ffd9e9c77a29ce1d80ac81a9ea974aa668549625a3de22d7bffd154ef837 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000005 | +| 0xa769821d34d716723a0dcd5aeb0fcbcb4ef6b57c51efe7d3147ff48c72287ace | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xa7a6edc337e19d136fb93d8a853c6ed8c1d21990a455e892d22f804e740cc58a | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xa7e8e38e2ece7eef152c428b20b44ddf58dd819dab848fe7c7cd900bb0830750 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0xa944832a70f024d0aca797a57e2e4cafbe2f750c0c778568bcd9da040385ff3c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xa9e27ed6ce6d2f36465ebe8b72ee4ba457a93e51d5fd7c30a786970b541f76f1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000001f0753480bb03eaa00863224602267b7e0525c3d | +| 0xac5e9b826f92b3100337f2d3cad96d14194a539971cbdbb690b72a5b60862333 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000c | +| 0xacf719ed7fd8dc1cccaeca1061c24f8afd43deca5cbd1c4eb55f599ba7d206c8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0xacf719ed7fd8dc1cccaeca1061c24f8afd43deca5cbd1c4eb55f599ba7d206c9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0xacf719ed7fd8dc1cccaeca1061c24f8afd43deca5cbd1c4eb55f599ba7d206ca | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0xad014fb2a12791a184dee6f30d1de1d674f25acefb855d8e793b16bde7fc0051 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0xad9daf903fa7f511786fe785d18b97d3114723deef2ab3b09c9c062c9a5d29d2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x5f42a73b00000000000000000000000000000000000000000000000000000000 | +| 0xadb962ba6aa076cf9793c472630dc76b05c2598f9abdb5c64f2a4973f5ca153f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000f | +| 0xadc493ca0a9bd113ea994045fd145252ae48e7f572c9f2212dba691aee343b81 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xae9cc7dda69e8447eedbbc679cbef0f8b01edcf5be1791e8adc3f43daba5fb0f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xafb89c25d7e2fef95c2a7c45069b67419abfc1a3d99301200592da6715324818 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f5249534b5f4d414e4147454d45 | +| 0xafb89c25d7e2fef95c2a7c45069b67419abfc1a3d99301200592da6715324819 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4e545f524f4c4500000000000000000000000000000000000000000000000000 | +| 0xaff0a2a9f09ea6a9fcd32725b31e678452812bd92ebfff1677ee4d56be042193 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xb019934cffabff81e4820980f1ef1f125640ea364d208f6b69df4d0aa1209725 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2f7 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xf165fdea00000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2f8 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xdf51754500000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2f9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x092622b700000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2fa | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x710bc18000000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2fb | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x3b0beccf00000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2fc | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x063c7dc000000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2fd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xfd19d8f700000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2fe | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xcb51c39400000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be2ff | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x404f0b2c00000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be300 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x98e7856f00000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be301 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xde3487b800000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be302 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x579b47eb00000000000000000000000000000000000000000000000000000000 | +| 0xb06b5ba93087d03b2e6583f0ba85ea61bcde0c80257d6727ab32682eb54be303 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xd15916be00000000000000000000000000000000000000000000000000000000 | +| 0xb0c89357d133b2685a6b6b1be43ee4fe8323fbadd2c35ab48a744471a43acf24 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000043 | +| 0xb2d3ea1d7f823cde866f8b6fb8e3d82d427311e472c25b71ec9801b61688a015 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xb5ae8b9d215902738d5af577e6cbadd1c4956a6946f5a3309a4763905b52d71a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0xb609bd2edff1d89e5b21240c5753dbef2b8a0f729effcac93d505fabac716765 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xb6319e512abc0d3b834438f295f22db022e01f4971bab16e8d6a172f6aaf8d6a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xb63b611f45c9f1cc00c1782b59541e24daa2e82c79e848005b75126f8c4827ef | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xb6795b0da226f1720c405e297d3697e272db87d3b0e1509d1e07345d8db3891f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x7f0633c500000000000000000000000000000000000000000000000000000000 | +| 0xb6795b0da226f1720c405e297d3697e272db87d3b0e1509d1e07345d8db38920 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x486b0e0e00000000000000000000000000000000000000000000000000000000 | +| 0xb6795b0da226f1720c405e297d3697e272db87d3b0e1509d1e07345d8db38921 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0e50f67a00000000000000000000000000000000000000000000000000000000 | +| 0xb6795b0da226f1720c405e297d3697e272db87d3b0e1509d1e07345d8db38922 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0xa2455af200000000000000000000000000000000000000000000000000000000 | +| 0xb6db5d11ae091fa2692e096d649143314183fe50fe7d8cb4cd9d586cbf93012d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xb7e11509e2964f67b86adbf352c1fe920bfa7b7d3e71eb7ed07806a1f7229b0d | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000191 | +| 0xb80907b0950a4965880017aeb104ddbd6a4317e2b4d6e1fcc187d8bfabf7bb47 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xba3823a7e4f1be23768c5b5598aee7221866239e3bdc3731925232e77c725a05 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xbae595de8bec45a3a2d38daa1a019ff6426d3b73e7ee1aaa6cc880b384e42323 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000001f0753480bb03eaa00863224602267b7e0525c3d | +| 0xbd169cd7a26f63dfb1b08f6b7c07339bbcd7b56cecc867aba51c074a92898f24 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0xbd47023332ea02c6975eb5ab1d46cdbfeb58a31b142860cf8678f66b8d5645b9 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0xbe8ed782d28a4e94f82cb202795f407acee2c9e28490f733e55ba062da1cf5e8 | 0x0000000000000000000000000000000000000000000000000000000000000016 | 0x0000000000000000000000000000000000000000000000000000000000000007 | +| 0xbed7191e54e133f8e0f9f810addbb466b2888dbf1d80aeea795ed1c5a0cf12d0 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xbf024500bc22bdc665f857bd0b980a0a045a37b9f4dc69ae9a9fa975baebf756 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000b | +| 0xbfcae1131e98393004f5b708f1aa056a2f009b32f8829a69ac3090678ad0c180 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0xc0d3cfb377987a6baa1fb3ac1cbaddfc489b49eac95f22a0e25ca6ce3f69afec | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xc15c45c405b1ed42d985d62aa3628dac8ea67ff456c5bae39c2c9e953d194b36 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0xc26662bdd5d469d23d5e8b122e1844f99deb2720157da807669402cd35056b9c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xc2d19062e6189c55f7e882839508644fae76b955fb0ec5a72955320c823462f3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0xc3217ea27804c5c55fed35c70c432f32eb6c0df45b0cfc24a1535ce17b67786b | 0x0000000000000000000000000000000000000000000000000000000000000018 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xc35da27ffa02d7e70093d9daa49636d79c768bb5a700f9910cadb3f19d1f1c2c | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xc3aa30c5110ec297e0c8737d3ede14c691eee7fc5f9fe9a36e3f5273dd9c5461 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xc538845544d0a6cf5db4461a7f8daa1d67dd0c0d0b931c8465bb367b09306742 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xc573fdf91b0fba6e011978bb084b5f6a1d28ea3d4673f4451a4b0341ead4b61a | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0xc6646d900f3664f398aae12aff1e829ed1db48f00428b681c299845664fd29fd | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000009bfff48bfb5a7ae70c348d4d4cb97e8defa5389a | +| 0xc8d9c5a336132b470992689624cc18826cb6d1ce7e669bde92501add41807b90 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xc9201b0a95925601e3fe6123e95548427b0f4d6239da638251307ec8fc1d8737 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0xc9201b0a95925601e3fe6123e95548427b0f4d6239da638251307ec8fc1d8738 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0xc9201b0a95925601e3fe6123e95548427b0f4d6239da638251307ec8fc1d8739 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0xca838079b805235353d5238956d05c348a0308f04022ceabe0e1b01138376305 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0xca966f7b0868329d357783baaa29a2357717a0cf6154be600976a2c67ead6ddf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xcb7176cd45ee37fe55165cfa044649b9c31fd83565c40b09220481217256c775 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xcbdbffbd6084d5f88409a4c5265bc011a237044945d14c128925cba15e159f62 | 0x0000000000000000000000000000000000000000000000000000000000000010 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xcd9d4ec542addc9b7ac205cd38d1d8a11a320c7a120359549795bf6d0bec613c | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xcddecc08d426d0d8ef7d4e854289790eab6cbc517501c32f1bb65a7ad08bb266 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000008 | +| 0xcdebb189148724a8f2825303d8d962e07b35bed5857dce7696dd2522d1445e0e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xce8949f0bbe6792c3fa70aa28f5871e5d9dbfe06abf9a1095b6da66b8fc64f71 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000001f0753480bb03eaa00863224602267b7e0525c3d | +| 0xced01075c11decca983d0abbd3e0796fe1500331e572019ceb372bdcc52ec14f | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xceecce7dfd5ed79f5bc3ec4210120955f5a0bb0f85c96a66b1057c16f5ea9533 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xcf17daeb08ab3480af51fbded248db660592c1193b5b502f1c5e152ce6b4be05 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xcf402b4e5e3e1646ac5ba0ae5e87cbcfec44e77f8eb3b76beca5b646b1f4e4c9 | 0x0000000000000000000000000000000000000000000000000000000000000012 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xcf6f7d630812c3ee00f529cc3c548aadb304ecca3ead4ef375e4bcfe9658d2bc | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xcfcad9ca19432de66efc9e22282e0ecef1daee504c58b3273dc3ad813cc42b86 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000e | +| 0xd048feb1e2b79a7375e8b56db37089de521af5d69b63f1ccfc8346b87931fc0c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0xd1385ae9a4a2c8999c1439999b243a371f85f71b56d0ec61416354b5a0a3d81a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xd1b4e2a8c29ead92de6ed9ed86fb4953e6375f6b9782b3155e53ebd897a34db2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xd2fec74cb34d520f10ff58136448461361e2f3f5eac770205a000daabbaf384b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xd47f019e78fd860730d1e090a4683fa1dbdde20226390ece17db5123fe1135ef | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xd53ca47e2acfc2bce2c8a92cea1beff2250787c9095690c4bab16bd08662658b | 0x000000000000000000000000000000000000000000000000000000000000000c | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xd5d46b08239f8b35ada46e76dddc6b3e38e54e3a69bb5956635dab2392eba881 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xd6b8db32c53e90308595214e10f51f697547ce256aefcccd68ce04186509370f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0xd72f2c8619068d3f818077d3902aa0487aed244ba2ad8ff137ce659f3555cc49 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cb | +| 0xd78b7463cf961e24251df803e52da5f9b17902ccf056bc8774c1d85c2c9e3053 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xd82a650c5d3021bcf4cc56e3070f6fbcc8a3b659284efa3f3d779427459d4528 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xd8bf1d2af9a7a8c011f2e76a9bf933e07faddf853553ac3f0d4be5a356a21aff | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f465245455a455f524f4c45003c | +| 0xd9e028020efa7bc5b7e8ff988d8024eec857c00b3598b759cfc5d67ba4a178f0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xdb1858320b83634fe492e5cbe5912e536a7dbe47f51dcccb7a56d13f657ad799 | 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb1 | 0x98e7856f00000000000000000000000000000000000000000000000000000000 | 0x152ef83200000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb2 | 0xde3487b800000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb3 | 0x579b47eb00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb4 | 0xd15916be00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb5 | 0x727ae39700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb6 | 0x5f42a73b00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb7 | 0x3a84f85a00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb8 | 0x46bfdc7200000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcb9 | 0x722c65ee00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcba | 0xf165fdea00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcbb | 0xdf51754500000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcbc | 0x092622b700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcbd | 0x710bc18000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcbe | 0x3b0beccf00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcbf | 0x063c7dc000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc0 | 0xfd19d8f700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc1 | 0xcb51c39400000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc2 | 0x404f0b2c00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc3 | 0x6a8b9a2700000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc4 | 0x99b4425800000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc5 | 0x36f1dfa000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc6 | 0x7492b5ec00000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdb2398acb9a05e41aaed9848b9833243ce2592571165f2d8f936ac130c5ebcc7 | 0x152ef83200000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdbfddf989334765132d6e1cd4920c276e90a9f3317de415239ac7f7135082309 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xdc1a36d0402583dd24a00d46c756250ce4cb1dfec83d3f03943aa25b64c979a5 | 0x0000000000000000000000000000000000000000000000000000000000000012 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdc756fe80d26a01d9f2c32480d6e3fadc756a4c069bb9da5404862575f0171d5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000f | +| 0xde096f5fcfe17b8392aa8302e9055a846939f6a145fa65f198a099396674c80f | 0x0000000000000000000000000000000000000000000000000000000000000016 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xdf3339c9cb45f0e2a2eacf5b543249b4f05df7f0209837cd42d717f99ae590ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f454d455247454e43595f524f4c453e | +| 0xdfd9cc20cee92f3aa9fda2aefb837dbfb35e0436f74ea6d25fb2d4efe9b005a9 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000013 | +| 0xdff9828cc9dbdcff80687722e5c808c181f6db45aa03245b94de5bc960ed3903 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xe123f4ef8da1d83332f344ea8bbead146ea25ae42c33960e58af1b6b3117103b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xe2f776198c553f7c984e06c2742c604d9ece47d561906321feb92740908529f1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0xe2f776198c553f7c984e06c2742c604d9ece47d561906321feb92740908529f2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0xe2f776198c553f7c984e06c2742c604d9ece47d561906321feb92740908529f3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0xe2f776198c553f7c984e06c2742c604d9ece47d561906321feb92740908529f4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000006f48d9cdb8ee6e17c96b2d8aec128af426a295c1 | +| 0xe31c40bd2e6a289d910afd8065544f29f8b155c12ec4843d48954268db79fece | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000c9 | +| 0xe40fd68ffb98dcb0b39ef0d285b57c24b250388902df7188c5eca0bf6949a0c3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xe4fba7dfe4183d6330495146e4d40eb0c5893a0d952b3b131d84753bea87ddfd | 0x0000000000000000000000000000000000000000000000000000000000000016 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xe5ed4efcb9b631a76d5d5247d191319c73f3672c46aa83986d56652647f2fd06 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xe7c07b8cd6ff6ffd7227e518bc1d86e3d1f5ddfff87c473a070bd901676687de | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xe7e6c6a6af58d822e2f2c20ed08af12e92cf4b4a9acc255c8cec274516e7dd23 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xe80e08143af164456c7d48dc12c4f3da36aa1d0d98f76f736934c63dd3942b5b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000001f0753480bb03eaa00863224602267b7e0525c3d | +| 0xe8316a5a78628985f2033a9bdf8f796ca8fe581e55549a38d4e88ad503cf3b50 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xe8790bdb2fc896921a60100998998bef1606b32689f80abe454d2bc08a66d572 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0xea853fc98253241fbffd502b294f61d9a758ca8f88d244e0adaa1c3d78f04804 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f5249534b5f4d414e4147454d45 | +| 0xea853fc98253241fbffd502b294f61d9a758ca8f88d244e0adaa1c3d78f04805 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4e545f524f4c4500000000000000000000000000000000000000000000000000 | +| 0xea9d395da8bf65e9fafcf8ea00c39b1104f798745a881b031d3773273524174d | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xeaa88e948a25597764604d48d9a56b5a2f2f18f2127ebd674470bd45299fdf69 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000192 | +| 0xead412f5266643f1d9c4bc2931862303351f99ffc9955fb2e697e2eb3e9f2f5c | 0x0000000000000000000000000000000000000000000000000000000000000013 | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| 0xeba47d632f7ad62a5e30921ebdeb4807e694f80da2c67fef5367071602e0c224 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000187aae17d4931310b3fc75743e7f16bdc9ed77e9 | +| 0xeba47d632f7ad62a5e30921ebdeb4807e694f80da2c67fef5367071602e0c225 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000014339e2178a954d5fb839d5ff31644fe0f25f517 | +| 0xeba47d632f7ad62a5e30921ebdeb4807e694f80da2c67fef5367071602e0c226 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000005300a1a15135ea4dc7ad5a167152c01efc9b192a | +| 0xebcb81d360cc65970dc5029c7e8b562319db23d5ea9dd85bd1c5e9bfa21133ed | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xec98c7fcfc7d52854437b220843ca26646455aaa1bfda426113da21075d028ad | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xecf59db4d4213ccf4212e6fedcc8573b41df7bde22c352873878874e74bc2394 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xee76e7c8ffabdd49e3dbadd744ef7c55704f533796507bd570645416351b60b2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xef1a65a278446086127bb22872b405be0208fcb4694201f602d527cbcaf3a0f7 | 0x0000000000000000000000000000000000000000000000000000000000000015 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xefa277973783d913f000350550a794e4b615ad2976a76ec5df2fcf3f6dfe8474 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004f | +| 0xefbbb4cb008dee8e8c9a350424e4f3eaf9c50f65149645032fe2550346934ea5 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cc | +| 0xefc0f9582370dcca4f4f12a1d838ac6cbfeaeea96bf2b4fa50a3c0e450cad783 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xf01e2cefb31f3370af55ce9fe0577667000c2fd54b5bd3a324090761d9918985 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000004 | +| 0xf0dc3739a264b96b524f5472fcfa0df70f2aecd495953f5326a3c9bc636ae0ff | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000005 | +| 0xf1bfcafbc3aac9407e95071e2b2a8e0f3463dbac82a92bf0ecb4f6d53476351b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000b | +| 0xf282e2888c324df7cb75156822c2e77eb209598344e61a2f9e26eac48e8a1c0d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000e | +| 0xf38e3d839037fd94991bf0d3697cc3041bccf44f068658c3513d4cf9aba2e254 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eec | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eed | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000045 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eee | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f4c495354494e475f524f4c4500003a | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eef | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f454d455247454e43595f524f4c453e | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef0 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004b | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef1 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f50415553455f524f4c4500003a | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef2 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f465245455a455f524f4c45003c | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f4c495354494e475f524f4c453e | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef4 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000043 | +| 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef5 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000004f | +| 0xf46221c342e8cfedfc5ff6257e8475895ef4b93650cd7d2b1421efe008bbf799 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f53504f4b455f4143544956455f524f | +| 0xf46221c342e8cfedfc5ff6257e8475895ef4b93650cd7d2b1421efe008bbf79a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4c45000000000000000000000000000000000000000000000000000000000000 | +| 0xf46bea8a0707d26b291b2c359d22a052c37df8e97b702db157e8597fe9a2b826 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000009 | +| 0xf580034d53938079eaf101720548a85400195b60075bc5e71f18b0ae9c1cd4e0 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000194 | +| 0xf73a7ba6b8a1dfac9a1190830fa34225224104e83bb89245e99dd1cb9d131568 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xf7407324474a47116ff8cf51ac22a7a2f7c602c5ff0f7ba5154fbf1454a8538c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xf7ae258053851370ade81c6484697903caec28fb174824e5165ce91d862efe09 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4855425f434f4e464947555241544f525f4c495354494e475f524f4c4500003a | +| 0xf9f6826c370e1b2d85cf8f3e3951fd7feb532e95b05a40c74b4341971ccd1551 | 0x00000000000000000000000000000000000000000000000000000000000000c8 | 0x00000000000000000000000000000000000000000000000000000000000000cd | +| 0xfadcd98029e3b5173f1ee99abe809c64309feec91f6a41c2f12d88512e88ff76 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000195 | +| 0xfcaf9a127b9568b229fcedc80b66f012daa4e343dbf80933e1dddbd5a091330e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x53504f4b455f434f4e464947555241544f525f454d455247454e43595f524f4c | +| 0xfcaf9a127b9568b229fcedc80b66f012daa4e343dbf80933e1dddbd5a091330f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x4500000000000000000000000000000000000000000000000000000000000000 | +| 0xfd6c6b4731f3f8c165f1c57f3c06f330c9b1f3a4afc62f4890e595f7c3a13520 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | +| 0xfdd97428b8fd4a20ef2c11f63589acab2193bd04ebc8f8bd67d6e60aa868f74d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000003 | +| 0xfe15be02069b07196430ed9da1da38301bf15bd1969c687f756ec612b6bb6de3 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | +| 0xfe1f325eb695a27eac87f3cd42979e874adf5d517da5a4332135a6e07d3f3e0b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000000000000d | +| 0xfe5253de37f6e3d647560c730de7459c5e986d94dcac4d92cbac6b91f178a9d3 | 0x0000000000000000000000000000000000000000000000000000000000000190 | 0x0000000000000000000000000000000000000000000000000000000000000193 | +| 0xff28de5e1df7cb64230170db7b2361903afd4887f3f7f26bf87e3138d75a3b3d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000000006a759457 | +| 0xffe8fa839734023da51c51afa5c54386f0ab7cb0854a560e8d8848a141e563cf | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000002 | + +### 0x6f48d9cdb8ee6e17c96b2d8aec128af426a295c1 + +| slot | previous value | new value | +| --- | --- | --- | +| 0x0000000000000000000000000000000000000000000000000000000000000002 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000001f0753480bb03eaa00863224602267b7e0525c3d | +| 0x0000000000000000000000000000000000000000000000000000000000000003 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000012c000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000004 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000012c000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000005 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x00000000000000000000000000000000000000000000000000012c000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000006 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000007d0000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000007 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x010000000000000000000000000000000000000000000000002710000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000008 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x010000000000000000000000000000000000000000000000002710000001fa40 | +| 0x0000000000000000000000000000000000000000000000000000000000000009 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000009bfff48bfb5a7ae70c348d4d4cb97e8defa5389a | +| 0x000000000000000000000000000000000000000000000000000000000000000a | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000007530000001fa40 | +| 0x000000000000000000000000000000000000000000000000000000000000000b | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000032000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000c | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000032000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000d | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000001f4000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000e | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000000000000000032000003f480 | +| 0x000000000000000000000000000000000000000000000000000000000000000f | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0100000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000010 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0100000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000011 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000012 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0100000000000000000000000000000000000000000000000001f4000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000013 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x010000000000000000000000000000000000000000000000000032000003f480 | +| 0x0000000000000000000000000000000000000000000000000000000000000014 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x000000000000000000000000000000000000000058d15e17628000000002a300 | + +### 0xc2aacf6553d20d1e9d78e365aaba8032af9c85b0 (AaveV3Ethereum.ACL_MANAGER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0x8aa07abe334124116e1ca0e44c6e3ed5cde7acefb98660d6ae1fa4bb2c7f8223 | 0x0000000000000000000000000000000000000000000000000000000000000000 | 0x0000000000000000000000000000000000000000000000000000000000000001 | + +### 0xdabad81af85554e9ae636395611c58f7ec1aaec5 (GovernanceV3Ethereum.PAYLOADS_CONTROLLER) + +| slot | previous value | new value | +| --- | --- | --- | +| 0xc4817c8f5e386eb0be54e010d6618b2dd0fa86823e3ced01fe91a9c4c87a27d8 | 0x006a759456000000000002000000000000000000000000000000000000000000 | 0x006a759456000000000003000000000000000000000000000000000000000000 | +| 0xc4817c8f5e386eb0be54e010d6618b2dd0fa86823e3ced01fe91a9c4c87a27d9 | 0x000000000000000000093a800000000000006aa3b8d700000000000000000000 | 0x000000000000000000093a800000000000006aa3b8d70000000000006a759457 | + + +## Raw diff + +```json +{ + "accessManagerRoles": { + "0x08aE3BE30958cDd1847ec58fFfd4C451a87fDF01": { + "200": { + "selectors": { + "0": { + "from": "0xa7aeae2000000000000000000000000000000000000000000000000000000000", + "to": "0xa9fe640400000000000000000000000000000000000000000000000000000000" + }, + "1": { + "from": "0x1947e19000000000000000000000000000000000000000000000000000000000", + "to": "0x86803a1f00000000000000000000000000000000000000000000000000000000" + }, + "7": { + "from": "0xa9fe640400000000000000000000000000000000000000000000000000000000", + "to": null + }, + "8": { + "from": "0x7f0633c500000000000000000000000000000000000000000000000000000000", + "to": null + }, + "9": { + "from": "0x486b0e0e00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "10": { + "from": "0x7cf1dbc500000000000000000000000000000000000000000000000000000000", + "to": null + }, + "11": { + "from": "0xbc3a425e00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "12": { + "from": "0x9845671100000000000000000000000000000000000000000000000000000000", + "to": null + }, + "13": { + "from": "0x91c28cf900000000000000000000000000000000000000000000000000000000", + "to": null + }, + "14": { + "from": "0x493e28ae00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "15": { + "from": "0x7427ca5f00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "16": { + "from": "0x7441ce9100000000000000000000000000000000000000000000000000000000", + "to": null + }, + "17": { + "from": "0xa3254c9000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "18": { + "from": "0x0e50f67a00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "19": { + "from": "0xa2455af200000000000000000000000000000000000000000000000000000000", + "to": null + }, + "20": { + "from": "0x86803a1f00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "21": { + "from": "0xc987da3800000000000000000000000000000000000000000000000000000000", + "to": null + } + }, + "targets": { + "7": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "8": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "9": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "10": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "11": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "12": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "13": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "14": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "15": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "16": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "17": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "18": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "19": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "20": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + }, + "21": { + "from": "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "to": null + } + } + }, + "201": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE", + "members": [ + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9" + ], + "selectors": [ + "0x9845671100000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x1F0753480bB03EaA00863224602267B7E0525C3d" + ] + } + }, + "202": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_SPOKE_HALTED_ROLE", + "members": [ + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9" + ], + "selectors": [ + "0x91c28cf900000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x1F0753480bB03EaA00863224602267B7E0525C3d" + ] + } + }, + "203": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_LISTING_ROLE", + "members": [ + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9" + ], + "selectors": [ + "0xa7aeae2000000000000000000000000000000000000000000000000000000000", + "0x1947e19000000000000000000000000000000000000000000000000000000000", + "0x7cf1dbc500000000000000000000000000000000000000000000000000000000", + "0xbc3a425e00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d" + ] + } + }, + "204": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_EMERGENCY_ROLE", + "members": [ + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9", + "0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1" + ], + "selectors": [ + "0x7f0633c500000000000000000000000000000000000000000000000000000000", + "0x486b0e0e00000000000000000000000000000000000000000000000000000000", + "0x0e50f67a00000000000000000000000000000000000000000000000000000000", + "0xa2455af200000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d" + ] + } + }, + "205": { + "from": null, + "to": { + "label": "HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE", + "members": [ + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9", + "0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1" + ], + "selectors": [ + "0x493e28ae00000000000000000000000000000000000000000000000000000000", + "0x7427ca5f00000000000000000000000000000000000000000000000000000000", + "0xa3254c9000000000000000000000000000000000000000000000000000000000", + "0x7441ce9100000000000000000000000000000000000000000000000000000000", + "0xc987da3800000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d", + "0x1F0753480bB03EaA00863224602267B7E0525C3d" + ] + } + }, + "400": { + "selectors": { + "1": { + "from": "0x98e7856f00000000000000000000000000000000000000000000000000000000", + "to": "0x152ef83200000000000000000000000000000000000000000000000000000000" + }, + "2": { + "from": "0xde3487b800000000000000000000000000000000000000000000000000000000", + "to": null + }, + "3": { + "from": "0x579b47eb00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "4": { + "from": "0xd15916be00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "5": { + "from": "0x727ae39700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "6": { + "from": "0x5f42a73b00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "7": { + "from": "0x3a84f85a00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "8": { + "from": "0x46bfdc7200000000000000000000000000000000000000000000000000000000", + "to": null + }, + "9": { + "from": "0x722c65ee00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "10": { + "from": "0xf165fdea00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "11": { + "from": "0xdf51754500000000000000000000000000000000000000000000000000000000", + "to": null + }, + "12": { + "from": "0x092622b700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "13": { + "from": "0x710bc18000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "14": { + "from": "0x3b0beccf00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "15": { + "from": "0x063c7dc000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "16": { + "from": "0xfd19d8f700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "17": { + "from": "0xcb51c39400000000000000000000000000000000000000000000000000000000", + "to": null + }, + "18": { + "from": "0x404f0b2c00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "19": { + "from": "0x6a8b9a2700000000000000000000000000000000000000000000000000000000", + "to": null + }, + "20": { + "from": "0x99b4425800000000000000000000000000000000000000000000000000000000", + "to": null + }, + "21": { + "from": "0x36f1dfa000000000000000000000000000000000000000000000000000000000", + "to": null + }, + "22": { + "from": "0x7492b5ec00000000000000000000000000000000000000000000000000000000", + "to": null + }, + "23": { + "from": "0x152ef83200000000000000000000000000000000000000000000000000000000", + "to": null + } + }, + "targets": { + "2": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "3": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "4": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "5": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "6": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "7": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "8": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "9": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "10": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "11": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "12": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "13": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "14": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "15": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "16": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "17": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "18": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "19": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "20": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "21": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "22": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + }, + "23": { + "from": "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "to": null + } + } + }, + "401": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_PAUSE_ROLE", + "members": [ + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A" + ], + "selectors": [ + "0x5f42a73b00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a" + ] + } + }, + "402": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_FREEZE_ROLE", + "members": [ + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A" + ], + "selectors": [ + "0x3a84f85a00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a" + ] + } + }, + "403": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_LISTING_ROLE", + "members": [ + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A" + ], + "selectors": [ + "0x727ae39700000000000000000000000000000000000000000000000000000000", + "0x46bfdc7200000000000000000000000000000000000000000000000000000000", + "0x722c65ee00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a" + ] + } + }, + "404": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_EMERGENCY_ROLE", + "members": [ + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A", + "0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1" + ], + "selectors": [ + "0x36f1dfa000000000000000000000000000000000000000000000000000000000", + "0x6a8b9a2700000000000000000000000000000000000000000000000000000000", + "0x7492b5ec00000000000000000000000000000000000000000000000000000000", + "0x99b4425800000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a" + ] + } + }, + "405": { + "from": null, + "to": { + "label": "SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE", + "members": [ + "0x187AAE17d4931310B3fc75743e7F16Bdc9eD77e9", + "0x14339e2178A954d5FB839D5Ff31644fE0F25F517", + "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A", + "0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1" + ], + "selectors": [ + "0xf165fdea00000000000000000000000000000000000000000000000000000000", + "0xdf51754500000000000000000000000000000000000000000000000000000000", + "0x092622b700000000000000000000000000000000000000000000000000000000", + "0x710bc18000000000000000000000000000000000000000000000000000000000", + "0x3b0beccf00000000000000000000000000000000000000000000000000000000", + "0x063c7dc000000000000000000000000000000000000000000000000000000000", + "0xfd19d8f700000000000000000000000000000000000000000000000000000000", + "0xcb51c39400000000000000000000000000000000000000000000000000000000", + "0x404f0b2c00000000000000000000000000000000000000000000000000000000", + "0x98e7856f00000000000000000000000000000000000000000000000000000000", + "0xde3487b800000000000000000000000000000000000000000000000000000000", + "0x579b47eb00000000000000000000000000000000000000000000000000000000", + "0xd15916be00000000000000000000000000000000000000000000000000000000" + ], + "targets": [ + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a", + "0x9BFFf48BFb5A7AE70c348d4d4cb97E8DEFa5389a" + ] + } + } + } + } +} +``` diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.sol b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.sol new file mode 100644 index 000000000..c33c7fee8 --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.sol @@ -0,0 +1,165 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol'; +import {AaveV4Avalanche} from 'aave-address-book/AaveV4Avalanche.sol'; +import {IRiskStewardV4} from 'src/interfaces/IRiskStewardV4.sol'; +import {AaveV4ConfiguratorRoles} from './AaveV4ConfiguratorRoles.sol'; + +/** + * @title AaveV4RiskStewardsActivation + * @author Aave Labs + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/arfc-activate-aave-risk-stewards-on-aave-v4/25510 + */ +contract AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807 is IProposalGenericExecutor { + // https://snowscan.xyz/address/0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107 + address public constant RISK_STEWARD = 0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107; + + function execute() external override { + AaveV4ConfiguratorRoles.breakDownDomainAdminRoles( + AaveV4Avalanche.ACCESS_MANAGER, + AaveV4Avalanche.HUB_CONFIGURATOR, + AaveV4Avalanche.SPOKE_CONFIGURATOR + ); + _grantRoles(); + IRiskStewardV4(RISK_STEWARD).setConfig(_riskStewardConfig()); + } + + /// @dev The steward only needs risk management to run its own entrypoints; emergency is granted + /// alongside it so it can also de-risk without a new proposal. + function _grantRoles() internal { + AaveV4Avalanche.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + AaveV4Avalanche.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_EMERGENCY_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + AaveV4Avalanche.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + AaveV4Avalanche.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_EMERGENCY_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + // the CAPO adapters behind the v4 price sources gate setCapParameters on the v3 ACL manager + AaveV3Avalanche.ACL_MANAGER.addRiskAdmin(RISK_STEWARD); + } + + function _riskStewardConfig() internal pure returns (IRiskStewardV4.Config memory) { + return + IRiskStewardV4.Config({ + hub: IRiskStewardV4.HubConfig({ + configurator: AaveV4Avalanche.HUB_CONFIGURATOR, + rate: IRiskStewardV4.HubRateConfig({ + optimalUsageRatio: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 3_00, + isChangeRelative: false + }), + baseDrawnRate: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 3_00, + isChangeRelative: false + }), + rateGrowthBeforeOptimal: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 3_00, + isChangeRelative: false + }), + rateGrowthAfterOptimal: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 20_00, + isChangeRelative: false + }) + }), + cap: IRiskStewardV4.HubCapConfig({ + addCap: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 100_00, + isChangeRelative: true + }), + drawCap: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 100_00, + isChangeRelative: true + }) + }) + }), + spoke: IRiskStewardV4.SpokeConfig({ + configurator: AaveV4Avalanche.SPOKE_CONFIGURATOR, + collateralRisk: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 300_00, + isChangeRelative: false + }), + dynamicUpdate: IRiskStewardV4.SpokeDynamicConfig({ + collateralFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: false + }), + maxLiquidationBonus: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: false + }) + }), + dynamicAdd: IRiskStewardV4.SpokeDynamicConfig({ + collateralFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: false + }), + maxLiquidationBonus: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: false + }) + }), + liquidation: IRiskStewardV4.SpokeLiquidationConfig({ + targetHealthFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: true + }), + healthFactorForMaxBonus: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: true + }), + liquidationBonusFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: false + }) + }) + }), + oracle: IRiskStewardV4.OracleConfig({ + priceCapLst: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: true + }), + priceCapStable: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: true + }), + discountRatePendle: IRiskStewardV4.RiskParamConfig({ + minDelay: 48 hours, + maxPercentChange: 0.025e18, + isChangeRelative: false + }) + }) + }); + } +} diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.t.sol b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.t.sol new file mode 100644 index 000000000..06b0924ce --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.t.sol @@ -0,0 +1,825 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import 'forge-std/Test.sol'; +import {GovV3Helpers} from 'aave-helpers/src/GovV3Helpers.sol'; +import {GovernanceV3Avalanche} from 'aave-address-book/GovernanceV3Avalanche.sol'; +import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol'; +import {AaveV4Avalanche, AaveV4AvalancheHubs, AaveV4AvalancheSpokes, AaveV4AvalancheSpokePriceFeeds, AaveV4AvalancheAssets} from 'aave-address-book/AaveV4Avalanche.sol'; +import {IAaveV4ConfigEngine as IConfigEngine, IHub, ISpoke} from 'aave-address-book/AaveV4.sol'; +import {EngineFlags} from 'aave-v4/config-engine/libraries/EngineFlags.sol'; +import {IAssetInterestRateStrategy} from 'aave-v4/hub/interfaces/IAssetInterestRateStrategy.sol'; +import {AaveV4ConfiguratorRoles} from './AaveV4ConfiguratorRoles.sol'; +import {IPriceCapAdapter} from 'src/interfaces/IPriceCapAdapter.sol'; +import {IPriceCapAdapterStable} from 'src/interfaces/IPriceCapAdapterStable.sol'; +import {IRiskSteward} from 'src/interfaces/IRiskSteward.sol'; +import {IRiskStewardV4} from 'src/interfaces/IRiskStewardV4.sol'; +import {ProtocolV4TestBaseAvalanche} from 'aave-helpers/src/v4-protocol-test/ProtocolV4TestBaseAvalanche.sol'; +import {AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807} from './AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.sol'; + +/** + * @dev Test for AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.t.sol -vv + */ +contract AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807_Test is ProtocolV4TestBaseAvalanche { + IHub internal constant CORE_HUB = AaveV4AvalancheHubs.CORE_HUB; + ISpoke internal constant MAIN_SPOKE = AaveV4AvalancheSpokes.MAIN_SPOKE; + address internal constant WAVAX = AaveV4AvalancheAssets.WAVAX_UNDERLYING; + // capped sAVAX / AVAX / USD, the price source of sAVAX on the AVAX correlated spoke + IPriceCapAdapter internal constant sAVAX_CAPO_ADAPTER = + IPriceCapAdapter(0xB2B332f27e4B7305649a228C31Ed9858c5a6bAD9); + IPriceCapAdapterStable internal constant USDC_CAPO_ADAPTER = + IPriceCapAdapterStable(AaveV4AvalancheSpokePriceFeeds.MAIN_SPOKE_USDC_PRICE_FEED); + + AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807 internal proposal; + IRiskStewardV4 internal steward; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('avalanche'), 92229650); + proposal = new AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807(); + steward = IRiskStewardV4(proposal.RISK_STEWARD()); + } + + modifier activated() { + GovV3Helpers.executePayload(vm, address(proposal)); + _; + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + * forge-config: default.isolate = true + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807', address(proposal)); + } + + function test_stewardOwnerAndCouncil() public view { + assertEq(steward.owner(), GovernanceV3Avalanche.EXECUTOR_LVL_1, 'owner mismatch'); + assertEq( + steward.RISK_COUNCIL(), + IRiskSteward(AaveV3Avalanche.RISK_STEWARD).RISK_COUNCIL(), + 'council diverges from the v3 risk steward' + ); + } + + function test_rolesGranted() public activated { + uint64[] memory granted = new uint64[](4); + granted[0] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE; + granted[1] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_EMERGENCY_ROLE; + granted[2] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE; + granted[3] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_EMERGENCY_ROLE; + + for (uint256 i; i < granted.length; ++i) { + (bool hasRole, uint32 delay) = AaveV4Avalanche.ACCESS_MANAGER.hasRole( + granted[i], + proposal.RISK_STEWARD() + ); + assertTrue(hasRole, string.concat('role not granted: ', vm.toString(granted[i]))); + assertEq(uint256(delay), 0, string.concat('role delay: ', vm.toString(granted[i]))); + } + + assertTrue( + AaveV3Avalanche.ACL_MANAGER.isRiskAdmin(proposal.RISK_STEWARD()), + 'risk admin role not granted' + ); + } + + /// @dev The steward is deliberately not given the flag, listing or domain admin roles. + function test_stewardNotGrantedRemainingRoles() public activated { + uint64[] memory withheld = new uint64[](8); + withheld[0] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE; + withheld[1] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE; + withheld[2] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_SPOKE_HALTED_ROLE; + withheld[3] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_LISTING_ROLE; + withheld[4] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE; + withheld[5] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_PAUSE_ROLE; + withheld[6] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_FREEZE_ROLE; + withheld[7] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_LISTING_ROLE; + + for (uint256 i; i < withheld.length; ++i) { + (bool hasRole, ) = AaveV4Avalanche.ACCESS_MANAGER.hasRole( + withheld[i], + proposal.RISK_STEWARD() + ); + assertFalse(hasRole, string.concat('role should be withheld: ', vm.toString(withheld[i]))); + } + } + + /// @dev Every selector of each new role must resolve to that role on its own configurator, and + /// the domain admin roles must be left holding only the residual selectors. + function test_configuratorSelectorsSplitAcrossRoles() public activated { + _assertHubRoleSelectors(AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE); + uint64[] memory hubRoles = AaveV4ConfiguratorRoles.hubRoles(); + for (uint256 i; i < hubRoles.length; ++i) { + _assertHubRoleSelectors(hubRoles[i]); + } + + _assertSpokeRoleSelectors(AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE); + uint64[] memory spokeRoles = AaveV4ConfiguratorRoles.spokeRoles(); + for (uint256 i; i < spokeRoles.length; ++i) { + _assertSpokeRoleSelectors(spokeRoles[i]); + } + } + + /// @dev The split above only proves each listed selector landed on its role. This proves the six + /// sets are exhaustive: a configurator function missing from the library would silently keep the + /// domain admin role instead of the granular one it belongs to. + function test_configuratorRolesCoverEverySelector() public activated { + bytes4[] memory hubSelectors = _interfaceSelectors('IHubConfigurator'); + for (uint256 i; i < hubSelectors.length; ++i) { + uint64 role = AaveV4Avalanche.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Avalanche.HUB_CONFIGURATOR), + hubSelectors[i] + ); + assertTrue( + _contains(AaveV4ConfiguratorRoles.hubSelectors(role), hubSelectors[i]), + string.concat('hub selector missing from the breakdown: ', vm.toString(hubSelectors[i])) + ); + } + + bytes4[] memory spokeSelectors = _interfaceSelectors('ISpokeConfigurator'); + for (uint256 i; i < spokeSelectors.length; ++i) { + uint64 role = AaveV4Avalanche.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Avalanche.SPOKE_CONFIGURATOR), + spokeSelectors[i] + ); + assertTrue( + _contains(AaveV4ConfiguratorRoles.spokeSelectors(role), spokeSelectors[i]), + string.concat('spoke selector missing from the breakdown: ', vm.toString(spokeSelectors[i])) + ); + } + } + + /// @dev Each address that held a domain admin role keeps the same reach through the new roles. + function test_domainAdminsCarriedOverToNewRoles() public { + address[] memory hubAdmins = _roleMembers( + AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE + ); + address[] memory spokeAdmins = _roleMembers( + AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE + ); + assertGt(hubAdmins.length, 0, 'no hub domain admin to carry over'); + assertGt(spokeAdmins.length, 0, 'no spoke domain admin to carry over'); + + GovV3Helpers.executePayload(vm, address(proposal)); + + _assertHoldsAll(hubAdmins, AaveV4ConfiguratorRoles.hubRoles()); + _assertHoldsAll(spokeAdmins, AaveV4ConfiguratorRoles.spokeRoles()); + } + + function test_newRolesLabeled() public activated { + string[10] memory labels = [ + 'HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE', + 'HUB_CONFIGURATOR_SPOKE_HALTED_ROLE', + 'HUB_CONFIGURATOR_LISTING_ROLE', + 'HUB_CONFIGURATOR_EMERGENCY_ROLE', + 'HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE', + 'SPOKE_CONFIGURATOR_PAUSE_ROLE', + 'SPOKE_CONFIGURATOR_FREEZE_ROLE', + 'SPOKE_CONFIGURATOR_LISTING_ROLE', + 'SPOKE_CONFIGURATOR_EMERGENCY_ROLE', + 'SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE' + ]; + uint64[] memory roles = new uint64[](10); + uint64[] memory hubRoles = AaveV4ConfiguratorRoles.hubRoles(); + uint64[] memory spokeRoles = AaveV4ConfiguratorRoles.spokeRoles(); + for (uint256 i; i < 5; ++i) { + roles[i] = hubRoles[i]; + roles[i + 5] = spokeRoles[i]; + } + + for (uint256 i; i < roles.length; ++i) { + assertEq( + AaveV4Avalanche.ACCESS_MANAGER.getLabelOfRole(roles[i]), + labels[i], + string.concat('label mismatch: ', vm.toString(roles[i])) + ); + assertEq( + uint256(AaveV4Avalanche.ACCESS_MANAGER.getRoleOfLabel(labels[i])), + uint256(roles[i]), + string.concat('reverse label mismatch: ', labels[i]) + ); + } + } + + function _assertHubRoleSelectors(uint64 role) internal view { + bytes4[] memory selectors = AaveV4ConfiguratorRoles.hubSelectors(role); + for (uint256 i; i < selectors.length; ++i) { + assertEq( + uint256( + AaveV4Avalanche.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Avalanche.HUB_CONFIGURATOR), + selectors[i] + ) + ), + uint256(role), + string.concat('hub selector role mismatch: ', vm.toString(role)) + ); + } + } + + function _assertSpokeRoleSelectors(uint64 role) internal view { + bytes4[] memory selectors = AaveV4ConfiguratorRoles.spokeSelectors(role); + for (uint256 i; i < selectors.length; ++i) { + assertEq( + uint256( + AaveV4Avalanche.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Avalanche.SPOKE_CONFIGURATOR), + selectors[i] + ) + ), + uint256(role), + string.concat('spoke selector role mismatch: ', vm.toString(role)) + ); + } + } + + /// @dev Reads the compiled ABI so the expected set comes from the interface, not from the library + /// under test. + function _interfaceSelectors(string memory name) internal view returns (bytes4[] memory) { + string memory path = string.concat('out/prague/', name, '.sol/', name, '.json'); + if (!vm.isFile(path)) path = string.concat('out/shanghai/', name, '.sol/', name, '.json'); + string[] memory signatures = vm.parseJsonKeys(vm.readFile(path), '.methodIdentifiers'); + assertGt(signatures.length, 0, string.concat('no methods found for ', name)); + + bytes4[] memory selectors = new bytes4[](signatures.length); + for (uint256 i; i < signatures.length; ++i) { + selectors[i] = bytes4(keccak256(bytes(signatures[i]))); + } + return selectors; + } + + function _contains(bytes4[] memory selectors, bytes4 selector) internal pure returns (bool) { + for (uint256 i; i < selectors.length; ++i) { + if (selectors[i] == selector) return true; + } + return false; + } + + function _roleMembers(uint64 role) internal view returns (address[] memory) { + uint256 count = AaveV4Avalanche.ACCESS_MANAGER.getRoleMemberCount(role); + address[] memory members = new address[](count); + for (uint256 i; i < count; ++i) { + members[i] = AaveV4Avalanche.ACCESS_MANAGER.getRoleMember(role, i); + } + return members; + } + + function _assertHoldsAll(address[] memory accounts, uint64[] memory roles) internal view { + for (uint256 i; i < accounts.length; ++i) { + for (uint256 j; j < roles.length; ++j) { + (bool hasRole, ) = AaveV4Avalanche.ACCESS_MANAGER.hasRole(roles[j], accounts[i]); + assertTrue( + hasRole, + string.concat(vm.toString(accounts[i]), ' missing role ', vm.toString(roles[j])) + ); + } + } + } + + function test_riskCouncilCanUpdateLstPriceCap() public activated { + uint16 growthBefore = uint16(sAVAX_CAPO_ADAPTER.getMaxYearlyGrowthRatePercent()); + uint16 growthAfter = growthBefore + growthBefore / 20; + IRiskStewardV4.PriceCapLstUpdate[] memory updates = _lstPriceCapUpdate(growthAfter); + address riskCouncil = steward.RISK_COUNCIL(); + + vm.prank(riskCouncil); + steward.updateLstPriceCaps(updates); + + assertEq( + sAVAX_CAPO_ADAPTER.getMaxYearlyGrowthRatePercent(), + growthAfter, + 'maxYearlyGrowthRatePercent not updated' + ); + } + + function test_riskCouncilCannotUpdateLstPriceCapAboveBound() public activated { + uint16 growthBefore = uint16(sAVAX_CAPO_ADAPTER.getMaxYearlyGrowthRatePercent()); + IRiskStewardV4.PriceCapLstUpdate[] memory updates = _lstPriceCapUpdate( + growthBefore + growthBefore / 20 + 1 + ); + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateLstPriceCaps(updates); + } + + function _lstPriceCapUpdate( + uint16 maxYearlyRatioGrowthPercent + ) internal view returns (IRiskStewardV4.PriceCapLstUpdate[] memory) { + IRiskStewardV4.PriceCapLstUpdate[] memory updates = new IRiskStewardV4.PriceCapLstUpdate[](1); + updates[0] = IRiskStewardV4.PriceCapLstUpdate({ + oracle: address(sAVAX_CAPO_ADAPTER), + priceCapUpdateParams: IPriceCapAdapter.PriceCapUpdateParams({ + snapshotRatio: uint104(uint256(sAVAX_CAPO_ADAPTER.getRatio())), + snapshotTimestamp: uint48(block.timestamp - sAVAX_CAPO_ADAPTER.MINIMUM_SNAPSHOT_DELAY()), + maxYearlyRatioGrowthPercent: maxYearlyRatioGrowthPercent + }) + }); + return updates; + } + + function test_riskStewardConfig() public activated { + _assertConfig(steward.getConfig()); + } + + /// @dev Covers the bounds LlamaRisk carried over from the v3 Risk Steward unchanged. The params + /// they widened (baseDrawnRate, rateGrowthBeforeOptimal, collateralRisk, the dynamicAdd bounds) + /// and those with no v3 counterpart are asserted in `_assertConfig` only. + function test_boundsMatchV3RiskSteward() public activated { + IRiskSteward.Config memory v3 = IRiskSteward(AaveV3Avalanche.RISK_STEWARD).getRiskConfig(); + IRiskStewardV4.Config memory v4 = steward.getConfig(); + + assertEq( + uint256(v4.hub.rate.optimalUsageRatio.maxPercentChange), + v3.rateConfig.optimalUsageRatio.maxPercentChange, + 'optimalUsageRatio bound' + ); + assertEq( + uint256(v4.hub.rate.rateGrowthAfterOptimal.maxPercentChange), + v3.rateConfig.variableRateSlope2.maxPercentChange, + 'rateGrowthAfterOptimal bound' + ); + assertEq( + uint256(v4.hub.cap.addCap.maxPercentChange), + v3.capConfig.supplyCap.maxPercentChange, + 'addCap bound' + ); + assertEq( + uint256(v4.hub.cap.drawCap.maxPercentChange), + v3.capConfig.borrowCap.maxPercentChange, + 'drawCap bound' + ); + assertEq( + uint256(v4.spoke.dynamicUpdate.collateralFactor.maxPercentChange), + v3.collateralConfig.ltv.maxPercentChange, + 'collateralFactor bound' + ); + assertEq( + uint256(v4.spoke.dynamicUpdate.maxLiquidationBonus.maxPercentChange), + v3.collateralConfig.liquidationBonus.maxPercentChange, + 'maxLiquidationBonus bound' + ); + assertEq( + uint256(v4.oracle.priceCapLst.maxPercentChange), + v3.priceCapConfig.priceCapLst.maxPercentChange, + 'priceCapLst bound' + ); + assertEq( + uint256(v4.oracle.priceCapStable.maxPercentChange), + v3.priceCapConfig.priceCapStable.maxPercentChange, + 'priceCapStable bound' + ); + assertEq( + uint256(v4.oracle.discountRatePendle.maxPercentChange), + v3.priceCapConfig.discountRatePendle.maxPercentChange, + 'discountRatePendle bound' + ); + assertEq( + uint256(v4.oracle.discountRatePendle.minDelay), + uint256(v3.priceCapConfig.discountRatePendle.minDelay), + 'discountRatePendle cooldown' + ); + } + + function test_riskCouncilCanUpdateHubAssetIRs() public activated { + IAssetInterestRateStrategy.InterestRateData memory expected = _currentIrData(); + expected.optimalUsageRatio += 3_00; + expected.baseDrawnRate += 3_00; + expected.rateGrowthBeforeOptimal += 3_00; + expected.rateGrowthAfterOptimal += 20_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateHubAssetIRs(_irUpdate(expected)); + + IAssetInterestRateStrategy.InterestRateData memory current = _currentIrData(); + assertEq( + current.optimalUsageRatio, + expected.optimalUsageRatio, + 'optimalUsageRatio not updated' + ); + assertEq(current.baseDrawnRate, expected.baseDrawnRate, 'baseDrawnRate not updated'); + assertEq( + current.rateGrowthBeforeOptimal, + expected.rateGrowthBeforeOptimal, + 'rateGrowthBeforeOptimal not updated' + ); + assertEq( + current.rateGrowthAfterOptimal, + expected.rateGrowthAfterOptimal, + 'rateGrowthAfterOptimal not updated' + ); + } + + function test_riskCouncilCannotUpdateHubAssetIRsAboveBound() public activated { + IAssetInterestRateStrategy.InterestRateData memory outOfRange = _currentIrData(); + outOfRange.optimalUsageRatio += 3_00 + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateHubAssetIRs(_irUpdate(outOfRange)); + } + + function test_riskCouncilCanUpdateHubSpokeCaps() public activated { + uint256 assetId = CORE_HUB.getAssetId(WAVAX); + IHub.SpokeConfig memory before = CORE_HUB.getSpokeConfig(assetId, address(MAIN_SPOKE)); + uint256 addCap = 2 * uint256(before.addCap); + uint256 drawCap = 2 * uint256(before.drawCap); + + vm.prank(steward.RISK_COUNCIL()); + steward.updateHubSpokeCaps(_capsUpdate(addCap, drawCap)); + + IHub.SpokeConfig memory current = CORE_HUB.getSpokeConfig(assetId, address(MAIN_SPOKE)); + assertEq(uint256(current.addCap), addCap, 'addCap not updated'); + assertEq(uint256(current.drawCap), drawCap, 'drawCap not updated'); + } + + function test_riskCouncilCannotUpdateHubSpokeCapsAboveBound() public activated { + uint256 assetId = CORE_HUB.getAssetId(WAVAX); + uint256 addCapBefore = CORE_HUB.getSpokeConfig(assetId, address(MAIN_SPOKE)).addCap; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateHubSpokeCaps(_capsUpdate(2 * addCapBefore + 1, EngineFlags.KEEP_CURRENT)); + } + + function test_riskCouncilCanUpdateReserveConfigs() public activated { + uint256 reserveId = _reserveId(); + uint256 collateralRisk = uint256(MAIN_SPOKE.getReserveConfig(reserveId).collateralRisk) + + 300_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateReserveConfigs(_reserveConfigUpdate(collateralRisk)); + + assertEq( + uint256(MAIN_SPOKE.getReserveConfig(reserveId).collateralRisk), + collateralRisk, + 'collateralRisk not updated' + ); + } + + function test_riskCouncilCannotUpdateReserveConfigsAboveBound() public activated { + uint256 collateralRisk = uint256(MAIN_SPOKE.getReserveConfig(_reserveId()).collateralRisk) + + 300_00 + + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateReserveConfigs(_reserveConfigUpdate(collateralRisk)); + } + + function test_riskCouncilCanUpdateDynamicReserveConfigs() public activated { + uint256 reserveId = _reserveId(); + uint32 key = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + ISpoke.DynamicReserveConfig memory before = MAIN_SPOKE.getDynamicReserveConfig(reserveId, key); + uint256 collateralFactor = uint256(before.collateralFactor) + 50; + uint256 maxLiquidationBonus = uint256(before.maxLiquidationBonus) + 50; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateDynamicReserveConfigs( + _dynamicReserveConfigUpdate(key, collateralFactor, maxLiquidationBonus) + ); + + ISpoke.DynamicReserveConfig memory current = MAIN_SPOKE.getDynamicReserveConfig(reserveId, key); + assertEq(uint256(current.collateralFactor), collateralFactor, 'collateralFactor not updated'); + assertEq( + uint256(current.maxLiquidationBonus), + maxLiquidationBonus, + 'maxLiquidationBonus not updated' + ); + } + + function test_riskCouncilCannotUpdateDynamicReserveConfigsAboveBound() public activated { + uint256 reserveId = _reserveId(); + uint32 key = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + uint256 collateralFactor = uint256( + MAIN_SPOKE.getDynamicReserveConfig(reserveId, key).collateralFactor + ) + + 50 + + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateDynamicReserveConfigs( + _dynamicReserveConfigUpdate(key, collateralFactor, EngineFlags.KEEP_CURRENT) + ); + } + + function test_riskCouncilCanAddDynamicReserveConfigs() public activated { + uint256 reserveId = _reserveId(); + uint32 keyBefore = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + ISpoke.DynamicReserveConfig memory added = MAIN_SPOKE.getDynamicReserveConfig( + reserveId, + keyBefore + ); + added.collateralFactor += 5_00; + added.maxLiquidationBonus += 50; + + vm.prank(steward.RISK_COUNCIL()); + steward.addDynamicReserveConfigs(_dynamicReserveConfigAddition(added)); + + uint32 keyAfter = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + assertEq(uint256(keyAfter), uint256(keyBefore) + 1, 'dynamic config key not bumped'); + + ISpoke.DynamicReserveConfig memory current = MAIN_SPOKE.getDynamicReserveConfig( + reserveId, + keyAfter + ); + assertEq( + uint256(current.collateralFactor), + uint256(added.collateralFactor), + 'collateralFactor not added' + ); + assertEq( + uint256(current.maxLiquidationBonus), + uint256(added.maxLiquidationBonus), + 'maxLiquidationBonus not added' + ); + } + + function test_riskCouncilCannotAddDynamicReserveConfigsAboveBound() public activated { + uint256 reserveId = _reserveId(); + uint32 key = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + address riskCouncil = steward.RISK_COUNCIL(); + + ISpoke.DynamicReserveConfig memory outOfRange = MAIN_SPOKE.getDynamicReserveConfig( + reserveId, + key + ); + outOfRange.collateralFactor += 5_00 + 1; + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.addDynamicReserveConfigs(_dynamicReserveConfigAddition(outOfRange)); + + outOfRange = MAIN_SPOKE.getDynamicReserveConfig(reserveId, key); + outOfRange.maxLiquidationBonus += 50 + 1; + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.addDynamicReserveConfigs(_dynamicReserveConfigAddition(outOfRange)); + } + + function test_riskCouncilCanUpdateSpokeLiquidationConfigs() public activated { + ISpoke.LiquidationConfig memory before = MAIN_SPOKE.getLiquidationConfig(); + uint256 targetHealthFactor = uint256(before.targetHealthFactor) + + (uint256(before.targetHealthFactor) * 5_00) / + 100_00; + uint256 healthFactorForMaxBonus = uint256(before.healthFactorForMaxBonus) + + (uint256(before.healthFactorForMaxBonus) * 5_00) / + 100_00; + uint256 liquidationBonusFactor = uint256(before.liquidationBonusFactor) + 5_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateSpokeLiquidationConfigs( + _liquidationConfigUpdate(targetHealthFactor, healthFactorForMaxBonus, liquidationBonusFactor) + ); + + ISpoke.LiquidationConfig memory current = MAIN_SPOKE.getLiquidationConfig(); + assertEq( + uint256(current.targetHealthFactor), + targetHealthFactor, + 'targetHealthFactor not updated' + ); + assertEq( + uint256(current.healthFactorForMaxBonus), + healthFactorForMaxBonus, + 'healthFactorForMaxBonus not updated' + ); + assertEq( + uint256(current.liquidationBonusFactor), + liquidationBonusFactor, + 'liquidationBonusFactor not updated' + ); + } + + function test_riskCouncilCannotUpdateSpokeLiquidationConfigsAboveBound() public activated { + uint256 targetHealthFactorBefore = MAIN_SPOKE.getLiquidationConfig().targetHealthFactor; + uint256 targetHealthFactor = targetHealthFactorBefore + + (targetHealthFactorBefore * 5_00) / + 100_00 + + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateSpokeLiquidationConfigs( + _liquidationConfigUpdate( + targetHealthFactor, + EngineFlags.KEEP_CURRENT, + EngineFlags.KEEP_CURRENT + ) + ); + } + + function test_riskCouncilCanUpdateStablePriceCap() public activated { + uint256 priceCapBefore = uint256(USDC_CAPO_ADAPTER.getPriceCap()); + uint256 priceCap = priceCapBefore + (priceCapBefore * 50) / 100_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateStablePriceCaps(_stablePriceCapUpdate(priceCap)); + + assertEq(uint256(USDC_CAPO_ADAPTER.getPriceCap()), priceCap, 'priceCap not updated'); + } + + function test_riskCouncilCannotUpdateStablePriceCapAboveBound() public activated { + uint256 priceCapBefore = uint256(USDC_CAPO_ADAPTER.getPriceCap()); + uint256 priceCap = priceCapBefore + (priceCapBefore * 50) / 100_00 + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateStablePriceCaps(_stablePriceCapUpdate(priceCap)); + } + + function _reserveId() internal view returns (uint256) { + return MAIN_SPOKE.getReserveId(address(CORE_HUB), CORE_HUB.getAssetId(WAVAX)); + } + + function _currentIrData() + internal + view + returns (IAssetInterestRateStrategy.InterestRateData memory) + { + uint256 assetId = CORE_HUB.getAssetId(WAVAX); + return + IAssetInterestRateStrategy(CORE_HUB.getAssetConfig(assetId).irStrategy).getInterestRateData( + assetId + ); + } + + function _irUpdate( + IAssetInterestRateStrategy.InterestRateData memory irData + ) internal pure returns (IConfigEngine.AssetConfigUpdate[] memory) { + IConfigEngine.AssetConfigUpdate[] memory updates = new IConfigEngine.AssetConfigUpdate[](1); + updates[0] = IConfigEngine.AssetConfigUpdate({ + hubConfigurator: AaveV4Avalanche.HUB_CONFIGURATOR, + hub: address(CORE_HUB), + underlying: WAVAX, + liquidityFee: EngineFlags.KEEP_CURRENT, + feeReceiver: EngineFlags.KEEP_CURRENT_ADDRESS, + irStrategy: EngineFlags.KEEP_CURRENT_ADDRESS, + irData: irData, + reinvestmentController: EngineFlags.KEEP_CURRENT_ADDRESS + }); + return updates; + } + + function _capsUpdate( + uint256 addCap, + uint256 drawCap + ) internal pure returns (IConfigEngine.SpokeConfigUpdate[] memory) { + IConfigEngine.SpokeConfigUpdate[] memory updates = new IConfigEngine.SpokeConfigUpdate[](1); + updates[0] = IConfigEngine.SpokeConfigUpdate({ + hubConfigurator: AaveV4Avalanche.HUB_CONFIGURATOR, + hub: address(CORE_HUB), + underlying: WAVAX, + spoke: address(MAIN_SPOKE), + addCap: addCap, + drawCap: drawCap, + riskPremiumThreshold: EngineFlags.KEEP_CURRENT, + active: EngineFlags.KEEP_CURRENT, + halted: EngineFlags.KEEP_CURRENT + }); + return updates; + } + + function _reserveConfigUpdate( + uint256 collateralRisk + ) internal pure returns (IConfigEngine.ReserveConfigUpdate[] memory) { + IConfigEngine.ReserveConfigUpdate[] memory updates = new IConfigEngine.ReserveConfigUpdate[](1); + updates[0] = IConfigEngine.ReserveConfigUpdate({ + spokeConfigurator: AaveV4Avalanche.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + hub: address(CORE_HUB), + underlying: WAVAX, + priceSource: EngineFlags.KEEP_CURRENT_ADDRESS, + collateralRisk: collateralRisk, + paused: EngineFlags.KEEP_CURRENT, + frozen: EngineFlags.KEEP_CURRENT, + borrowable: EngineFlags.KEEP_CURRENT, + receiveSharesEnabled: EngineFlags.KEEP_CURRENT + }); + return updates; + } + + function _dynamicReserveConfigUpdate( + uint32 dynamicConfigKey, + uint256 collateralFactor, + uint256 maxLiquidationBonus + ) internal pure returns (IConfigEngine.DynamicReserveConfigUpdate[] memory) { + IConfigEngine.DynamicReserveConfigUpdate[] + memory updates = new IConfigEngine.DynamicReserveConfigUpdate[](1); + updates[0] = IConfigEngine.DynamicReserveConfigUpdate({ + spokeConfigurator: AaveV4Avalanche.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + hub: address(CORE_HUB), + underlying: WAVAX, + dynamicConfigKey: dynamicConfigKey, + collateralFactor: collateralFactor, + maxLiquidationBonus: maxLiquidationBonus, + liquidationFee: EngineFlags.KEEP_CURRENT + }); + return updates; + } + + function _dynamicReserveConfigAddition( + ISpoke.DynamicReserveConfig memory dynamicConfig + ) internal pure returns (IConfigEngine.DynamicReserveConfigAddition[] memory) { + IConfigEngine.DynamicReserveConfigAddition[] + memory additions = new IConfigEngine.DynamicReserveConfigAddition[](1); + additions[0] = IConfigEngine.DynamicReserveConfigAddition({ + spokeConfigurator: AaveV4Avalanche.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + hub: address(CORE_HUB), + underlying: WAVAX, + dynamicConfig: dynamicConfig + }); + return additions; + } + + function _liquidationConfigUpdate( + uint256 targetHealthFactor, + uint256 healthFactorForMaxBonus, + uint256 liquidationBonusFactor + ) internal pure returns (IConfigEngine.LiquidationConfigUpdate[] memory) { + IConfigEngine.LiquidationConfigUpdate[] + memory updates = new IConfigEngine.LiquidationConfigUpdate[](1); + updates[0] = IConfigEngine.LiquidationConfigUpdate({ + spokeConfigurator: AaveV4Avalanche.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + targetHealthFactor: targetHealthFactor, + healthFactorForMaxBonus: healthFactorForMaxBonus, + liquidationBonusFactor: liquidationBonusFactor + }); + return updates; + } + + function _stablePriceCapUpdate( + uint256 priceCap + ) internal pure returns (IRiskStewardV4.PriceCapStableUpdate[] memory) { + IRiskStewardV4.PriceCapStableUpdate[] + memory updates = new IRiskStewardV4.PriceCapStableUpdate[](1); + updates[0] = IRiskStewardV4.PriceCapStableUpdate({ + oracle: address(USDC_CAPO_ADAPTER), + priceCap: priceCap + }); + return updates; + } + + function _assertConfig(IRiskStewardV4.Config memory config) internal pure { + assertEq( + address(config.hub.configurator), + address(AaveV4Avalanche.HUB_CONFIGURATOR), + 'hub configurator mismatch' + ); + assertEq( + address(config.spoke.configurator), + address(AaveV4Avalanche.SPOKE_CONFIGURATOR), + 'spoke configurator mismatch' + ); + + // prettier-ignore + { + // param minDelay maxChange relative label + _assertParam(config.hub.rate.optimalUsageRatio, 36 hours, 3_00, false, 'optimalUsageRatio'); + _assertParam(config.hub.rate.baseDrawnRate, 36 hours, 3_00, false, 'baseDrawnRate'); + _assertParam(config.hub.rate.rateGrowthBeforeOptimal, 36 hours, 3_00, false, 'rateGrowthBeforeOptimal'); + _assertParam(config.hub.rate.rateGrowthAfterOptimal, 36 hours, 20_00, false, 'rateGrowthAfterOptimal'); + _assertParam(config.hub.cap.addCap, 36 hours, 100_00, true, 'addCap'); + _assertParam(config.hub.cap.drawCap, 36 hours, 100_00, true, 'drawCap'); + _assertParam(config.spoke.collateralRisk, 36 hours, 300_00, false, 'collateralRisk'); + _assertParam(config.spoke.dynamicUpdate.collateralFactor, 72 hours, 50, false, 'dynamicUpdate collateralFactor'); + _assertParam(config.spoke.dynamicUpdate.maxLiquidationBonus, 72 hours, 50, false, 'dynamicUpdate maxLiquidationBonus'); + _assertParam(config.spoke.dynamicAdd.collateralFactor, 72 hours, 5_00, false, 'dynamicAdd collateralFactor'); + _assertParam(config.spoke.dynamicAdd.maxLiquidationBonus, 72 hours, 50, false, 'dynamicAdd maxLiquidationBonus'); + _assertParam(config.spoke.liquidation.targetHealthFactor, 72 hours, 5_00, true, 'targetHealthFactor'); + _assertParam(config.spoke.liquidation.healthFactorForMaxBonus,72 hours, 5_00, true, 'healthFactorForMaxBonus'); + _assertParam(config.spoke.liquidation.liquidationBonusFactor, 72 hours, 5_00, false, 'liquidationBonusFactor'); + _assertParam(config.oracle.priceCapLst, 72 hours, 5_00, true, 'priceCapLst'); + _assertParam(config.oracle.priceCapStable, 72 hours, 50, true, 'priceCapStable'); + _assertParam(config.oracle.discountRatePendle, 48 hours, 0.025e18, false, 'discountRatePendle'); + } + } + + function _assertParam( + IRiskStewardV4.RiskParamConfig memory param, + uint256 minDelay, + uint256 maxPercentChange, + bool isChangeRelative, + string memory label + ) internal pure { + assertEq(uint256(param.minDelay), minDelay, string.concat(label, ' minDelay')); + assertEq( + uint256(param.maxPercentChange), + maxPercentChange, + string.concat(label, ' maxPercentChange') + ); + assertEq(param.isChangeRelative, isChangeRelative, string.concat(label, ' isChangeRelative')); + } +} diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4ConfiguratorRoles.sol b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4ConfiguratorRoles.sol new file mode 100644 index 000000000..a921302b7 --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4ConfiguratorRoles.sol @@ -0,0 +1,235 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IAccessManagerEnumerable, IHubConfigurator, ISpokeConfigurator} from 'aave-address-book/AaveV4.sol'; + +/** + * @title AaveV4ConfiguratorRoles + * @author Aave Labs + * @notice Breaks the two configurator domain admin roles down into five granular roles each. + * Mirrors the role IDs and selector sets of `aave-v4/deployments/utils/libraries/Roles.sol`; + * they are restated here because the version of that library this repo builds against + * predates the breakdown. + * @dev A role never spans both configurators, so Hub and Spoke access is always granted separately. + */ +library AaveV4ConfiguratorRoles { + uint64 internal constant HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE = 200; + uint64 internal constant HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE = 201; + uint64 internal constant HUB_CONFIGURATOR_SPOKE_HALTED_ROLE = 202; + uint64 internal constant HUB_CONFIGURATOR_LISTING_ROLE = 203; + uint64 internal constant HUB_CONFIGURATOR_EMERGENCY_ROLE = 204; + uint64 internal constant HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE = 205; + + uint64 internal constant SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE = 400; + uint64 internal constant SPOKE_CONFIGURATOR_PAUSE_ROLE = 401; + uint64 internal constant SPOKE_CONFIGURATOR_FREEZE_ROLE = 402; + uint64 internal constant SPOKE_CONFIGURATOR_LISTING_ROLE = 403; + uint64 internal constant SPOKE_CONFIGURATOR_EMERGENCY_ROLE = 404; + uint64 internal constant SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE = 405; + + /// @notice Labels the ten new roles, moves their selectors off the domain admin roles and carries + /// every current domain admin holder over to them. + /// @dev `setTargetFunctionRole` overwrites the selector mapping, so each reassignment removes the + /// selector from the domain admin role. The domain admin roles keep the selectors that are + /// never reassigned: the Hub fee and strategy configuration plus the batch cap resets, and + /// the Spoke reserve price source and position managers. + /// @param accessManager The AccessManager governing both configurators. + /// @param hubConfigurator The HubConfigurator whose selectors are split. + /// @param spokeConfigurator The SpokeConfigurator whose selectors are split. + function breakDownDomainAdminRoles( + IAccessManagerEnumerable accessManager, + IHubConfigurator hubConfigurator, + ISpokeConfigurator spokeConfigurator + ) internal { + _labelRoles(accessManager); + _splitHubSelectors(accessManager, address(hubConfigurator)); + _splitSpokeSelectors(accessManager, address(spokeConfigurator)); + _carryOverDomainAdmins(accessManager, HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE, hubRoles()); + _carryOverDomainAdmins(accessManager, SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE, spokeRoles()); + } + + /// @notice Returns the five new HubConfigurator roles. + function hubRoles() internal pure returns (uint64[] memory) { + uint64[] memory roles = new uint64[](5); + roles[0] = HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE; + roles[1] = HUB_CONFIGURATOR_SPOKE_HALTED_ROLE; + roles[2] = HUB_CONFIGURATOR_LISTING_ROLE; + roles[3] = HUB_CONFIGURATOR_EMERGENCY_ROLE; + roles[4] = HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE; + return roles; + } + + /// @notice Returns the five new SpokeConfigurator roles. + function spokeRoles() internal pure returns (uint64[] memory) { + uint64[] memory roles = new uint64[](5); + roles[0] = SPOKE_CONFIGURATOR_PAUSE_ROLE; + roles[1] = SPOKE_CONFIGURATOR_FREEZE_ROLE; + roles[2] = SPOKE_CONFIGURATOR_LISTING_ROLE; + roles[3] = SPOKE_CONFIGURATOR_EMERGENCY_ROLE; + roles[4] = SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE; + return roles; + } + + /// @notice Returns the selectors of the given HubConfigurator role, domain admin included. + function hubSelectors(uint64 role) internal pure returns (bytes4[] memory) { + if (role == HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE) { + bytes4[] memory selectors = new bytes4[](7); + selectors[0] = IHubConfigurator.updateLiquidityFee.selector; + selectors[1] = IHubConfigurator.updateFeeReceiver.selector; + selectors[2] = IHubConfigurator.updateFeeConfig.selector; + selectors[3] = IHubConfigurator.updateInterestRateStrategy.selector; + selectors[4] = IHubConfigurator.updateReinvestmentController.selector; + selectors[5] = IHubConfigurator.resetAssetCaps.selector; + selectors[6] = IHubConfigurator.resetSpokeCaps.selector; + return selectors; + } + if (role == HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE) { + bytes4[] memory selectors = new bytes4[](1); + selectors[0] = IHubConfigurator.updateSpokeActive.selector; + return selectors; + } + if (role == HUB_CONFIGURATOR_SPOKE_HALTED_ROLE) { + bytes4[] memory selectors = new bytes4[](1); + selectors[0] = IHubConfigurator.updateSpokeHalted.selector; + return selectors; + } + if (role == HUB_CONFIGURATOR_LISTING_ROLE) { + bytes4[] memory selectors = new bytes4[](4); + selectors[0] = IHubConfigurator.addAsset.selector; + selectors[1] = IHubConfigurator.addAssetWithDecimals.selector; + selectors[2] = IHubConfigurator.addSpoke.selector; + selectors[3] = IHubConfigurator.addSpokeToAssets.selector; + return selectors; + } + if (role == HUB_CONFIGURATOR_EMERGENCY_ROLE) { + bytes4[] memory selectors = new bytes4[](4); + selectors[0] = IHubConfigurator.deactivateAsset.selector; + selectors[1] = IHubConfigurator.haltAsset.selector; + selectors[2] = IHubConfigurator.deactivateSpoke.selector; + selectors[3] = IHubConfigurator.haltSpoke.selector; + return selectors; + } + bytes4[] memory riskSelectors = new bytes4[](5); + riskSelectors[0] = IHubConfigurator.updateSpokeAddCap.selector; + riskSelectors[1] = IHubConfigurator.updateSpokeDrawCap.selector; + riskSelectors[2] = IHubConfigurator.updateSpokeCaps.selector; + riskSelectors[3] = IHubConfigurator.updateSpokeRiskPremiumThreshold.selector; + riskSelectors[4] = IHubConfigurator.updateInterestRateData.selector; + return riskSelectors; + } + + /// @notice Returns the selectors of the given SpokeConfigurator role, domain admin included. + function spokeSelectors(uint64 role) internal pure returns (bytes4[] memory) { + if (role == SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE) { + bytes4[] memory selectors = new bytes4[](2); + selectors[0] = ISpokeConfigurator.updateReservePriceSource.selector; + selectors[1] = ISpokeConfigurator.updatePositionManager.selector; + return selectors; + } + if (role == SPOKE_CONFIGURATOR_PAUSE_ROLE) { + bytes4[] memory selectors = new bytes4[](1); + selectors[0] = ISpokeConfigurator.updatePaused.selector; + return selectors; + } + if (role == SPOKE_CONFIGURATOR_FREEZE_ROLE) { + bytes4[] memory selectors = new bytes4[](1); + selectors[0] = ISpokeConfigurator.updateFrozen.selector; + return selectors; + } + if (role == SPOKE_CONFIGURATOR_LISTING_ROLE) { + bytes4[] memory selectors = new bytes4[](3); + selectors[0] = ISpokeConfigurator.addReserve.selector; + selectors[1] = ISpokeConfigurator.updateBorrowable.selector; + selectors[2] = ISpokeConfigurator.updateReceiveSharesEnabled.selector; + return selectors; + } + if (role == SPOKE_CONFIGURATOR_EMERGENCY_ROLE) { + bytes4[] memory selectors = new bytes4[](4); + selectors[0] = ISpokeConfigurator.pauseReserve.selector; + selectors[1] = ISpokeConfigurator.pauseAllReserves.selector; + selectors[2] = ISpokeConfigurator.freezeReserve.selector; + selectors[3] = ISpokeConfigurator.freezeAllReserves.selector; + return selectors; + } + bytes4[] memory riskSelectors = new bytes4[](13); + riskSelectors[0] = ISpokeConfigurator.updateCollateralRisk.selector; + riskSelectors[1] = ISpokeConfigurator.addCollateralFactor.selector; + riskSelectors[2] = ISpokeConfigurator.updateCollateralFactor.selector; + riskSelectors[3] = ISpokeConfigurator.addMaxLiquidationBonus.selector; + riskSelectors[4] = ISpokeConfigurator.updateMaxLiquidationBonus.selector; + riskSelectors[5] = ISpokeConfigurator.addLiquidationFee.selector; + riskSelectors[6] = ISpokeConfigurator.updateLiquidationFee.selector; + riskSelectors[7] = ISpokeConfigurator.addDynamicReserveConfig.selector; + riskSelectors[8] = ISpokeConfigurator.updateDynamicReserveConfig.selector; + riskSelectors[9] = ISpokeConfigurator.updateLiquidationTargetHealthFactor.selector; + riskSelectors[10] = ISpokeConfigurator.updateHealthFactorForMaxBonus.selector; + riskSelectors[11] = ISpokeConfigurator.updateLiquidationBonusFactor.selector; + riskSelectors[12] = ISpokeConfigurator.updateLiquidationConfig.selector; + return riskSelectors; + } + + function _labelRoles(IAccessManagerEnumerable accessManager) private { + accessManager.labelRole( + HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE, + 'HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE' + ); + accessManager.labelRole( + HUB_CONFIGURATOR_SPOKE_HALTED_ROLE, + 'HUB_CONFIGURATOR_SPOKE_HALTED_ROLE' + ); + accessManager.labelRole(HUB_CONFIGURATOR_LISTING_ROLE, 'HUB_CONFIGURATOR_LISTING_ROLE'); + accessManager.labelRole(HUB_CONFIGURATOR_EMERGENCY_ROLE, 'HUB_CONFIGURATOR_EMERGENCY_ROLE'); + accessManager.labelRole( + HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE, + 'HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE' + ); + accessManager.labelRole(SPOKE_CONFIGURATOR_PAUSE_ROLE, 'SPOKE_CONFIGURATOR_PAUSE_ROLE'); + accessManager.labelRole(SPOKE_CONFIGURATOR_FREEZE_ROLE, 'SPOKE_CONFIGURATOR_FREEZE_ROLE'); + accessManager.labelRole(SPOKE_CONFIGURATOR_LISTING_ROLE, 'SPOKE_CONFIGURATOR_LISTING_ROLE'); + accessManager.labelRole(SPOKE_CONFIGURATOR_EMERGENCY_ROLE, 'SPOKE_CONFIGURATOR_EMERGENCY_ROLE'); + accessManager.labelRole( + SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE, + 'SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE' + ); + } + + function _splitHubSelectors( + IAccessManagerEnumerable accessManager, + address hubConfigurator + ) private { + uint64[] memory roles = hubRoles(); + for (uint256 i; i < roles.length; ++i) { + accessManager.setTargetFunctionRole(hubConfigurator, hubSelectors(roles[i]), roles[i]); + } + } + + function _splitSpokeSelectors( + IAccessManagerEnumerable accessManager, + address spokeConfigurator + ) private { + uint64[] memory roles = spokeRoles(); + for (uint256 i; i < roles.length; ++i) { + accessManager.setTargetFunctionRole(spokeConfigurator, spokeSelectors(roles[i]), roles[i]); + } + } + + /// @dev Snapshots the domain admin holders before granting, so the loop is not affected by the + /// membership writes it performs. + function _carryOverDomainAdmins( + IAccessManagerEnumerable accessManager, + uint64 domainAdminRole, + uint64[] memory roles + ) private { + uint256 holderCount = accessManager.getRoleMemberCount(domainAdminRole); + address[] memory holders = new address[](holderCount); + for (uint256 i; i < holderCount; ++i) { + holders[i] = accessManager.getRoleMember(domainAdminRole, i); + } + + for (uint256 i; i < holders.length; ++i) { + for (uint256 j; j < roles.length; ++j) { + accessManager.grantRole({roleId: roles[j], account: holders[i], executionDelay: 0}); + } + } + } +} diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.sol b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.sol new file mode 100644 index 000000000..44476e05b --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.sol @@ -0,0 +1,165 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IProposalGenericExecutor} from 'aave-helpers/src/interfaces/IProposalGenericExecutor.sol'; +import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; +import {AaveV4Ethereum} from 'aave-address-book/AaveV4Ethereum.sol'; +import {IRiskStewardV4} from 'src/interfaces/IRiskStewardV4.sol'; +import {AaveV4ConfiguratorRoles} from './AaveV4ConfiguratorRoles.sol'; + +/** + * @title AaveV4RiskStewardsActivation + * @author Aave Labs + * - Snapshot: TODO + * - Discussion: https://governance.aave.com/t/arfc-activate-aave-risk-stewards-on-aave-v4/25510 + */ +contract AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807 is IProposalGenericExecutor { + // https://etherscan.io/address/0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1 + address public constant RISK_STEWARD = 0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1; + + function execute() external override { + AaveV4ConfiguratorRoles.breakDownDomainAdminRoles( + AaveV4Ethereum.ACCESS_MANAGER, + AaveV4Ethereum.HUB_CONFIGURATOR, + AaveV4Ethereum.SPOKE_CONFIGURATOR + ); + _grantRoles(); + IRiskStewardV4(RISK_STEWARD).setConfig(_riskStewardConfig()); + } + + /// @dev The steward only needs risk management to run its own entrypoints; emergency is granted + /// alongside it so it can also de-risk without a new proposal. + function _grantRoles() internal { + AaveV4Ethereum.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + AaveV4Ethereum.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_EMERGENCY_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + AaveV4Ethereum.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + AaveV4Ethereum.ACCESS_MANAGER.grantRole({ + roleId: AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_EMERGENCY_ROLE, + account: RISK_STEWARD, + executionDelay: 0 + }); + // the CAPO adapters behind the v4 price sources gate setCapParameters on the v3 ACL manager + AaveV3Ethereum.ACL_MANAGER.addRiskAdmin(RISK_STEWARD); + } + + function _riskStewardConfig() internal pure returns (IRiskStewardV4.Config memory) { + return + IRiskStewardV4.Config({ + hub: IRiskStewardV4.HubConfig({ + configurator: AaveV4Ethereum.HUB_CONFIGURATOR, + rate: IRiskStewardV4.HubRateConfig({ + optimalUsageRatio: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 3_00, + isChangeRelative: false + }), + baseDrawnRate: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 3_00, + isChangeRelative: false + }), + rateGrowthBeforeOptimal: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 3_00, + isChangeRelative: false + }), + rateGrowthAfterOptimal: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 20_00, + isChangeRelative: false + }) + }), + cap: IRiskStewardV4.HubCapConfig({ + addCap: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 100_00, + isChangeRelative: true + }), + drawCap: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 100_00, + isChangeRelative: true + }) + }) + }), + spoke: IRiskStewardV4.SpokeConfig({ + configurator: AaveV4Ethereum.SPOKE_CONFIGURATOR, + collateralRisk: IRiskStewardV4.RiskParamConfig({ + minDelay: 36 hours, + maxPercentChange: 300_00, + isChangeRelative: false + }), + dynamicUpdate: IRiskStewardV4.SpokeDynamicConfig({ + collateralFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: false + }), + maxLiquidationBonus: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: false + }) + }), + dynamicAdd: IRiskStewardV4.SpokeDynamicConfig({ + collateralFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: false + }), + maxLiquidationBonus: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: false + }) + }), + liquidation: IRiskStewardV4.SpokeLiquidationConfig({ + targetHealthFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: true + }), + healthFactorForMaxBonus: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: true + }), + liquidationBonusFactor: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: false + }) + }) + }), + oracle: IRiskStewardV4.OracleConfig({ + priceCapLst: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 5_00, + isChangeRelative: true + }), + priceCapStable: IRiskStewardV4.RiskParamConfig({ + minDelay: 72 hours, + maxPercentChange: 50, + isChangeRelative: true + }), + discountRatePendle: IRiskStewardV4.RiskParamConfig({ + minDelay: 48 hours, + maxPercentChange: 0.025e18, + isChangeRelative: false + }) + }) + }); + } +} diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.t.sol b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.t.sol new file mode 100644 index 000000000..32f11413d --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.t.sol @@ -0,0 +1,889 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import 'forge-std/Test.sol'; +import {GovV3Helpers} from 'aave-helpers/src/GovV3Helpers.sol'; +import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol'; +import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; +import {AaveV4Ethereum, AaveV4EthereumHubs, AaveV4EthereumSpokes, AaveV4EthereumSpokePriceFeeds, AaveV4EthereumAssets} from 'aave-address-book/AaveV4Ethereum.sol'; +import {IAaveV4ConfigEngine as IConfigEngine, IHub, ISpoke, ITokenizationSpoke} from 'aave-address-book/AaveV4.sol'; +import {EngineFlags} from 'aave-v4/config-engine/libraries/EngineFlags.sol'; +import {IAssetInterestRateStrategy} from 'aave-v4/hub/interfaces/IAssetInterestRateStrategy.sol'; +import {AaveV4ConfiguratorRoles} from './AaveV4ConfiguratorRoles.sol'; +import {IPendlePriceCapAdapter} from 'src/interfaces/IPendlePriceCapAdapter.sol'; +import {IPriceCapAdapter} from 'src/interfaces/IPriceCapAdapter.sol'; +import {IPriceCapAdapterStable} from 'src/interfaces/IPriceCapAdapterStable.sol'; +import {IRiskSteward} from 'src/interfaces/IRiskSteward.sol'; +import {IRiskStewardV4} from 'src/interfaces/IRiskStewardV4.sol'; +import {ProtocolV4TestBaseEthereum} from 'aave-helpers/src/v4-protocol-test/ProtocolV4TestBaseEthereum.sol'; +import {AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807} from './AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.sol'; + +/** + * @dev Test for AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807 + * command: FOUNDRY_PROFILE=test forge test --match-path=src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.t.sol -vv + */ +contract AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807_Test is ProtocolV4TestBaseEthereum { + IHub internal constant CORE_HUB = AaveV4EthereumHubs.CORE_HUB; + ISpoke internal constant MAIN_SPOKE = AaveV4EthereumSpokes.MAIN_SPOKE; + address internal constant WETH = AaveV4EthereumAssets.WETH_UNDERLYING; + // capped wstETH / stETH(ETH) / USD, the price source of wstETH on the main spoke + IPriceCapAdapter internal constant wstETH_CAPO_ADAPTER = + IPriceCapAdapter(0xe1D97bF61901B075E9626c8A2340a7De385861Ef); + IPriceCapAdapterStable internal constant USDC_CAPO_ADAPTER = + IPriceCapAdapterStable(AaveV4EthereumSpokePriceFeeds.MAIN_SPOKE_USDC_PRICE_FEED); + // the only Pendle price source not yet past maturity at the fork block; a matured adapter + // reverts on any `setDiscountRatePerYear` call + IPendlePriceCapAdapter internal constant PT_USDG_PENDLE_ADAPTER = + IPendlePriceCapAdapter( + AaveV4EthereumSpokePriceFeeds.USDG_PENDLE_SPOKE_PT_USDG_24SEP2026_PRICE_FEED + ); + + AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807 internal proposal; + IRiskStewardV4 internal steward; + + function setUp() public { + vm.createSelectFork(vm.rpcUrl('mainnet'), 25701834); + proposal = new AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807(); + steward = IRiskStewardV4(proposal.RISK_STEWARD()); + } + + modifier activated() { + GovV3Helpers.executePayload(vm, address(proposal)); + _; + } + + /** + * @dev executes the generic test suite including e2e and config snapshots + * forge-config: default.isolate = true + */ + function test_defaultProposalExecution() public { + defaultTest('AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807', address(proposal)); + } + + function test_stewardOwnerAndCouncil() public view { + assertEq(steward.owner(), GovernanceV3Ethereum.EXECUTOR_LVL_1, 'owner mismatch'); + assertEq( + steward.RISK_COUNCIL(), + IRiskSteward(AaveV3Ethereum.RISK_STEWARD).RISK_COUNCIL(), + 'council diverges from the v3 risk steward' + ); + } + + function test_rolesGranted() public activated { + uint64[] memory granted = new uint64[](4); + granted[0] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE; + granted[1] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_EMERGENCY_ROLE; + granted[2] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE; + granted[3] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_EMERGENCY_ROLE; + + for (uint256 i; i < granted.length; ++i) { + (bool hasRole, uint32 delay) = AaveV4Ethereum.ACCESS_MANAGER.hasRole( + granted[i], + proposal.RISK_STEWARD() + ); + assertTrue(hasRole, string.concat('role not granted: ', vm.toString(granted[i]))); + assertEq(uint256(delay), 0, string.concat('role delay: ', vm.toString(granted[i]))); + } + + assertTrue( + AaveV3Ethereum.ACL_MANAGER.isRiskAdmin(proposal.RISK_STEWARD()), + 'risk admin role not granted' + ); + } + + /// @dev The steward is deliberately not given the flag, listing or domain admin roles. + function test_stewardNotGrantedRemainingRoles() public activated { + uint64[] memory withheld = new uint64[](8); + withheld[0] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE; + withheld[1] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE; + withheld[2] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_SPOKE_HALTED_ROLE; + withheld[3] = AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_LISTING_ROLE; + withheld[4] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE; + withheld[5] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_PAUSE_ROLE; + withheld[6] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_FREEZE_ROLE; + withheld[7] = AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_LISTING_ROLE; + + for (uint256 i; i < withheld.length; ++i) { + (bool hasRole, ) = AaveV4Ethereum.ACCESS_MANAGER.hasRole( + withheld[i], + proposal.RISK_STEWARD() + ); + assertFalse(hasRole, string.concat('role should be withheld: ', vm.toString(withheld[i]))); + } + } + + /// @dev Every selector of each new role must resolve to that role on its own configurator, and + /// the domain admin roles must be left holding only the residual selectors. + function test_configuratorSelectorsSplitAcrossRoles() public activated { + _assertHubRoleSelectors(AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE); + uint64[] memory hubRoles = AaveV4ConfiguratorRoles.hubRoles(); + for (uint256 i; i < hubRoles.length; ++i) { + _assertHubRoleSelectors(hubRoles[i]); + } + + _assertSpokeRoleSelectors(AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE); + uint64[] memory spokeRoles = AaveV4ConfiguratorRoles.spokeRoles(); + for (uint256 i; i < spokeRoles.length; ++i) { + _assertSpokeRoleSelectors(spokeRoles[i]); + } + } + + /// @dev The split above only proves each listed selector landed on its role. This proves the six + /// sets are exhaustive: a configurator function missing from the library would silently keep the + /// domain admin role instead of the granular one it belongs to. + function test_configuratorRolesCoverEverySelector() public activated { + bytes4[] memory hubSelectors = _interfaceSelectors('IHubConfigurator'); + for (uint256 i; i < hubSelectors.length; ++i) { + uint64 role = AaveV4Ethereum.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Ethereum.HUB_CONFIGURATOR), + hubSelectors[i] + ); + assertTrue( + _contains(AaveV4ConfiguratorRoles.hubSelectors(role), hubSelectors[i]), + string.concat('hub selector missing from the breakdown: ', vm.toString(hubSelectors[i])) + ); + } + + bytes4[] memory spokeSelectors = _interfaceSelectors('ISpokeConfigurator'); + for (uint256 i; i < spokeSelectors.length; ++i) { + uint64 role = AaveV4Ethereum.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Ethereum.SPOKE_CONFIGURATOR), + spokeSelectors[i] + ); + assertTrue( + _contains(AaveV4ConfiguratorRoles.spokeSelectors(role), spokeSelectors[i]), + string.concat('spoke selector missing from the breakdown: ', vm.toString(spokeSelectors[i])) + ); + } + } + + /// @dev Each address that held a domain admin role keeps the same reach through the new roles. + function test_domainAdminsCarriedOverToNewRoles() public { + address[] memory hubAdmins = _roleMembers( + AaveV4ConfiguratorRoles.HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE + ); + address[] memory spokeAdmins = _roleMembers( + AaveV4ConfiguratorRoles.SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE + ); + assertGt(hubAdmins.length, 0, 'no hub domain admin to carry over'); + assertGt(spokeAdmins.length, 0, 'no spoke domain admin to carry over'); + + GovV3Helpers.executePayload(vm, address(proposal)); + + _assertHoldsAll(hubAdmins, AaveV4ConfiguratorRoles.hubRoles()); + _assertHoldsAll(spokeAdmins, AaveV4ConfiguratorRoles.spokeRoles()); + } + + function test_newRolesLabeled() public activated { + string[10] memory labels = [ + 'HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE', + 'HUB_CONFIGURATOR_SPOKE_HALTED_ROLE', + 'HUB_CONFIGURATOR_LISTING_ROLE', + 'HUB_CONFIGURATOR_EMERGENCY_ROLE', + 'HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE', + 'SPOKE_CONFIGURATOR_PAUSE_ROLE', + 'SPOKE_CONFIGURATOR_FREEZE_ROLE', + 'SPOKE_CONFIGURATOR_LISTING_ROLE', + 'SPOKE_CONFIGURATOR_EMERGENCY_ROLE', + 'SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE' + ]; + uint64[] memory roles = new uint64[](10); + uint64[] memory hubRoles = AaveV4ConfiguratorRoles.hubRoles(); + uint64[] memory spokeRoles = AaveV4ConfiguratorRoles.spokeRoles(); + for (uint256 i; i < 5; ++i) { + roles[i] = hubRoles[i]; + roles[i + 5] = spokeRoles[i]; + } + + for (uint256 i; i < roles.length; ++i) { + assertEq( + AaveV4Ethereum.ACCESS_MANAGER.getLabelOfRole(roles[i]), + labels[i], + string.concat('label mismatch: ', vm.toString(roles[i])) + ); + assertEq( + uint256(AaveV4Ethereum.ACCESS_MANAGER.getRoleOfLabel(labels[i])), + uint256(roles[i]), + string.concat('reverse label mismatch: ', labels[i]) + ); + } + } + + function _assertHubRoleSelectors(uint64 role) internal view { + bytes4[] memory selectors = AaveV4ConfiguratorRoles.hubSelectors(role); + for (uint256 i; i < selectors.length; ++i) { + assertEq( + uint256( + AaveV4Ethereum.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Ethereum.HUB_CONFIGURATOR), + selectors[i] + ) + ), + uint256(role), + string.concat('hub selector role mismatch: ', vm.toString(role)) + ); + } + } + + function _assertSpokeRoleSelectors(uint64 role) internal view { + bytes4[] memory selectors = AaveV4ConfiguratorRoles.spokeSelectors(role); + for (uint256 i; i < selectors.length; ++i) { + assertEq( + uint256( + AaveV4Ethereum.ACCESS_MANAGER.getTargetFunctionRole( + address(AaveV4Ethereum.SPOKE_CONFIGURATOR), + selectors[i] + ) + ), + uint256(role), + string.concat('spoke selector role mismatch: ', vm.toString(role)) + ); + } + } + + /// @dev Reads the compiled ABI so the expected set comes from the interface, not from the library + /// under test. + function _interfaceSelectors(string memory name) internal view returns (bytes4[] memory) { + string memory path = string.concat('out/prague/', name, '.sol/', name, '.json'); + if (!vm.isFile(path)) path = string.concat('out/shanghai/', name, '.sol/', name, '.json'); + string[] memory signatures = vm.parseJsonKeys(vm.readFile(path), '.methodIdentifiers'); + assertGt(signatures.length, 0, string.concat('no methods found for ', name)); + + bytes4[] memory selectors = new bytes4[](signatures.length); + for (uint256 i; i < signatures.length; ++i) { + selectors[i] = bytes4(keccak256(bytes(signatures[i]))); + } + return selectors; + } + + function _contains(bytes4[] memory selectors, bytes4 selector) internal pure returns (bool) { + for (uint256 i; i < selectors.length; ++i) { + if (selectors[i] == selector) return true; + } + return false; + } + + function _roleMembers(uint64 role) internal view returns (address[] memory) { + uint256 count = AaveV4Ethereum.ACCESS_MANAGER.getRoleMemberCount(role); + address[] memory members = new address[](count); + for (uint256 i; i < count; ++i) { + members[i] = AaveV4Ethereum.ACCESS_MANAGER.getRoleMember(role, i); + } + return members; + } + + function _assertHoldsAll(address[] memory accounts, uint64[] memory roles) internal view { + for (uint256 i; i < accounts.length; ++i) { + for (uint256 j; j < roles.length; ++j) { + (bool hasRole, ) = AaveV4Ethereum.ACCESS_MANAGER.hasRole(roles[j], accounts[i]); + assertTrue( + hasRole, + string.concat(vm.toString(accounts[i]), ' missing role ', vm.toString(roles[j])) + ); + } + } + } + + function test_riskCouncilCanUpdateLstPriceCap() public activated { + uint16 growthBefore = uint16(wstETH_CAPO_ADAPTER.getMaxYearlyGrowthRatePercent()); + uint16 growthAfter = growthBefore + growthBefore / 20; + IRiskStewardV4.PriceCapLstUpdate[] memory updates = _lstPriceCapUpdate(growthAfter); + address riskCouncil = steward.RISK_COUNCIL(); + + vm.prank(riskCouncil); + steward.updateLstPriceCaps(updates); + + assertEq( + wstETH_CAPO_ADAPTER.getMaxYearlyGrowthRatePercent(), + growthAfter, + 'maxYearlyGrowthRatePercent not updated' + ); + } + + function test_riskCouncilCannotUpdateLstPriceCapAboveBound() public activated { + uint16 growthBefore = uint16(wstETH_CAPO_ADAPTER.getMaxYearlyGrowthRatePercent()); + IRiskStewardV4.PriceCapLstUpdate[] memory updates = _lstPriceCapUpdate( + growthBefore + growthBefore / 20 + 1 + ); + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateLstPriceCaps(updates); + } + + function _lstPriceCapUpdate( + uint16 maxYearlyRatioGrowthPercent + ) internal view returns (IRiskStewardV4.PriceCapLstUpdate[] memory) { + IRiskStewardV4.PriceCapLstUpdate[] memory updates = new IRiskStewardV4.PriceCapLstUpdate[](1); + updates[0] = IRiskStewardV4.PriceCapLstUpdate({ + oracle: address(wstETH_CAPO_ADAPTER), + priceCapUpdateParams: IPriceCapAdapter.PriceCapUpdateParams({ + snapshotRatio: uint104(uint256(wstETH_CAPO_ADAPTER.getRatio())), + snapshotTimestamp: uint48(block.timestamp - wstETH_CAPO_ADAPTER.MINIMUM_SNAPSHOT_DELAY()), + maxYearlyRatioGrowthPercent: maxYearlyRatioGrowthPercent + }) + }); + return updates; + } + + function test_riskStewardConfig() public activated { + _assertConfig(steward.getConfig()); + } + + /// @dev Covers the bounds LlamaRisk carried over from the v3 Risk Steward unchanged. The params + /// they widened (baseDrawnRate, rateGrowthBeforeOptimal, collateralRisk, the dynamicAdd bounds) + /// and those with no v3 counterpart are asserted in `_assertConfig` only. + function test_boundsMatchV3RiskSteward() public activated { + IRiskSteward.Config memory v3 = IRiskSteward(AaveV3Ethereum.RISK_STEWARD).getRiskConfig(); + IRiskStewardV4.Config memory v4 = steward.getConfig(); + + assertEq( + uint256(v4.hub.rate.optimalUsageRatio.maxPercentChange), + v3.rateConfig.optimalUsageRatio.maxPercentChange, + 'optimalUsageRatio bound' + ); + assertEq( + uint256(v4.hub.rate.rateGrowthAfterOptimal.maxPercentChange), + v3.rateConfig.variableRateSlope2.maxPercentChange, + 'rateGrowthAfterOptimal bound' + ); + assertEq( + uint256(v4.hub.cap.addCap.maxPercentChange), + v3.capConfig.supplyCap.maxPercentChange, + 'addCap bound' + ); + assertEq( + uint256(v4.hub.cap.drawCap.maxPercentChange), + v3.capConfig.borrowCap.maxPercentChange, + 'drawCap bound' + ); + assertEq( + uint256(v4.spoke.dynamicUpdate.collateralFactor.maxPercentChange), + v3.collateralConfig.ltv.maxPercentChange, + 'collateralFactor bound' + ); + assertEq( + uint256(v4.spoke.dynamicUpdate.maxLiquidationBonus.maxPercentChange), + v3.collateralConfig.liquidationBonus.maxPercentChange, + 'maxLiquidationBonus bound' + ); + assertEq( + uint256(v4.oracle.priceCapLst.maxPercentChange), + v3.priceCapConfig.priceCapLst.maxPercentChange, + 'priceCapLst bound' + ); + assertEq( + uint256(v4.oracle.priceCapStable.maxPercentChange), + v3.priceCapConfig.priceCapStable.maxPercentChange, + 'priceCapStable bound' + ); + assertEq( + uint256(v4.oracle.discountRatePendle.maxPercentChange), + v3.priceCapConfig.discountRatePendle.maxPercentChange, + 'discountRatePendle bound' + ); + assertEq( + uint256(v4.oracle.discountRatePendle.minDelay), + uint256(v3.priceCapConfig.discountRatePendle.minDelay), + 'discountRatePendle cooldown' + ); + } + + function test_riskCouncilCanUpdateHubAssetIRs() public activated { + IAssetInterestRateStrategy.InterestRateData memory expected = _currentIrData(); + expected.optimalUsageRatio += 3_00; + expected.baseDrawnRate += 3_00; + expected.rateGrowthBeforeOptimal += 3_00; + expected.rateGrowthAfterOptimal += 20_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateHubAssetIRs(_irUpdate(expected)); + + IAssetInterestRateStrategy.InterestRateData memory current = _currentIrData(); + assertEq( + current.optimalUsageRatio, + expected.optimalUsageRatio, + 'optimalUsageRatio not updated' + ); + assertEq(current.baseDrawnRate, expected.baseDrawnRate, 'baseDrawnRate not updated'); + assertEq( + current.rateGrowthBeforeOptimal, + expected.rateGrowthBeforeOptimal, + 'rateGrowthBeforeOptimal not updated' + ); + assertEq( + current.rateGrowthAfterOptimal, + expected.rateGrowthAfterOptimal, + 'rateGrowthAfterOptimal not updated' + ); + } + + function test_riskCouncilCannotUpdateHubAssetIRsAboveBound() public activated { + IAssetInterestRateStrategy.InterestRateData memory outOfRange = _currentIrData(); + outOfRange.optimalUsageRatio += 3_00 + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateHubAssetIRs(_irUpdate(outOfRange)); + } + + function test_riskCouncilCanUpdateHubSpokeCaps() public activated { + uint256 assetId = CORE_HUB.getAssetId(WETH); + IHub.SpokeConfig memory before = CORE_HUB.getSpokeConfig(assetId, address(MAIN_SPOKE)); + uint256 addCap = 2 * uint256(before.addCap); + uint256 drawCap = 2 * uint256(before.drawCap); + + vm.prank(steward.RISK_COUNCIL()); + steward.updateHubSpokeCaps(_capsUpdate(addCap, drawCap)); + + IHub.SpokeConfig memory current = CORE_HUB.getSpokeConfig(assetId, address(MAIN_SPOKE)); + assertEq(uint256(current.addCap), addCap, 'addCap not updated'); + assertEq(uint256(current.drawCap), drawCap, 'drawCap not updated'); + } + + function test_riskCouncilCannotUpdateHubSpokeCapsAboveBound() public activated { + uint256 assetId = CORE_HUB.getAssetId(WETH); + uint256 addCapBefore = CORE_HUB.getSpokeConfig(assetId, address(MAIN_SPOKE)).addCap; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateHubSpokeCaps(_capsUpdate(2 * addCapBefore + 1, EngineFlags.KEEP_CURRENT)); + } + + function test_riskCouncilCanUpdateReserveConfigs() public activated { + uint256 reserveId = _reserveId(); + uint256 collateralRisk = uint256(MAIN_SPOKE.getReserveConfig(reserveId).collateralRisk) + + 300_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateReserveConfigs(_reserveConfigUpdate(collateralRisk)); + + assertEq( + uint256(MAIN_SPOKE.getReserveConfig(reserveId).collateralRisk), + collateralRisk, + 'collateralRisk not updated' + ); + } + + function test_riskCouncilCannotUpdateReserveConfigsAboveBound() public activated { + uint256 collateralRisk = uint256(MAIN_SPOKE.getReserveConfig(_reserveId()).collateralRisk) + + 300_00 + + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateReserveConfigs(_reserveConfigUpdate(collateralRisk)); + } + + function test_riskCouncilCanUpdateDynamicReserveConfigs() public activated { + uint256 reserveId = _reserveId(); + uint32 key = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + ISpoke.DynamicReserveConfig memory before = MAIN_SPOKE.getDynamicReserveConfig(reserveId, key); + uint256 collateralFactor = uint256(before.collateralFactor) + 50; + uint256 maxLiquidationBonus = uint256(before.maxLiquidationBonus) + 50; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateDynamicReserveConfigs( + _dynamicReserveConfigUpdate(key, collateralFactor, maxLiquidationBonus) + ); + + ISpoke.DynamicReserveConfig memory current = MAIN_SPOKE.getDynamicReserveConfig(reserveId, key); + assertEq(uint256(current.collateralFactor), collateralFactor, 'collateralFactor not updated'); + assertEq( + uint256(current.maxLiquidationBonus), + maxLiquidationBonus, + 'maxLiquidationBonus not updated' + ); + } + + function test_riskCouncilCannotUpdateDynamicReserveConfigsAboveBound() public activated { + uint256 reserveId = _reserveId(); + uint32 key = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + uint256 collateralFactor = uint256( + MAIN_SPOKE.getDynamicReserveConfig(reserveId, key).collateralFactor + ) + + 50 + + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateDynamicReserveConfigs( + _dynamicReserveConfigUpdate(key, collateralFactor, EngineFlags.KEEP_CURRENT) + ); + } + + function test_riskCouncilCanAddDynamicReserveConfigs() public activated { + uint256 reserveId = _reserveId(); + uint32 keyBefore = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + ISpoke.DynamicReserveConfig memory added = MAIN_SPOKE.getDynamicReserveConfig( + reserveId, + keyBefore + ); + added.collateralFactor += 5_00; + added.maxLiquidationBonus += 50; + + vm.prank(steward.RISK_COUNCIL()); + steward.addDynamicReserveConfigs(_dynamicReserveConfigAddition(added)); + + uint32 keyAfter = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + assertEq(uint256(keyAfter), uint256(keyBefore) + 1, 'dynamic config key not bumped'); + + ISpoke.DynamicReserveConfig memory current = MAIN_SPOKE.getDynamicReserveConfig( + reserveId, + keyAfter + ); + assertEq( + uint256(current.collateralFactor), + uint256(added.collateralFactor), + 'collateralFactor not added' + ); + assertEq( + uint256(current.maxLiquidationBonus), + uint256(added.maxLiquidationBonus), + 'maxLiquidationBonus not added' + ); + } + + function test_riskCouncilCannotAddDynamicReserveConfigsAboveBound() public activated { + uint256 reserveId = _reserveId(); + uint32 key = MAIN_SPOKE.getReserve(reserveId).dynamicConfigKey; + address riskCouncil = steward.RISK_COUNCIL(); + + ISpoke.DynamicReserveConfig memory outOfRange = MAIN_SPOKE.getDynamicReserveConfig( + reserveId, + key + ); + outOfRange.collateralFactor += 5_00 + 1; + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.addDynamicReserveConfigs(_dynamicReserveConfigAddition(outOfRange)); + + outOfRange = MAIN_SPOKE.getDynamicReserveConfig(reserveId, key); + outOfRange.maxLiquidationBonus += 50 + 1; + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.addDynamicReserveConfigs(_dynamicReserveConfigAddition(outOfRange)); + } + + function test_riskCouncilCanUpdateSpokeLiquidationConfigs() public activated { + ISpoke.LiquidationConfig memory before = MAIN_SPOKE.getLiquidationConfig(); + uint256 targetHealthFactor = uint256(before.targetHealthFactor) + + (uint256(before.targetHealthFactor) * 5_00) / + 100_00; + uint256 healthFactorForMaxBonus = uint256(before.healthFactorForMaxBonus) + + (uint256(before.healthFactorForMaxBonus) * 5_00) / + 100_00; + uint256 liquidationBonusFactor = uint256(before.liquidationBonusFactor) + 5_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateSpokeLiquidationConfigs( + _liquidationConfigUpdate(targetHealthFactor, healthFactorForMaxBonus, liquidationBonusFactor) + ); + + ISpoke.LiquidationConfig memory current = MAIN_SPOKE.getLiquidationConfig(); + assertEq( + uint256(current.targetHealthFactor), + targetHealthFactor, + 'targetHealthFactor not updated' + ); + assertEq( + uint256(current.healthFactorForMaxBonus), + healthFactorForMaxBonus, + 'healthFactorForMaxBonus not updated' + ); + assertEq( + uint256(current.liquidationBonusFactor), + liquidationBonusFactor, + 'liquidationBonusFactor not updated' + ); + } + + function test_riskCouncilCannotUpdateSpokeLiquidationConfigsAboveBound() public activated { + uint256 targetHealthFactorBefore = MAIN_SPOKE.getLiquidationConfig().targetHealthFactor; + uint256 targetHealthFactor = targetHealthFactorBefore + + (targetHealthFactorBefore * 5_00) / + 100_00 + + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateSpokeLiquidationConfigs( + _liquidationConfigUpdate( + targetHealthFactor, + EngineFlags.KEEP_CURRENT, + EngineFlags.KEEP_CURRENT + ) + ); + } + + function test_riskCouncilCanUpdateStablePriceCap() public activated { + uint256 priceCapBefore = uint256(USDC_CAPO_ADAPTER.getPriceCap()); + uint256 priceCap = priceCapBefore + (priceCapBefore * 50) / 100_00; + + vm.prank(steward.RISK_COUNCIL()); + steward.updateStablePriceCaps(_stablePriceCapUpdate(priceCap)); + + assertEq(uint256(USDC_CAPO_ADAPTER.getPriceCap()), priceCap, 'priceCap not updated'); + } + + function test_riskCouncilCannotUpdateStablePriceCapAboveBound() public activated { + uint256 priceCapBefore = uint256(USDC_CAPO_ADAPTER.getPriceCap()); + uint256 priceCap = priceCapBefore + (priceCapBefore * 50) / 100_00 + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updateStablePriceCaps(_stablePriceCapUpdate(priceCap)); + } + + function test_riskCouncilCanUpdatePendleDiscountRate() public activated { + uint256 discountRate = PT_USDG_PENDLE_ADAPTER.discountRatePerYear() + 0.025e18; + + vm.prank(steward.RISK_COUNCIL()); + steward.updatePendleDiscountRates(_pendleDiscountRateUpdate(discountRate)); + + assertEq( + uint256(PT_USDG_PENDLE_ADAPTER.discountRatePerYear()), + discountRate, + 'discountRate not updated' + ); + } + + function test_riskCouncilCannotUpdatePendleDiscountRateAboveBound() public activated { + uint256 discountRate = PT_USDG_PENDLE_ADAPTER.discountRatePerYear() + 0.025e18 + 1; + address riskCouncil = steward.RISK_COUNCIL(); + + vm.expectRevert(IRiskStewardV4.UpdateNotInRange.selector); + vm.prank(riskCouncil); + steward.updatePendleDiscountRates(_pendleDiscountRateUpdate(discountRate)); + } + + function _getTokenizationSpokes() internal view override returns (ITokenizationSpoke[] memory) { + ITokenizationSpoke[] memory all = super._getTokenizationSpokes(); + uint256 activeCount; + for (uint256 i; i < all.length; ++i) { + if (_isTokenizationSpokeActive(all[i])) ++activeCount; + } + ITokenizationSpoke[] memory active = new ITokenizationSpoke[](activeCount); + uint256 index; + for (uint256 i; i < all.length; ++i) { + if (_isTokenizationSpokeActive(all[i])) active[index++] = all[i]; + } + return active; + } + + function _isTokenizationSpokeActive( + ITokenizationSpoke tokenizationSpoke + ) internal view returns (bool) { + return + IHub(tokenizationSpoke.hub()) + .getSpokeConfig(tokenizationSpoke.assetId(), address(tokenizationSpoke)) + .active; + } + + function _reserveId() internal view returns (uint256) { + return MAIN_SPOKE.getReserveId(address(CORE_HUB), CORE_HUB.getAssetId(WETH)); + } + + function _currentIrData() + internal + view + returns (IAssetInterestRateStrategy.InterestRateData memory) + { + uint256 assetId = CORE_HUB.getAssetId(WETH); + return + IAssetInterestRateStrategy(CORE_HUB.getAssetConfig(assetId).irStrategy).getInterestRateData( + assetId + ); + } + + function _irUpdate( + IAssetInterestRateStrategy.InterestRateData memory irData + ) internal pure returns (IConfigEngine.AssetConfigUpdate[] memory) { + IConfigEngine.AssetConfigUpdate[] memory updates = new IConfigEngine.AssetConfigUpdate[](1); + updates[0] = IConfigEngine.AssetConfigUpdate({ + hubConfigurator: AaveV4Ethereum.HUB_CONFIGURATOR, + hub: address(CORE_HUB), + underlying: WETH, + liquidityFee: EngineFlags.KEEP_CURRENT, + feeReceiver: EngineFlags.KEEP_CURRENT_ADDRESS, + irStrategy: EngineFlags.KEEP_CURRENT_ADDRESS, + irData: irData, + reinvestmentController: EngineFlags.KEEP_CURRENT_ADDRESS + }); + return updates; + } + + function _capsUpdate( + uint256 addCap, + uint256 drawCap + ) internal pure returns (IConfigEngine.SpokeConfigUpdate[] memory) { + IConfigEngine.SpokeConfigUpdate[] memory updates = new IConfigEngine.SpokeConfigUpdate[](1); + updates[0] = IConfigEngine.SpokeConfigUpdate({ + hubConfigurator: AaveV4Ethereum.HUB_CONFIGURATOR, + hub: address(CORE_HUB), + underlying: WETH, + spoke: address(MAIN_SPOKE), + addCap: addCap, + drawCap: drawCap, + riskPremiumThreshold: EngineFlags.KEEP_CURRENT, + active: EngineFlags.KEEP_CURRENT, + halted: EngineFlags.KEEP_CURRENT + }); + return updates; + } + + function _reserveConfigUpdate( + uint256 collateralRisk + ) internal pure returns (IConfigEngine.ReserveConfigUpdate[] memory) { + IConfigEngine.ReserveConfigUpdate[] memory updates = new IConfigEngine.ReserveConfigUpdate[](1); + updates[0] = IConfigEngine.ReserveConfigUpdate({ + spokeConfigurator: AaveV4Ethereum.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + hub: address(CORE_HUB), + underlying: WETH, + priceSource: EngineFlags.KEEP_CURRENT_ADDRESS, + collateralRisk: collateralRisk, + paused: EngineFlags.KEEP_CURRENT, + frozen: EngineFlags.KEEP_CURRENT, + borrowable: EngineFlags.KEEP_CURRENT, + receiveSharesEnabled: EngineFlags.KEEP_CURRENT + }); + return updates; + } + + function _dynamicReserveConfigUpdate( + uint32 dynamicConfigKey, + uint256 collateralFactor, + uint256 maxLiquidationBonus + ) internal pure returns (IConfigEngine.DynamicReserveConfigUpdate[] memory) { + IConfigEngine.DynamicReserveConfigUpdate[] + memory updates = new IConfigEngine.DynamicReserveConfigUpdate[](1); + updates[0] = IConfigEngine.DynamicReserveConfigUpdate({ + spokeConfigurator: AaveV4Ethereum.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + hub: address(CORE_HUB), + underlying: WETH, + dynamicConfigKey: dynamicConfigKey, + collateralFactor: collateralFactor, + maxLiquidationBonus: maxLiquidationBonus, + liquidationFee: EngineFlags.KEEP_CURRENT + }); + return updates; + } + + function _dynamicReserveConfigAddition( + ISpoke.DynamicReserveConfig memory dynamicConfig + ) internal pure returns (IConfigEngine.DynamicReserveConfigAddition[] memory) { + IConfigEngine.DynamicReserveConfigAddition[] + memory additions = new IConfigEngine.DynamicReserveConfigAddition[](1); + additions[0] = IConfigEngine.DynamicReserveConfigAddition({ + spokeConfigurator: AaveV4Ethereum.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + hub: address(CORE_HUB), + underlying: WETH, + dynamicConfig: dynamicConfig + }); + return additions; + } + + function _liquidationConfigUpdate( + uint256 targetHealthFactor, + uint256 healthFactorForMaxBonus, + uint256 liquidationBonusFactor + ) internal pure returns (IConfigEngine.LiquidationConfigUpdate[] memory) { + IConfigEngine.LiquidationConfigUpdate[] + memory updates = new IConfigEngine.LiquidationConfigUpdate[](1); + updates[0] = IConfigEngine.LiquidationConfigUpdate({ + spokeConfigurator: AaveV4Ethereum.SPOKE_CONFIGURATOR, + spoke: address(MAIN_SPOKE), + targetHealthFactor: targetHealthFactor, + healthFactorForMaxBonus: healthFactorForMaxBonus, + liquidationBonusFactor: liquidationBonusFactor + }); + return updates; + } + + function _stablePriceCapUpdate( + uint256 priceCap + ) internal pure returns (IRiskStewardV4.PriceCapStableUpdate[] memory) { + IRiskStewardV4.PriceCapStableUpdate[] + memory updates = new IRiskStewardV4.PriceCapStableUpdate[](1); + updates[0] = IRiskStewardV4.PriceCapStableUpdate({ + oracle: address(USDC_CAPO_ADAPTER), + priceCap: priceCap + }); + return updates; + } + + function _pendleDiscountRateUpdate( + uint256 discountRate + ) internal pure returns (IRiskStewardV4.DiscountRatePendleUpdate[] memory) { + IRiskStewardV4.DiscountRatePendleUpdate[] + memory updates = new IRiskStewardV4.DiscountRatePendleUpdate[](1); + updates[0] = IRiskStewardV4.DiscountRatePendleUpdate({ + oracle: address(PT_USDG_PENDLE_ADAPTER), + discountRate: discountRate + }); + return updates; + } + + function _assertConfig(IRiskStewardV4.Config memory config) internal pure { + assertEq( + address(config.hub.configurator), + address(AaveV4Ethereum.HUB_CONFIGURATOR), + 'hub configurator mismatch' + ); + assertEq( + address(config.spoke.configurator), + address(AaveV4Ethereum.SPOKE_CONFIGURATOR), + 'spoke configurator mismatch' + ); + + // prettier-ignore + { + // param minDelay maxChange relative label + _assertParam(config.hub.rate.optimalUsageRatio, 36 hours, 3_00, false, 'optimalUsageRatio'); + _assertParam(config.hub.rate.baseDrawnRate, 36 hours, 3_00, false, 'baseDrawnRate'); + _assertParam(config.hub.rate.rateGrowthBeforeOptimal, 36 hours, 3_00, false, 'rateGrowthBeforeOptimal'); + _assertParam(config.hub.rate.rateGrowthAfterOptimal, 36 hours, 20_00, false, 'rateGrowthAfterOptimal'); + _assertParam(config.hub.cap.addCap, 36 hours, 100_00, true, 'addCap'); + _assertParam(config.hub.cap.drawCap, 36 hours, 100_00, true, 'drawCap'); + _assertParam(config.spoke.collateralRisk, 36 hours, 300_00, false, 'collateralRisk'); + _assertParam(config.spoke.dynamicUpdate.collateralFactor, 72 hours, 50, false, 'dynamicUpdate collateralFactor'); + _assertParam(config.spoke.dynamicUpdate.maxLiquidationBonus, 72 hours, 50, false, 'dynamicUpdate maxLiquidationBonus'); + _assertParam(config.spoke.dynamicAdd.collateralFactor, 72 hours, 5_00, false, 'dynamicAdd collateralFactor'); + _assertParam(config.spoke.dynamicAdd.maxLiquidationBonus, 72 hours, 50, false, 'dynamicAdd maxLiquidationBonus'); + _assertParam(config.spoke.liquidation.targetHealthFactor, 72 hours, 5_00, true, 'targetHealthFactor'); + _assertParam(config.spoke.liquidation.healthFactorForMaxBonus,72 hours, 5_00, true, 'healthFactorForMaxBonus'); + _assertParam(config.spoke.liquidation.liquidationBonusFactor, 72 hours, 5_00, false, 'liquidationBonusFactor'); + _assertParam(config.oracle.priceCapLst, 72 hours, 5_00, true, 'priceCapLst'); + _assertParam(config.oracle.priceCapStable, 72 hours, 50, true, 'priceCapStable'); + _assertParam(config.oracle.discountRatePendle, 48 hours, 0.025e18, false, 'discountRatePendle'); + } + } + + function _assertParam( + IRiskStewardV4.RiskParamConfig memory param, + uint256 minDelay, + uint256 maxPercentChange, + bool isChangeRelative, + string memory label + ) internal pure { + assertEq(uint256(param.minDelay), minDelay, string.concat(label, ' minDelay')); + assertEq( + uint256(param.maxPercentChange), + maxPercentChange, + string.concat(label, ' maxPercentChange') + ); + assertEq(param.isChangeRelative, isChangeRelative, string.concat(label, ' isChangeRelative')); + } +} diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation.md b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation.md new file mode 100644 index 000000000..8ee367d76 --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation.md @@ -0,0 +1,83 @@ +--- +title: "Aave V4 Risk Stewards Activation" +author: "Aave Labs" +discussions: "https://governance.aave.com/t/arfc-activate-aave-risk-stewards-on-aave-v4/25510" +--- + +## Simple Summary + +This proposal activates the Risk Stewards on Aave V4 Ethereum and Aave V4 Avalanche, by setting their risk configuration and granting them the AccessManager roles they need to operate. It also breaks each configurator's single domain admin role down into five granular roles, so the Risk Stewards receive only the subset they need instead of full configurator access. + +The bounds (`maxPercentChange`) follow LlamaRisk's recommended configuration, which carries most of them over from the corresponding V3 Risk Stewards unchanged. The cooldowns (`minDelay`) on the interest rate, cap and `collateralRisk` parameters are set to 36 hours, in line with the reduction ratified for the V3 Risk Stewards; every other parameter keeps a 72 hour cooldown, and the Pendle discount rate keeps its 48 hour cooldown. + +## Motivation + +The V4 Risk Stewards are deployed on both networks but hold no configuration and no permissions, so risk parameter maintenance on V4 still requires a full governance cycle for every change. + +Configuring them alongside their V3 counterparts keeps a single risk mandate across protocol versions: the same risk council, and the same limits on how far a single update can move a parameter wherever V4 has a V3 equivalent. The parameters that are new in V4 — `collateralRisk`, the bounds applied when appending a new dynamic reserve config, and the spoke liquidation config — follow LlamaRisk's recommendation, as do the two interest rate parameters they widened relative to their V3 analogs. + +`collateralRisk` sits at or near 0 under normal conditions and is bounded absolutely, so it gets a wide 300% bound and the reduced 36 hour cooldown: that combination lets the risk premium be lifted far enough, fast enough, to push borrowers toward repayment inside a single stress window. + +The 36 hour cooldowns are applied to both networks so the two V4 Risk Stewards do not diverge. + +The HubConfigurator and SpokeConfigurator each currently expose every one of their functions behind a single domain admin role, 200 and 400 respectively. Granting a Risk Steward that role to let it move caps and collateral factors would also let it list assets, register spokes, pause and freeze reserves, and change price sources and fee receivers. Splitting the two roles first keeps the grant proportionate to what the Risk Steward actually calls, and gives governance a vocabulary for delegating narrower mandates to other entities later without another restructuring. + +## Specification + +On Aave V4 Ethereum, the payload targets the Risk Steward at [0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1](https://etherscan.io/address/0x6f48d9Cdb8EE6E17c96B2d8Aec128af426A295c1). On Aave V4 Avalanche, it targets the Risk Steward at [0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107](https://snowscan.xyz/address/0xd8d7AbC42c1c938BdEC94fF8da1b3cd5b7e3b107). Both payloads apply the same configuration: + +| Scope | Parameter | Cooldown | Max change per update | Mode | +| ------ | -------------------------------- | -------- | --------------------- | -------- | +| Hub | `optimalUsageRatio` | 36 hours | 3% | absolute | +| Hub | `baseDrawnRate` | 36 hours | 3% | absolute | +| Hub | `rateGrowthBeforeOptimal` | 36 hours | 3% | absolute | +| Hub | `rateGrowthAfterOptimal` | 36 hours | 20% | absolute | +| Hub | `addCap` | 36 hours | 100% | relative | +| Hub | `drawCap` | 36 hours | 100% | relative | +| Spoke | `collateralRisk` | 36 hours | 300% | absolute | +| Spoke | `collateralFactor` (update) | 72 hours | 0.5% | absolute | +| Spoke | `maxLiquidationBonus` (update) | 72 hours | 0.5% | absolute | +| Spoke | `collateralFactor` (addition) | 72 hours | 5% | absolute | +| Spoke | `maxLiquidationBonus` (addition) | 72 hours | 0.5% | absolute | +| Spoke | `targetHealthFactor` | 72 hours | 5% | relative | +| Spoke | `healthFactorForMaxBonus` | 72 hours | 5% | relative | +| Spoke | `liquidationBonusFactor` | 72 hours | 5% | absolute | +| Oracle | `priceCapLst` | 72 hours | 5% | relative | +| Oracle | `priceCapStable` | 72 hours | 0.5% | relative | +| Oracle | `discountRatePendle` | 48 hours | 0.025 | absolute | + +### Configurator role breakdown + +Before granting anything, each payload splits its network's two configurator domain admin roles into five granular roles apiece. A role never spans both configurators, so Hub and Spoke access is always granted separately. + +| Concern | Hub role | Spoke role | Scope | +| --------------------- | --------------------------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Prevent all activity | `HUB_CONFIGURATOR_SPOKE_ACTIVE_ROLE` (201) | `SPOKE_CONFIGURATOR_PAUSE_ROLE` (401) | Flips the flag that prevents all activity, in both directions. `updateSpokeActive` on the Hub, `updatePaused` on the Spoke. | +| Prevent new activity | `HUB_CONFIGURATOR_SPOKE_HALTED_ROLE` (202) | `SPOKE_CONFIGURATOR_FREEZE_ROLE` (402) | Flips the flag that prevents new activity, in both directions. `updateSpokeHalted` on the Hub, `updateFrozen` on the Spoke. | +| Listing | `HUB_CONFIGURATOR_LISTING_ROLE` (203) | `SPOKE_CONFIGURATOR_LISTING_ROLE` (403) | `addAsset`, `addAssetWithDecimals`, `addSpoke`, `addSpokeToAssets` on the Hub. `addReserve`, `updateBorrowable`, `updateReceiveSharesEnabled` on the Spoke. | +| Emergency | `HUB_CONFIGURATOR_EMERGENCY_ROLE` (204) | `SPOKE_CONFIGURATOR_EMERGENCY_ROLE` (404) | The one-directional batch flag actions. `deactivateAsset`, `haltAsset`, `deactivateSpoke`, `haltSpoke` on the Hub. `pauseReserve`, `pauseAllReserves`, `freezeReserve`, `freezeAllReserves` on the Spoke. | +| Risk management | `HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE` (205) | `SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE` (405) | `updateSpokeAddCap`, `updateSpokeDrawCap`, `updateSpokeCaps`, `updateSpokeRiskPremiumThreshold`, `updateInterestRateData` on the Hub. `updateCollateralRisk`, `addCollateralFactor`, `updateCollateralFactor`, `addMaxLiquidationBonus`, `updateMaxLiquidationBonus`, `addLiquidationFee`, `updateLiquidationFee`, `addDynamicReserveConfig`, `updateDynamicReserveConfig`, `updateLiquidationTargetHealthFactor`, `updateHealthFactorForMaxBonus`, `updateLiquidationBonusFactor`, `updateLiquidationConfig` on the Spoke. | +| Residual domain admin | `HUB_CONFIGURATOR_DOMAIN_ADMIN_ROLE` (200) | `SPOKE_CONFIGURATOR_DOMAIN_ADMIN_ROLE` (400) | `updateLiquidityFee`, `updateFeeReceiver`, `updateFeeConfig`, `updateInterestRateStrategy`, `updateReinvestmentController`, `resetAssetCaps`, `resetSpokeCaps` on the Hub. `updateReservePriceSource`, `updatePositionManager` on the Spoke. | + +The two flag roles are named after the flag they own rather than after pause and freeze, because the Hub has no `paused`/`frozen` flags of its own: the equivalent state is the per-asset Spoke `active` flag, which gates every Hub action, and the `halted` flag, which gates the actions that instantly update liquidity. The emergency role is kept separate from both because every one of its selectors only ever moves a target to a safer state and cannot revert it, so it can be delegated to a faster-moving entity than the two-way flag roles. The Hub's batch cap resets stay with the domain admin role: zeroing caps is as one-directional as a halt, but only risk management can restore them, so it remains governance-only. + +The role IDs and selector sets match `Roles.sol` in the Aave V4 repository, following the documented convention of appending new IDs and letting the domain admin role's selector set shrink. Existing IDs are never repurposed, so the two domain admin roles keep the selectors that fall outside the five and every address that holds one today is granted the corresponding five new roles, retaining exactly the reach it has now. The ten new roles are also labelled on the AccessManager, matching what a fresh V4 deployment produces. + +### Grants + +Each Risk Steward is granted four of the new roles on its network's AccessManager, with no execution delay: `HUB_CONFIGURATOR_RISK_MANAGEMENT_ROLE` (205), `HUB_CONFIGURATOR_EMERGENCY_ROLE` (204), `SPOKE_CONFIGURATOR_RISK_MANAGEMENT_ROLE` (405) and `SPOKE_CONFIGURATOR_EMERGENCY_ROLE` (404). The two risk management roles are what the configuration above actually needs; without them the Risk Steward cannot reach the configurators and the bounds have no effect. The two emergency roles are granted alongside so a future Risk Steward release can de-risk without another governance cycle; the release deployed today calls none of their selectors, so they stay inert until then. + +Each Risk Steward is also granted `RISK_ADMIN` on its network's Aave V3 ACL Manager. The CAPO adapters serving the V4 price sources are shared with V3 and gate `setCapParameters` on the V3 ACL Manager, so without this role the `priceCapLst`, `priceCapStable` and `discountRatePendle` bounds above would be unusable. + +The Risk Stewards receive neither flag role, nor the listing or domain admin roles, so listings, spoke registrations, borrowability, price sources, position managers, fees and interest rate strategy addresses remain governance-only, as does clearing a pause, freeze or halt once set. Liquidation fees are the one parameter that sits inside a granted role without being in the Risk Stewards' scope: they hold no bound for it, and every entrypoint that carries the parameter reverts unless it is left unchanged. + +## References + +- Implementation: [AaveV4Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.sol), [AaveV4Avalanche](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.sol), [AaveV4ConfiguratorRoles](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4ConfiguratorRoles.sol) +- Tests: [AaveV4Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.t.sol), [AaveV4Avalanche](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.t.sol) +- [Snapshot](TODO) +- [Discussion](https://governance.aave.com/t/arfc-activate-aave-risk-stewards-on-aave-v4/25510) + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation_20260807.s.sol b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation_20260807.s.sol new file mode 100644 index 000000000..c7fabe53b --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation_20260807.s.sol @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/src/GovV3Helpers.sol'; +import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol'; + +import {EthereumScript, AvalancheScript} from 'solidity-utils/contracts/utils/ScriptUtils.sol'; +import {AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807} from './AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807.sol'; +import {AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807} from './AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807.sol'; + +/** + * @dev Deploy Ethereum + * deploy-command: make deploy-ledger contract=src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation_20260807.s.sol:DeployEthereum chain=mainnet + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/AaveV4RiskStewardsActivation_20260807.s.sol/1/run-latest.json + */ +contract DeployEthereum is EthereumScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Deploy Avalanche + * deploy-command: make deploy-ledger contract=src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation_20260807.s.sol:DeployAvalanche chain=avalanche + * verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/AaveV4RiskStewardsActivation_20260807.s.sol/43114/run-latest.json + */ +contract DeployAvalanche is AvalancheScript { + function run() external broadcast { + // deploy payloads + address payload0 = GovV3Helpers.deployDeterministic( + type(AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807).creationCode + ); + + // compose action + IPayloadsControllerCore.ExecutionAction[] + memory actions = new IPayloadsControllerCore.ExecutionAction[](1); + actions[0] = GovV3Helpers.buildAction(payload0); + + // register action at payloadsController + GovV3Helpers.createPayload(actions); + } +} + +/** + * @dev Create Proposal + * command: make deploy-ledger contract=src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation_20260807.s.sol:CreateProposal chain=mainnet + */ +contract CreateProposal is EthereumScript { + function run() external { + // create payloads + PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](2); + + // compose actions for validation + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsEthereum = new IPayloadsControllerCore.ExecutionAction[](1); + actionsEthereum[0] = GovV3Helpers.buildAction( + type(AaveV4Ethereum_AaveV4RiskStewardsActivation_20260807).creationCode + ); + payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum); + } + + { + IPayloadsControllerCore.ExecutionAction[] + memory actionsAvalanche = new IPayloadsControllerCore.ExecutionAction[](1); + actionsAvalanche[0] = GovV3Helpers.buildAction( + type(AaveV4Avalanche_AaveV4RiskStewardsActivation_20260807).creationCode + ); + payloads[1] = GovV3Helpers.buildAvalanchePayload(vm, actionsAvalanche); + } + + // create proposal + vm.startBroadcast(); + GovV3Helpers.createProposal( + vm, + payloads, + GovernanceV3Ethereum.VOTING_PORTAL_ETH_AVAX, + GovV3Helpers.ipfsHashFile( + vm, + 'src/20260807_Multi_AaveV4RiskStewardsActivation/AaveV4RiskStewardsActivation.md' + ) + ); + } +} diff --git a/src/20260807_Multi_AaveV4RiskStewardsActivation/config.ts b/src/20260807_Multi_AaveV4RiskStewardsActivation/config.ts new file mode 100644 index 000000000..a8f9e2db1 --- /dev/null +++ b/src/20260807_Multi_AaveV4RiskStewardsActivation/config.ts @@ -0,0 +1,17 @@ +import {ConfigFile} from '../../generator/types'; +export const config: ConfigFile = { + rootOptions: { + markets: ['AaveV4Ethereum', 'AaveV4Avalanche'], + title: 'Aave V4 Risk Stewards Activation', + shortName: 'AaveV4RiskStewardsActivation', + date: '20260807', + author: 'Aave Labs', + discussion: 'https://governance.aave.com/t/arfc-activate-aave-risk-stewards-on-aave-v4/25510', + snapshot: 'TODO', + votingNetwork: 'AVALANCHE', + }, + marketOptions: { + AaveV4Ethereum: {configs: {OTHERS: {}}, cache: {blockNumber: 25701834}}, + AaveV4Avalanche: {configs: {OTHERS: {}}, cache: {blockNumber: 92229650}}, + }, +}; diff --git a/src/interfaces/IRiskStewardV4.sol b/src/interfaces/IRiskStewardV4.sol new file mode 100644 index 000000000..269e9c34c --- /dev/null +++ b/src/interfaces/IRiskStewardV4.sol @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IAaveV4ConfigEngine as IConfigEngine, IHubConfigurator, ISpokeConfigurator} from 'aave-address-book/AaveV4.sol'; +import {IPriceCapAdapter} from 'src/interfaces/IPriceCapAdapter.sol'; + +/** + * @title IRiskStewardV4 + * @author Aave Labs + * @notice Trimmed mirror of the Aave V4 RiskSteward, exposing the owner-set `Config` layout + * and the council entrypoints. Full source at aave-dao/aave-v4-risk-stewards. + */ +interface IRiskStewardV4 { + error DebounceNotRespected(); + + error UpdateNotInRange(); + + struct RiskParamConfig { + uint40 minDelay; + uint208 maxPercentChange; + bool isChangeRelative; + } + + struct HubRateConfig { + RiskParamConfig optimalUsageRatio; + RiskParamConfig baseDrawnRate; + RiskParamConfig rateGrowthBeforeOptimal; + RiskParamConfig rateGrowthAfterOptimal; + } + + struct HubCapConfig { + RiskParamConfig addCap; + RiskParamConfig drawCap; + } + + struct HubConfig { + IHubConfigurator configurator; + HubRateConfig rate; + HubCapConfig cap; + } + + struct SpokeDynamicConfig { + RiskParamConfig collateralFactor; + RiskParamConfig maxLiquidationBonus; + } + + struct SpokeLiquidationConfig { + RiskParamConfig targetHealthFactor; + RiskParamConfig healthFactorForMaxBonus; + RiskParamConfig liquidationBonusFactor; + } + + struct SpokeConfig { + ISpokeConfigurator configurator; + RiskParamConfig collateralRisk; + SpokeDynamicConfig dynamicUpdate; + SpokeDynamicConfig dynamicAdd; + SpokeLiquidationConfig liquidation; + } + + struct OracleConfig { + RiskParamConfig priceCapLst; + RiskParamConfig priceCapStable; + RiskParamConfig discountRatePendle; + } + + struct Config { + HubConfig hub; + SpokeConfig spoke; + OracleConfig oracle; + } + + struct PriceCapLstUpdate { + address oracle; + IPriceCapAdapter.PriceCapUpdateParams priceCapUpdateParams; + } + + struct PriceCapStableUpdate { + address oracle; + uint256 priceCap; + } + + struct DiscountRatePendleUpdate { + address oracle; + uint256 discountRate; + } + + function setConfig(Config calldata config) external; + + function updateHubAssetIRs(IConfigEngine.AssetConfigUpdate[] calldata updates) external; + + function updateHubSpokeCaps(IConfigEngine.SpokeConfigUpdate[] calldata updates) external; + + function updateReserveConfigs(IConfigEngine.ReserveConfigUpdate[] calldata updates) external; + + function updateDynamicReserveConfigs( + IConfigEngine.DynamicReserveConfigUpdate[] calldata updates + ) external; + + function addDynamicReserveConfigs( + IConfigEngine.DynamicReserveConfigAddition[] calldata additions + ) external; + + function updateSpokeLiquidationConfigs( + IConfigEngine.LiquidationConfigUpdate[] calldata updates + ) external; + + function updateLstPriceCaps(PriceCapLstUpdate[] calldata updates) external; + + function updateStablePriceCaps(PriceCapStableUpdate[] calldata updates) external; + + function updatePendleDiscountRates(DiscountRatePendleUpdate[] calldata updates) external; + + function getConfig() external view returns (Config memory); + + function RISK_COUNCIL() external view returns (address); + + function owner() external view returns (address); +}