# Chemins des fichiers
file_paths = {
    "input_file": "/var/www/html/modification_carto/ori ocas pcr 2.1",
    "output_file": "/var/www/html/modification_carto/final_output_off_corrected"
}

# Lire le contenu du fichier d'entrée
with open(file_paths["input_file"], "rb") as file:
    original_bytes = list(file.read())

# Bytes modifiés obtenus des fichiers
modified_bytes = [
    (1388869, 0), (1397894, 109), (1397895, 5), (1397896, 93), (1397897, 39), 
    (1397898, 0), (1397899, 144), (1402550, 0), (1402551, 144), (2073408, 133), 
    (2073409, 210), (2073410, 4), (2073412, 123), (2073413, 64), (2073414, 232), 
    (2073415, 255), (2073416, 27), (2073417, 111), (2073418, 99), (2073419, 243), 
    (2073420, 198), (2073421, 242), (2073422, 123), (2073423, 208), (2073425, 248), 
    (2073426, 27), (2073427, 47), (2073428, 88), (2073429, 248), (2073430, 198), 
    (2073431, 242), (2073432, 123), (2073434, 18), (2073435, 245), (2073436, 27), 
    (2073437, 239), (2073438, 54), (2073439, 243), (2073440, 198), (2073441, 242), 
    (2073443, 144), (2073444, 35)
]

# Appliquer les modifications directement
for pos, new_byte in modified_bytes:
    original_bytes[pos] = new_byte

# Écrire le fichier de sortie
with open(file_paths["output_file"], "wb") as file:
    file.write(bytearray(original_bytes))

# Lire le fichier de sortie pour vérifier les différences
with open(file_paths["output_file"], "rb") as file:
    final_output_bytes = file.read()

with open("/var/www/html/modification_carto/off rocket", "rb") as file:
    off_rocket_bytes = file.read()

# Positions pertinentes des bytes à modifier
relevant_positions = [
    1388869, 1397894, 1397895, 1397896, 1397897, 1397898, 1397899,
    1402550, 1402551, 2073408, 2073409, 2073410, 2073412, 2073413, 2073414,
    2073415, 2073416, 2073417, 2073418, 2073419, 2073420, 2073421, 2073422,
    2073423, 2073425, 2073426, 2073427, 2073428, 2073429, 2073430, 2073431,
    2073432, 2073434, 2073435, 2073436, 2073437, 2073438, 2073439, 2073440,
    2073441, 2073443, 2073444
]

# Comparer les bytes aux positions pertinentes
differences = []
for pos in relevant_positions:
    final_output_byte = final_output_bytes[pos] if pos < len(final_output_bytes) else None
    off_rocket_byte = off_rocket_bytes[pos] if pos < len(off_rocket_bytes) else None
    if final_output_byte != off_rocket_byte:
        differences.append((pos, final_output_byte, off_rocket_byte))

# Afficher les résultats de la comparaison
print("Comparaison des fichiers aux positions pertinentes :")
for pos, final_output_byte, off_rocket_byte in differences:
    print(f"Position {pos}: final_output_off = {final_output_byte}, off_rocket = {off_rocket_byte}")

if not differences:
    print("Les fichiers sont identiques aux positions pertinentes.")
else:
    print(f"Nombre de différences : {len(differences)}")
