=== STEP_040C RESULT ===
prev040b2=/opt/router-ops/public/r/e94a0859747d7b96f29c7fdafc2d0351ba603bb0a7e9e5a4/20260708-162435_step040b2_correct_selector_contract_decision/report.txt
prev040b2_rc=0
prev040b2_pass_rc=0
prev040b2_cs4_valid_rc=0
prev040b2_cs5_valid_rc=0
prev040b2_cs5_append_rc=0
vm100_selector_active_entry_count=4
vm100_selector_cs4_present_rc=0
vm100_selector_cs5_present_rc=1
vm100_wg_paid_peer_count=4
vm100_cs4_peer_visible_rc=0
vm101_status_slot_count=5
vpn1_status=healthy
vpn1_selector_class=cs4
vpn2_status=healthy
vpn2_selector_class=cs5
tool_path=/usr/local/sbin/wg-access-agent-selector-apply.py
vm121_backup_dir=/root/router-ops-backups/STEP_040C_AGENT_SELECTOR_APPLY_DRY_RUN_20260708-162641
rollback_vm121=/root/rollback-step040c-agent-selector-apply-dry-run.sh
tool_backup_rc=0
tool_install_rc=0
rollback_create_rc=0
tool_exists_rc=0
cs4_case=existing_idempotent
cs4_helper_rc=0
cs4_contract_valid=YES
cs4_action=noop
cs4_apply_performed=NO
cs4_exact_present=YES
cs4_idempotent_noop=YES
cs4_would_append=NO
cs4_selector_entry_count_before=4
cs4_selector_entry_count_after_planned=4
cs4_slot_code=vpn1
cs4_selector_class=cs4
cs4_fwmark=0x201
cs4_table_id=201
cs4_interface_name=vpn1
cs4_slot_status=healthy
cs4_error_count=0
cs5_case=future_append
cs5_helper_rc=0
cs5_contract_valid=YES
cs5_action=append
cs5_apply_performed=NO
cs5_exact_present=NO
cs5_idempotent_noop=NO
cs5_would_append=YES
cs5_selector_entry_count_before=4
cs5_selector_entry_count_after_planned=5
cs5_slot_code=vpn2
cs5_selector_class=cs5
cs5_fwmark=0x202
cs5_table_id=202
cs5_interface_name=vpn2
cs5_slot_status=healthy
cs5_error_count=0
bad_case=conflict_same_ip
bad_helper_rc=2
bad_contract_valid=NO
bad_action=error
bad_apply_performed=NO
bad_same_ip_conflict_count=1
bad_errors=same_ip_conflict
private_material_published=NO
new_peer_created=NO
db_changed=NO
selector_changed=NO
mapper_changed=NO
policy_changed=NO
network_reload_done=NO
firewall_reload_done=NO
wg_reload_done=NO
backend_restart_done=NO
manager_invoked=NO
decision=FAIL_AGENT_SELECTOR_APPLY_FUNCTION_DRY_RUN