From 3d918aea3388ef3547744b32f5fcb38d60d2b8ee Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Thu, 10 Sep 2026 11:57:21 +0000 Subject: [PATCH] runtime: publish SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1 --- ...10-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.json | 38 ++++++++++++++ ...910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.txt | 37 ++++++++++++++ runtime/latest.json | 22 ++++---- runtime/latest.txt | 50 +++++-------------- 4 files changed, 99 insertions(+), 48 deletions(-) create mode 100644 runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.json create mode 100644 runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.txt diff --git a/runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.json b/runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.json new file mode 100644 index 00000000..b1170611 --- /dev/null +++ b/runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1", + "status": "FAIL", + "rc": 3, + "host": "pve01", + "mode": "read-only", + "component": "gram-support-dsmods-sealed-backup-acceptance-vm160", + "started_at_utc": "2026-09-10T11:57:17Z", + "finished_at_utc": "2026-09-10T11:57:20Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "86e33bc9a6dea4d5076cedd1cc2022c0ae61fa90b2a9eea6aab73c3f89f227c9", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 3, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080", + "sanitized_output_sha256": "c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "DSMODS141_ROUTE=PVE01_TO_PVE02_TO_VM160_QGA_READONLY\nDSMODS141_QGA_STATE=COMPLETE\nDSMODS141_SUMMARY={\"a\":\"FAIL\",\"db_b\":4771326,\"db_h\":\"2a47ab407e9759a780c3d725472af51cdee4200433c470e343995a84683b3bc6\",\"fail\":[\"PRE_SITE\",\"MAN_SITE\",\"BOARD_ACTIVE\"],\"gz\":true,\"gz_u\":49020992,\"incomplete\":false,\"man_board\":[],\"man_h\":\"d2ec9397ffe784435b026aad15af3b4f76ef6f70fe9d688d936b48d1c6b61873\",\"man_site\":[],\"meta\":true,\"n\":5,\"pre_board\":[],\"pre_h\":\"9a109dc86bf2d773ecfb91ab5dd9e494b0060860a43fc206f93dd1bb7a15bf09\",\"pre_site\":[],\"sealed\":true,\"src_b\":25262,\"src_h\":\"f475bf48d290724b3f05253086f13fa8fcbe98a6baee807e49798703ea5ecad1\",\"sums\":false,\"tar\":true,\"tar_m\":65,\"unsafe\":0}\nDSMODS141_DECISION=HOLD_EXISTING_BACKUP_NOT_VERIFIED_NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n" +} diff --git a/runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.txt b/runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.txt new file mode 100644 index 00000000..ac17038d --- /dev/null +++ b/runtime/history/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1.txt @@ -0,0 +1,37 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1 +STATUS=FAIL +RC=3 +HOST=pve01 +MODE=read-only +COMPONENT=gram-support-dsmods-sealed-backup-acceptance-vm160 +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=86e33bc9a6dea4d5076cedd1cc2022c0ae61fa90b2a9eea6aab73c3f89f227c9 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=3 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080 +SANITIZED_OUTPUT_SHA256=c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080 +OUTPUT_BEGIN +DSMODS141_ROUTE=PVE01_TO_PVE02_TO_VM160_QGA_READONLY +DSMODS141_QGA_STATE=COMPLETE +DSMODS141_SUMMARY={"a":"FAIL","db_b":4771326,"db_h":"2a47ab407e9759a780c3d725472af51cdee4200433c470e343995a84683b3bc6","fail":["PRE_SITE","MAN_SITE","BOARD_ACTIVE"],"gz":true,"gz_u":49020992,"incomplete":false,"man_board":[],"man_h":"d2ec9397ffe784435b026aad15af3b4f76ef6f70fe9d688d936b48d1c6b61873","man_site":[],"meta":true,"n":5,"pre_board":[],"pre_h":"9a109dc86bf2d773ecfb91ab5dd9e494b0060860a43fc206f93dd1bb7a15bf09","pre_site":[],"sealed":true,"src_b":25262,"src_h":"f475bf48d290724b3f05253086f13fa8fcbe98a6baee807e49798703ea5ecad1","sums":false,"tar":true,"tar_m":65,"unsafe":0} +DSMODS141_DECISION=HOLD_EXISTING_BACKUP_NOT_VERIFIED_NO_MUTATION +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index c2169418..b1170611 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-FACT-CLOSURE-140R1", - "status": "OK", - "rc": 0, + "command_id": "SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1", + "status": "FAIL", + "rc": 3, "host": "pve01", "mode": "read-only", - "component": "gram-support-dsmods-backup-fact-closure-vm160", - "started_at_utc": "2026-09-10T11:46:50Z", - "finished_at_utc": "2026-09-10T11:46:54Z", + "component": "gram-support-dsmods-sealed-backup-acceptance-vm160", + "started_at_utc": "2026-09-10T11:57:17Z", + "finished_at_utc": "2026-09-10T11:57:20Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "5fbfdf0fd519171792750eb801c361d92ca48c19f430387ef95c700aa9037e09", + "command_sha256": "86e33bc9a6dea4d5076cedd1cc2022c0ae61fa90b2a9eea6aab73c3f89f227c9", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -21,7 +21,7 @@ "result_contract_valid": true, "result_contract_status": null, "result_contract_error": null, - "command_rc": 0, + "command_rc": 3, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "5acd2baa089927b7aafc001ac0203e7e0a11f038340b8a760dc66d1fa5a15114", - "sanitized_output_sha256": "5acd2baa089927b7aafc001ac0203e7e0a11f038340b8a760dc66d1fa5a15114", + "raw_evidence_sha256": "c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080", + "sanitized_output_sha256": "c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "DSMODS_BACKUP_FACT_ROUTE=PVE01_TO_PVE02_TO_VM160_QGA_READONLY\nDSMODS_BACKUP_FACT_QGA_STATE=COMPLETE_OK\nDSMODS140_BEGIN=FACT_CLOSURE_READONLY\nDSMODS140_GUEST_HOSTNAME=forum-prod\nDSMODS140_ROOT=/root/dsmods-precleanup-backups/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-135R2\nDSMODS140_ENTRY_COUNT=5\nDSMODS140_TOP_LEVEL=[{\"bytes\":66,\"name\":\"SEALED\",\"type\":\"file\"},{\"bytes\":4771326,\"name\":\"dsmods-db.sql.gz\",\"type\":\"file\"},{\"bytes\":25262,\"name\":\"gram-support-source.tgz\",\"type\":\"file\"},{\"bytes\":562,\"name\":\"manifest.json\",\"type\":\"file\"},{\"bytes\":185,\"name\":\"prestate.json\",\"type\":\"file\"}]\nDSMODS140_FILE_SEALED={\"bytes\":66,\"present\":true,\"sha256\":\"7b528835d4fa40e36b574c153513254fe48f9bc5da97b4f7ead1d04f90ceb7d6\",\"stable_during_read\":true,\"type\":\"file\"}\nDSMODS140_FILE_DSMODS_DB_SQL_GZ={\"bytes\":4771326,\"present\":true,\"sha256\":\"2a47ab407e9759a780c3d725472af51cdee4200433c470e343995a84683b3bc6\",\"stable_during_read\":true,\"type\":\"file\"}\nDSMODS140_FILE_GRAM_SUPPORT_SOURCE_TGZ={\"bytes\":25262,\"present\":true,\"sha256\":\"f475bf48d290724b3f05253086f13fa8fcbe98a6baee807e49798703ea5ecad1\",\"stable_during_read\":true,\"type\":\"file\"}\nDSMODS140_FILE_MANIFEST_JSON={\"bytes\":562,\"present\":true,\"sha256\":\"d2ec9397ffe784435b026aad15af3b4f76ef6f70fe9d688d936b48d1c6b61873\",\"stable_during_read\":true,\"type\":\"file\"}\nDSMODS140_FILE_PRESTATE_JSON={\"bytes\":185,\"present\":true,\"sha256\":\"9a109dc86bf2d773ecfb91ab5dd9e494b0060860a43fc206f93dd1bb7a15bf09\",\"stable_during_read\":true,\"type\":\"file\"}\nDSMODS140_SEALED_PRESENT=true\nDSMODS140_INCOMPLETE_PRESENT=false\nDSMODS140_SHA256SUMS_PRESENT=false\nDSMODS140_PRESTATE_PARSE=false\nDSMODS140_PRESTATE_SITE_VALUES=[]\nDSMODS140_PRESTATE_BOARD_VALUES=[]\nDSMODS140_PRESTATE_PARSE_ERROR=JSONDecodeError\nDSMODS140_MANIFEST_PARSE=false\nDSMODS140_MANIFEST_SITE_VALUES=[]\nDSMODS140_MANIFEST_BOARD_VALUES=[]\nDSMODS140_MANIFEST_PARSE_ERROR=JSONDecodeError\nDSMODS140_DB_GZIP={\"error\":null,\"ok\":true,\"uncompressed_bytes\":49020992}\nDSMODS140_SOURCE_TAR={\"error\":null,\"members\":65,\"ok\":true,\"unsafe_paths\":0}\nDSMODS140_METADATA_UNCHANGED_INCLUDING_ATIME=true\nDSMODS140_END=FACTS_CAPTURED_NO_ACCEPTANCE_YET\nDSMODS_BACKUP_FACT_DECISION=FACTS_CAPTURED_NO_ACCEPTANCE_YET\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-FACT-CLOSURE-140R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" + "output": "DSMODS141_ROUTE=PVE01_TO_PVE02_TO_VM160_QGA_READONLY\nDSMODS141_QGA_STATE=COMPLETE\nDSMODS141_SUMMARY={\"a\":\"FAIL\",\"db_b\":4771326,\"db_h\":\"2a47ab407e9759a780c3d725472af51cdee4200433c470e343995a84683b3bc6\",\"fail\":[\"PRE_SITE\",\"MAN_SITE\",\"BOARD_ACTIVE\"],\"gz\":true,\"gz_u\":49020992,\"incomplete\":false,\"man_board\":[],\"man_h\":\"d2ec9397ffe784435b026aad15af3b4f76ef6f70fe9d688d936b48d1c6b61873\",\"man_site\":[],\"meta\":true,\"n\":5,\"pre_board\":[],\"pre_h\":\"9a109dc86bf2d773ecfb91ab5dd9e494b0060860a43fc206f93dd1bb7a15bf09\",\"pre_site\":[],\"sealed\":true,\"src_b\":25262,\"src_h\":\"f475bf48d290724b3f05253086f13fa8fcbe98a6baee807e49798703ea5ecad1\",\"sums\":false,\"tar\":true,\"tar_m\":65,\"unsafe\":0}\nDSMODS141_DECISION=HOLD_EXISTING_BACKUP_NOT_VERIFIED_NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 772ba113..ac17038d 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-FACT-CLOSURE-140R1 -STATUS=OK -RC=0 +COMMAND_ID=SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1 +STATUS=FAIL +RC=3 HOST=pve01 MODE=read-only -COMPONENT=gram-support-dsmods-backup-fact-closure-vm160 +COMPONENT=gram-support-dsmods-sealed-backup-acceptance-vm160 REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=5fbfdf0fd519171792750eb801c361d92ca48c19f430387ef95c700aa9037e09 +COMMAND_SHA256=86e33bc9a6dea4d5076cedd1cc2022c0ae61fa90b2a9eea6aab73c3f89f227c9 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false RESULT_CONTRACT_VALID=true RESULT_CONTRACT_STATUS=NOT_APPLICABLE RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=0 +COMMAND_RC=3 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,38 +24,14 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=5acd2baa089927b7aafc001ac0203e7e0a11f038340b8a760dc66d1fa5a15114 -SANITIZED_OUTPUT_SHA256=5acd2baa089927b7aafc001ac0203e7e0a11f038340b8a760dc66d1fa5a15114 +RAW_EVIDENCE_SHA256=c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080 +SANITIZED_OUTPUT_SHA256=c4ee46bc7858c5832be28cac584be94ef51858e81aa2ba28476723b85a1bc080 OUTPUT_BEGIN -DSMODS_BACKUP_FACT_ROUTE=PVE01_TO_PVE02_TO_VM160_QGA_READONLY -DSMODS_BACKUP_FACT_QGA_STATE=COMPLETE_OK -DSMODS140_BEGIN=FACT_CLOSURE_READONLY -DSMODS140_GUEST_HOSTNAME=forum-prod -DSMODS140_ROOT=/root/dsmods-precleanup-backups/SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-135R2 -DSMODS140_ENTRY_COUNT=5 -DSMODS140_TOP_LEVEL=[{"bytes":66,"name":"SEALED","type":"file"},{"bytes":4771326,"name":"dsmods-db.sql.gz","type":"file"},{"bytes":25262,"name":"gram-support-source.tgz","type":"file"},{"bytes":562,"name":"manifest.json","type":"file"},{"bytes":185,"name":"prestate.json","type":"file"}] -DSMODS140_FILE_SEALED={"bytes":66,"present":true,"sha256":"7b528835d4fa40e36b574c153513254fe48f9bc5da97b4f7ead1d04f90ceb7d6","stable_during_read":true,"type":"file"} -DSMODS140_FILE_DSMODS_DB_SQL_GZ={"bytes":4771326,"present":true,"sha256":"2a47ab407e9759a780c3d725472af51cdee4200433c470e343995a84683b3bc6","stable_during_read":true,"type":"file"} -DSMODS140_FILE_GRAM_SUPPORT_SOURCE_TGZ={"bytes":25262,"present":true,"sha256":"f475bf48d290724b3f05253086f13fa8fcbe98a6baee807e49798703ea5ecad1","stable_during_read":true,"type":"file"} -DSMODS140_FILE_MANIFEST_JSON={"bytes":562,"present":true,"sha256":"d2ec9397ffe784435b026aad15af3b4f76ef6f70fe9d688d936b48d1c6b61873","stable_during_read":true,"type":"file"} -DSMODS140_FILE_PRESTATE_JSON={"bytes":185,"present":true,"sha256":"9a109dc86bf2d773ecfb91ab5dd9e494b0060860a43fc206f93dd1bb7a15bf09","stable_during_read":true,"type":"file"} -DSMODS140_SEALED_PRESENT=true -DSMODS140_INCOMPLETE_PRESENT=false -DSMODS140_SHA256SUMS_PRESENT=false -DSMODS140_PRESTATE_PARSE=false -DSMODS140_PRESTATE_SITE_VALUES=[] -DSMODS140_PRESTATE_BOARD_VALUES=[] -DSMODS140_PRESTATE_PARSE_ERROR=JSONDecodeError -DSMODS140_MANIFEST_PARSE=false -DSMODS140_MANIFEST_SITE_VALUES=[] -DSMODS140_MANIFEST_BOARD_VALUES=[] -DSMODS140_MANIFEST_PARSE_ERROR=JSONDecodeError -DSMODS140_DB_GZIP={"error":null,"ok":true,"uncompressed_bytes":49020992} -DSMODS140_SOURCE_TAR={"error":null,"members":65,"ok":true,"unsafe_paths":0} -DSMODS140_METADATA_UNCHANGED_INCLUDING_ATIME=true -DSMODS140_END=FACTS_CAPTURED_NO_ACCEPTANCE_YET -DSMODS_BACKUP_FACT_DECISION=FACTS_CAPTURED_NO_ACCEPTANCE_YET -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-FACT-CLOSURE-140R1","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} +DSMODS141_ROUTE=PVE01_TO_PVE02_TO_VM160_QGA_READONLY +DSMODS141_QGA_STATE=COMPLETE +DSMODS141_SUMMARY={"a":"FAIL","db_b":4771326,"db_h":"2a47ab407e9759a780c3d725472af51cdee4200433c470e343995a84683b3bc6","fail":["PRE_SITE","MAN_SITE","BOARD_ACTIVE"],"gz":true,"gz_u":49020992,"incomplete":false,"man_board":[],"man_h":"d2ec9397ffe784435b026aad15af3b4f76ef6f70fe9d688d936b48d1c6b61873","man_site":[],"meta":true,"n":5,"pre_board":[],"pre_h":"9a109dc86bf2d773ecfb91ab5dd9e494b0060860a43fc206f93dd1bb7a15bf09","pre_site":[],"sealed":true,"src_b":25262,"src_h":"f475bf48d290724b3f05253086f13fa8fcbe98a6baee807e49798703ea5ecad1","sums":false,"tar":true,"tar_m":65,"unsafe":0} +DSMODS141_DECISION=HOLD_EXISTING_BACKUP_NOT_VERIFIED_NO_MUTATION +HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260910-GRAM-XF-DSMODS-BACKUP-VERIFY-141R1","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} OUTPUT_END CHAT_OUTPUT_END