Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

derives: parallel compiler makes builds irreproducible #129094

Open
matthiaskrgr opened this issue Aug 14, 2024 · 3 comments
Open

derives: parallel compiler makes builds irreproducible #129094

matthiaskrgr opened this issue Aug 14, 2024 · 3 comments
Labels
A-reproducibility Area: Reproducible / deterministic builds C-bug Category: This is a bug. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-compiler-parallel Working group: Parallelizing the compiler

Comments

@matthiaskrgr
Copy link
Member

file:

//@ check-pass
//@ compile-flags: -Zunpretty=expanded
//@ edition:2021
//
// This test checks the code generated for all[*] the builtin derivable traits
// on a variety of structs and enums. It protects against accidental changes to
// the generated code, and makes deliberate changes to the generated code
// easier to review.
//
// [*] It excludes `Copy` in some cases, because that changes the code
// generated for `Clone`.
//
// [*] It excludes `RustcEncodable` and `RustDecodable`, which are obsolete and
// also require the `rustc_serialize` crate.

#![crate_type = "lib"]
#![allow(dead_code)]
#![allow(deprecated)]

// Empty struct.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
struct Empty;

// A basic struct. Note: because this derives `Copy`, it gets the simple
// `clone` implemention that just does `*self`.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
struct Point {
    x: u32,
    y: u32,
}

// A basic packed struct. Note: because this derives `Copy`, it gets the simple
// `clone` implemention that just does `*self`.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
#[repr(packed)]
struct PackedPoint {
    x: u32,
    y: u32,
}

// A large struct. Note: because this derives `Copy`, it gets the simple
// `clone` implemention that just does `*self`.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
struct Big {
    b1: u32, b2: u32, b3: u32, b4: u32, b5: u32, b6: u32, b7: u32, b8: u32,
}

// A struct that doesn't impl `Copy`, which means it gets the non-simple
// `clone` implemention that clones the fields individually.
#[derive(Clone)]
struct NonCopy(u32);

// A packed struct that doesn't impl `Copy`, which means it gets the non-simple
// `clone` implemention that clones the fields individually.
#[derive(Clone)]
#[repr(packed)]
struct PackedNonCopy(u32);

// A struct that impls `Copy` manually, which means it gets the non-simple
// `clone` implemention that clones the fields individually.
#[derive(Clone)]
struct ManualCopy(u32);
impl Copy for ManualCopy {}

// A packed struct that impls `Copy` manually, which means it gets the
// non-simple `clone` implemention that clones the fields individually.
#[derive(Clone)]
#[repr(packed)]
struct PackedManualCopy(u32);
impl Copy for PackedManualCopy {}

// A struct with an unsized field. Some derives are not usable in this case.
#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
struct Unsized([u32]);

trait Trait {
    type A;
}

// A generic struct involving an associated type.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
struct Generic<T: Trait, U> {
    t: T,
    ta: T::A,
    u: U,
}

// A packed, generic tuple struct involving an associated type. Because it is
// packed, a `T: Copy` bound is added to all impls (and where clauses within
// them) except for `Default`. This is because we must access fields using
// copies (e.g. `&{self.0}`), instead of using direct references (e.g.
// `&self.0`) which may be misaligned in a packed struct.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
#[repr(packed)]
struct PackedGeneric<T: Trait, U>(T, T::A, U);

// An empty enum.
#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
enum Enum0 {}

// A single-variant enum.
#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
enum Enum1 {
    Single { x: u32 }
}

// A C-like, fieldless enum with a single variant.
#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
enum Fieldless1 {
    #[default]
    A,
}

// A C-like, fieldless enum.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
enum Fieldless {
    #[default]
    A,
    B,
    C,
}

// An enum with multiple fieldless and fielded variants.
#[derive(Clone, Copy, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
enum Mixed {
    #[default]
    P,
    Q,
    R(u32),
    S { d1: Option<u32>, d2: Option<i32> },
}

// An enum with no fieldless variants. Note that `Default` cannot be derived
// for this enum.
#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
enum Fielded {
    X(u32),
    Y(bool),
    Z(Option<i32>),
}

// A generic enum. Note that `Default` cannot be derived for this enum.
#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
enum EnumGeneric<T, U> {
    One(T),
    Two(U),
}

// An enum that has variant, which does't implement `Copy`.
#[derive(PartialEq)]
enum NonCopyEnum {
    // The `dyn NonCopyTrait` implements `PartialEq`, but it doesn't require `Copy`.
    // So we cannot generate `PartialEq` with dereference.
    NonCopyField(Box<dyn NonCopyTrait>),
}
trait NonCopyTrait {}
impl PartialEq for dyn NonCopyTrait {
    fn eq(&self, _other: &Self) -> bool {
        true
    }
}

// A union. Most builtin traits are not derivable for unions.
#[derive(Clone, Copy)]
pub union Union {
    pub b: bool,
    pub u: u32,
    pub i: i32,
}

compiled:

rustc file.rs -edition=2021 -Zremap-cwd-prefix=reproducible_dir -Ccodegen-units=1 -Cdebuginfo=1 -Copt-level=3 -o 1 -Zthreads=16 
rustc file.rs -edition=2021 -Zremap-cwd-prefix=reproducible_dir -Ccodegen-units=1 -Cdebuginfo=1 -Copt-level=3 -o 2 -Zthreads=16 

and then diffed: diff -u <(hexyl 1) <(hexyl 2)

--- /proc/self/fd/11	2024-08-14 16:04:37.970531847 +0200
+++ /proc/self/fd/12	2024-08-14 16:04:37.973865174 +0200
@@ -7,7 +7,7 @@
 │00000050│ 20 20 20 20 20 20 20 20 ┊ 20 20 20 20 20 20 20 20 │        ┊        │
 │*       │                         ┊                         │        ┊        │
 │00000070│ 20 20 20 20 20 20 20 20 ┊ 20 20 20 20 35 34 20 20 │        ┊    54  │
-│00000080│ 20 20 20 20 20 20 60 0a ┊ 31 2e 64 65 72 69 76 69 │      `_┊1.derivi│
+│00000080│ 20 20 20 20 20 20 60 0a ┊ 32 2e 64 65 72 69 76 69 │      `_┊2.derivi│
 │00000090│ 6e 67 5f 61 6c 6c 5f 63 ┊ 6f 64 65 67 65 6e 2e 32 │ng_all_c┊odegen.2│
 │000000a0│ 33 62 38 65 30 33 36 33 ┊ 39 61 62 64 30 32 38 2d │3b8e0363┊9abd028-│
 │000000b0│ 63 67 75 2e 30 2e 72 63 ┊ 67 75 2e 6f 2f 0a 6c 69 │cgu.0.rc┊gu.o/_li│
@@ -674,26 +674,26 @@
 │00002a00│ 01 00 aa 50 17 0e 01 00 ┊ 00 00 00 00 00 00 01 01 │•⋄×P•••⋄┊⋄⋄⋄⋄⋄⋄••│
 │00002a10│ 38 10 f3 06 00 00 00 00 ┊ 00 00 02 17 5f 03 00 02 │8•×•⋄⋄⋄⋄┊⋄⋄••_•⋄•│
 │00002a20│ 03 00 00 d9 2a 01 00 10 ┊ fa 06 00 00 04 00 02 02 │•⋄⋄×*•⋄•┊ו⋄⋄•⋄••│
-│00002a30│ 01 00 00 28 00 03 0f 26 ┊ 00 00 00 f9 89 01 dc 1e │•⋄⋄(⋄••&┊⋄⋄⋄×וו│
+│00002a30│ 01 00 00 28 00 03 0f 26 ┊ 00 00 00 f9 8a 01 dc 1e │•⋄⋄(⋄••&┊⋄⋄⋄×וו│
 │00002a40│ 35 70 02 01 00 01 00 02 ┊ db 95 02 00 30 10 b6 07 │5p••⋄•⋄•┊×ו⋄0•×•│
 │00002a50│ 00 00 0f 17 01 00 01 00 ┊ 02 db 95 02 00 30 10 c2 │⋄⋄•••⋄•⋄┊•×ו⋄0•×│
 │00002a60│ 07 00 00 00 01 01 d9 2a ┊ 00 0f 59 00 00 00 00 00 │•⋄⋄⋄••×*┊⋄•Y⋄⋄⋄⋄⋄│
 │00002a70│ 0f 60 01 00 01 00 00 00 ┊ 00 00 00 00 00 03 03 30 │•`•⋄•⋄⋄⋄┊⋄⋄⋄⋄⋄••0│
 │00002a80│ 11 b6 07 00 00 00 04 00 ┊ 02 06 00 01 02 00 01 00 │•×•⋄⋄⋄•⋄┊••⋄••⋄•⋄│
-│00002a90│ ca 4f 29 86 01 e7 cf 01 ┊ 97 01 02 01 04 06 0f 0c │×O)ו×ו┊ו•••••_│
-│00002aa0│ 01 00 06 00 00 00 01 02 ┊ 00 01 00 ca 4f 01 91 86 │•⋄•⋄⋄⋄••┊⋄•⋄×O•××│
+│00002a90│ ca 4f 29 87 01 e7 cf 01 ┊ 97 01 02 01 04 06 0f 0c │×O)ו×ו┊ו•••••_│
+│00002aa0│ 01 00 06 00 00 00 01 02 ┊ 00 01 00 ca 4f 01 91 87 │•⋄•⋄⋄⋄••┊⋄•⋄×O•××│
 │00002ab0│ 01 db cf 01 97 01 02 01 ┊ 07 02 4d 88 d6 01 97 01 │•×וו••┊••M×וו│
 │00002ac0│ 02 00 02 01 0d 02 e9 55 ┊ 01 01 ed 49 02 00 02 00 │•⋄••_•×U┊••×I•⋄•⋄│
-│00002ad0│ 29 86 01 db cf 01 97 01 ┊ 02 01 06 00 0f 4a 03 00 │)ו×וו┊•••⋄•J•⋄│
-│00002ae0│ 01 01 00 03 61 86 01 e1 ┊ cf 01 97 01 02 00 04 09 │••⋄•aו×┊וו•⋄•_│
-│00002af0│ 86 01 ec cf 01 97 01 02 ┊ 01 05 06 30 11 c2 07 00 │ו×וו•┊•••0•×•⋄│
+│00002ad0│ 29 87 01 db cf 01 97 01 ┊ 02 01 06 00 0f 4a 03 00 │)ו×וו┊•••⋄•J•⋄│
+│00002ae0│ 01 01 00 03 61 87 01 e1 ┊ cf 01 97 01 02 00 04 09 │••⋄•aו×┊וו•⋄•_│
+│00002af0│ 87 01 ec cf 01 97 01 02 ┊ 01 05 06 30 11 c2 07 00 │ו×וו•┊•••0•×•⋄│
 │00002b00│ 00 00 05 00 02 06 00 01 ┊ 02 00 01 01 ca 4f 0f 7c │⋄⋄•⋄••⋄•┊•⋄••×O•|│
 │00002b10│ 02 04 07 0f 81 02 00 07 ┊ 00 00 00 01 02 00 01 01 │••••×•⋄•┊⋄⋄⋄••⋄••│
 │00002b20│ ca 4f 01 0f 75 02 07 02 ┊ 0f 6e 00 02 01 ea 53 02 │×O••u•••┊•n⋄••×S•│
 │00002b30│ 01 02 00 0f 63 01 07 00 ┊ 0f a6 00 00 01 02 00 03 │••⋄•c••⋄┊•×⋄⋄••⋄•│
 │00002b40│ 0f 5c 00 01 0f 55 02 05 ┊ 07 01 00 11 80 07 00 00 │•\⋄••U••┊••⋄•×•⋄⋄│
 │00002b50│ 04 00 02 02 01 00 00 2a ┊ 00 03 20 11 fc 06 00 00 │•⋄•••⋄⋄*┊⋄• •×•⋄⋄│
-│00002b60│ 00 00 f9 86 01 9c cf 01 ┊ 63 97 01 02 01 00 01 00 │⋄⋄×ו×ו┊cו••⋄•⋄│
+│00002b60│ 00 00 f9 87 01 9c cf 01 ┊ 63 97 01 02 01 00 01 00 │⋄⋄×ו×ו┊cו••⋄•⋄│
 │00002b70│ 02 e0 ed 02 01 01 ed 49 ┊ 0f f9 00 0f 19 01 00 01 │•×ו••×I┊•×⋄•••⋄•│
 │00002b80│ 00 02 e0 ed 02 01 01 ed ┊ 49 0f 8e 00 00 08 01 9e │⋄•×ו••×┊I•×⋄⋄••×│
 │00002b90│ 47 00 0f 38 00 00 8c 4f ┊ 00 0f 3f 00 00 eb 49 00 │G⋄•8⋄⋄×O┊⋄•?⋄⋄×I⋄│
@@ -701,8 +701,8 @@
 │00002bb0│ 30 01 00 00 d0 51 00 0f ┊ bc 00 01 ca 4f 00 17 2c │0•⋄⋄×Q⋄•┊×⋄•×O⋄•,│
 │00002bc0│ 01 01 01 ca 4f 00 17 34 ┊ 01 02 00 02 00 06 02 1b │•••×O⋄•4┊••⋄•⋄•••│
 │00002bd0│ 0f 76 00 00 00 01 00 01 ┊ 01 00 02 e2 0d 0f 83 00 │•v⋄⋄⋄•⋄•┊•⋄•×_•×⋄│
-│00002be0│ 00 00 02 00 01 02 00 02 ┊ 1b 29 86 01 af cf 01 97 │⋄⋄•⋄••⋄•┊•)ו×ו×│
-│00002bf0│ 01 02 01 00 00 04 00 01 ┊ 01 00 02 e2 0d 29 86 01 │•••⋄⋄•⋄•┊•⋄•×_)ו│
+│00002be0│ 00 00 02 00 01 02 00 02 ┊ 1b 29 87 01 af cf 01 97 │⋄⋄•⋄••⋄•┊•)ו×ו×│
+│00002bf0│ 01 02 01 00 00 04 00 01 ┊ 01 00 02 e2 0d 29 87 01 │•••⋄⋄•⋄•┊•⋄•×_)ו│
 │00002c00│ b6 cf 01 97 01 02 01 00 ┊ 00 02 00 01 02 00 02 1b │×וו••⋄┊⋄•⋄••⋄••│
 │00002c10│ 0f 27 02 00 00 05 00 01 ┊ 01 00 02 e2 0d 0f 20 02 │•'•⋄⋄•⋄•┊•⋄•×_• •│
 │00002c20│ 00 00 02 00 01 02 00 0f ┊ cd 01 00 01 02 00 ea 53 │⋄⋄•⋄••⋄•┊ו⋄••⋄×S│
@@ -735,12 +735,12 @@
 │00002dd0│ 00 0f 2e 01 00 01 00 00 ┊ 00 00 00 00 00 00 04 0b │⋄•.•⋄•⋄⋄┊⋄⋄⋄⋄⋄⋄••│
 │00002de0│ 30 14 b6 07 00 00 00 04 ┊ 00 02 06 00 01 02 00 01 │0•×•⋄⋄⋄•┊⋄••⋄••⋄•│
 │00002df0│ 00 ca 4f 0f 13 00 00 05 ┊ 00 02 06 00 02 02 00 01 │⋄×O••⋄⋄•┊⋄••⋄••⋄•│
-│00002e00│ 00 ca 4f 29 85 01 f6 88 ┊ 03 66 02 02 04 0a 0f 0b │⋄×O)ו××┊•f•••_••│
-│00002e10│ 02 00 0a 00 00 00 01 02 ┊ 00 01 00 ca 4f 31 85 01 │•⋄_⋄⋄⋄••┊⋄•⋄×O1ו│
+│00002e00│ 00 ca 4f 29 86 01 f6 88 ┊ 03 66 02 02 04 0a 0f 0b │⋄×O)ו××┊•f•••_••│
+│00002e10│ 02 00 0a 00 00 00 01 02 ┊ 00 01 00 ca 4f 31 86 01 │•⋄_⋄⋄⋄••┊⋄•⋄×O1ו│
 │00002e20│ fd 88 03 66 02 02 04 0b ┊ 0f 0b 02 00 0b 00 00 00 │×וf••••┊•••⋄•⋄⋄⋄│
-│00002e30│ 02 02 00 01 00 ca 4f f9 ┊ 85 01 d1 88 03 33 66 02 │••⋄•⋄×O×┊ו×ו3f•│
-│00002e40│ 02 00 09 00 07 18 01 0a ┊ 00 01 0b 00 09 85 01 83 │•⋄_⋄•••_┊⋄••⋄_ו×│
-│00002e50│ 89 03 66 02 02 05 0b 0f ┊ 0b 02 05 0a f9 85 01 cc │וf•••••┊•••_×ו×│
+│00002e30│ 02 02 00 01 00 ca 4f f9 ┊ 86 01 d1 88 03 33 66 02 │••⋄•⋄×O×┊ו×ו3f•│
+│00002e40│ 02 00 09 00 07 18 01 0a ┊ 00 01 0b 00 09 86 01 83 │•⋄_⋄•••_┊⋄••⋄_ו×│
+│00002e50│ 89 03 66 02 02 05 0b 0f ┊ 0b 02 05 0a f9 86 01 cc │וf•••••┊•••_×ו×│
 │00002e60│ 88 03 39 66 02 02 00 03 ┊ 00 0b 02 02 d3 e2 02 01 │ו9f••⋄•┊⋄•••×ו•│
 │00002e70│ 01 01 ac 4c 00 00 01 00 ┊ 09 00 0f 9a 00 00 06 00 │••×L⋄⋄•⋄┊_⋄•×⋄⋄•⋄│
 │00002e80│ 0a 09 00 01 0f a4 00 01 ┊ 01 06 00 01 00 02 02 01 │__⋄••×⋄•┊••⋄•⋄•••│
@@ -753,10 +753,10 @@
 │00002ef0│ 02 02 00 01 01 ca 4f 0f ┊ c0 03 00 0c 00 07 18 01 │••⋄••×O•┊ו⋄_⋄•••│
 │00002f00│ 0d 00 01 0e 00 0f b9 03 ┊ 05 0e 0f be 03 05 0d 0f │_⋄••⋄•×•┊•••×••_•│
 │00002f10│ b3 03 00 00 00 0b 02 02 ┊ d3 e2 02 01 01 01 ac 4c │ו⋄⋄⋄•••┊×ו•••×L│
-│00002f20│ 00 00 01 01 0c 00 09 85 ┊ 01 84 89 03 66 02 03 05 │⋄⋄••_⋄_×┊•×וf•••│
+│00002f20│ 00 00 01 01 0c 00 09 86 ┊ 01 84 89 03 66 02 03 05 │⋄⋄••_⋄_×┊•×וf•••│
 │00002f30│ 0c 01 0f 95 00 00 03 00 ┊ 00 01 00 14 9b 07 00 00 │_••×⋄⋄•⋄┊⋄•⋄•×•⋄⋄│
 │00002f40│ 04 00 02 02 01 00 00 32 ┊ 00 04 50 14 91 07 00 00 │•⋄•••⋄⋄2┊⋄•P•×•⋄⋄│
-│00002f50│ 00 00 17 72 01 01 00 00 ┊ 00 f9 85 01 80 88 03 97 │⋄⋄•r••⋄⋄┊⋄×ו×ו×│
+│00002f50│ 00 00 17 72 01 01 00 00 ┊ 00 f9 86 01 80 88 03 97 │⋄⋄•r••⋄⋄┊⋄×ו×ו×│
 │00002f60│ 01 66 02 01 00 01 00 02 ┊ ef 8d 02 00 17 8c 01 00 │•f••⋄•⋄•┊×ו⋄•×•⋄│
 │00002f70│ 0f 17 01 00 01 00 02 ef ┊ 8d 02 00 0f d4 00 00 0f │•••⋄•⋄•×┊ו⋄•×⋄⋄•│
 │00002f80│ 01 e9 4b 00 0f 3a 00 00 ┊ 8c 4f 00 0f 41 00 00 8c │•×K⋄•:⋄⋄┊×O⋄•A⋄⋄×│
@@ -769,18 +769,18 @@
 │00002ff0│ 00 17 d4 01 03 00 02 00 ┊ 07 02 1b 0f b1 00 00 00 │⋄•×••⋄•⋄┊••••×⋄⋄⋄│
 │00003000│ 01 00 01 01 00 02 87 0a ┊ 0f be 00 00 00 02 00 01 │•⋄••⋄•×_┊•×⋄⋄⋄•⋄•│
 │00003010│ 02 00 02 f9 03 17 35 02 ┊ 01 00 00 03 00 00 02 1b │•⋄•×••5•┊•⋄⋄•⋄⋄••│
-│00003020│ 29 85 01 8f 88 03 66 02 ┊ 02 00 00 04 00 01 01 00 │)ו×וf•┊•⋄⋄•⋄••⋄│
-│00003030│ 02 87 0a 29 85 01 96 88 ┊ 03 66 02 02 00 00 05 00 │•×_)ו××┊•f••⋄⋄•⋄│
+│00003020│ 29 86 01 8f 88 03 66 02 ┊ 02 00 00 04 00 01 01 00 │)ו×וf•┊•⋄⋄•⋄••⋄│
+│00003030│ 02 87 0a 29 86 01 96 88 ┊ 03 66 02 02 00 00 05 00 │•×_)ו××┊•f••⋄⋄•⋄│
 │00003040│ 01 02 00 02 1b 0f 25 03 ┊ 00 00 07 00 01 01 00 02 │••⋄•••%•┊⋄⋄•⋄••⋄•│
 │00003050│ 87 0a 0f 1f 03 00 00 08 ┊ 00 01 02 00 17 12 01 01 │×_•••⋄⋄•┊⋄••⋄••••│
 │00003060│ 00 01 00 00 00 00 00 00 ┊ 00 00 04 0a 30 15 b6 07 │⋄•⋄⋄⋄⋄⋄⋄┊⋄⋄•_0•×•│
 │00003070│ 00 00 00 04 00 02 06 00 ┊ 01 02 00 01 00 ca 4f 0f │⋄⋄⋄•⋄••⋄┊••⋄•⋄×O•│
 │00003080│ 13 00 00 05 00 02 06 00 ┊ 02 02 00 01 00 ca 4f 29 │•⋄⋄•⋄••⋄┊••⋄•⋄×O)│
-│00003090│ 85 01 b4 8e 03 66 02 02 ┊ 04 09 0f 0b 02 00 09 00 │ו×וf••┊•_•••⋄_⋄│
-│000030a0│ 00 00 01 02 00 01 00 ca ┊ 4f 31 85 01 bb 8e 03 66 │⋄⋄••⋄•⋄×┊O1ו×וf│
+│00003090│ 86 01 b4 8e 03 66 02 02 ┊ 04 09 0f 0b 02 00 09 00 │ו×וf••┊•_•••⋄_⋄│
+│000030a0│ 00 00 01 02 00 01 00 ca ┊ 4f 31 86 01 bb 8e 03 66 │⋄⋄••⋄•⋄×┊O1ו×וf│
 │000030b0│ 02 02 04 0a 0f 0b 02 00 ┊ 0a 00 00 00 02 02 00 01 │•••_•••⋄┊_⋄⋄⋄••⋄•│
-│000030c0│ 00 ca 4f f9 85 01 8f 8e ┊ 03 33 66 02 02 00 03 00 │⋄×O×ו××┊•3f••⋄•⋄│
-│000030d0│ 07 18 01 09 00 01 0a 00 ┊ 09 85 01 c1 8e 03 66 02 │•••_⋄•_⋄┊_ו×וf•│
+│000030c0│ 00 ca 4f f9 86 01 8f 8e ┊ 03 33 66 02 02 00 03 00 │⋄×O×ו××┊•3f••⋄•⋄│
+│000030d0│ 07 18 01 09 00 01 0a 00 ┊ 09 86 01 c1 8e 03 66 02 │•••_⋄•_⋄┊_ו×וf•│
 │000030e0│ 02 05 0a 0f 0b 02 05 09 ┊ 0f 7c 00 00 06 00 0a 03 │••_••••_┊•|⋄⋄•⋄_•│
 │000030f0│ 00 01 0f 86 00 01 01 06 ┊ 00 01 00 02 02 01 00 01 │⋄••×⋄•••┊⋄•⋄•••⋄•│
 │00003100│ 0f 94 01 00 00 00 00 00 ┊ 03 00 01 08 15 bb 07 00 │•×•⋄⋄⋄⋄⋄┊•⋄•••×•⋄│
@@ -793,7 +793,7 @@
 │00003170│ 03 05 0c 0f 9b 03 05 0b ┊ 01 0f 6e 00 00 03 00 00 │••_•×•••┊••n⋄⋄•⋄⋄│
 │00003180│ 01 00 15 a0 07 00 00 04 ┊ 00 02 02 01 00 00 34 00 │•⋄•×•⋄⋄•┊⋄•••⋄⋄4⋄│
 │00003190│ 04 18 15 9d 07 00 00 00 ┊ 00 17 2d 01 01 00 00 00 │•••×•⋄⋄⋄┊⋄•-••⋄⋄⋄│
-│000031a0│ f9 85 01 d3 8d 03 81 01 ┊ 66 02 01 00 01 00 02 f5 │×ו×וו┊f••⋄•⋄•×│
+│000031a0│ f9 86 01 d3 8d 03 81 01 ┊ 66 02 01 00 01 00 02 f5 │×ו×וו┊f••⋄•⋄•×│
 │000031b0│ 8d 02 00 17 47 01 00 0f ┊ 17 01 00 01 00 02 f5 8d │ו⋄•G•⋄•┊••⋄•⋄•××│
 │000031c0│ 02 00 0f ad 00 00 0d 01 ┊ ac 4c 00 0f 3a 00 00 8c │•⋄•×⋄⋄_•┊×L⋄•:⋄⋄×│
 │000031d0│ 4f 00 0f 41 00 00 8c 4f ┊ 00 0f 48 00 01 ac 4c 00 │O⋄•A⋄⋄×O┊⋄•H⋄•×L⋄│
@@ -804,8 +804,8 @@
 │00003220│ 01 03 01 ca 4f 00 17 7d ┊ 01 03 00 02 00 07 02 1b │•••×O⋄•}┊••⋄•⋄•••│
 │00003230│ 0f 9f 00 00 00 01 00 01 ┊ 01 00 02 87 0a 0f ac 00 │•×⋄⋄⋄•⋄•┊•⋄•×_•×⋄│
 │00003240│ 00 00 02 00 01 02 00 02 ┊ f9 03 17 de 01 01 00 00 │⋄⋄•⋄••⋄•┊ו•×••⋄⋄│
-│00003250│ 03 00 00 02 1b 29 85 01 ┊ da 8d 03 66 02 02 00 00 │•⋄⋄••)ו┊×וf••⋄⋄│
-│00003260│ 04 00 01 01 00 02 87 0a ┊ 29 85 01 e1 8d 03 66 02 │•⋄••⋄•×_┊)ו×וf•│
+│00003250│ 03 00 00 02 1b 29 86 01 ┊ da 8d 03 66 02 02 00 00 │•⋄⋄••)ו┊×וf••⋄⋄│
+│00003260│ 04 00 01 01 00 02 87 0a ┊ 29 86 01 e1 8d 03 66 02 │•⋄••⋄•×_┊)ו×וf•│
 │00003270│ 02 00 00 05 00 01 02 00 ┊ 02 1b 0f 25 03 00 00 07 │•⋄⋄•⋄••⋄┊•••%•⋄⋄•│
 │00003280│ 00 01 01 00 02 87 0a 0f ┊ 1f 03 00 00 08 00 01 02 │⋄••⋄•×_•┊••⋄⋄•⋄••│
 │00003290│ 00 17 00 01 01 00 01 00 ┊ 00 00 00 00 00 00 00 01 │⋄•⋄••⋄•⋄┊⋄⋄⋄⋄⋄⋄⋄•│
@@ -2218,18 +2218,18 @@
 │00008a80│ 01 00 ca 4f 0f 19 00 00 ┊ 04 00 02 06 00 02 03 00 │•⋄×O••⋄⋄┊•⋄••⋄••⋄│
 │00008a90│ 05 01 01 ec 14 00 01 00 ┊ ca 4f 0f 2f 01 04 05 0f │•••×•⋄•⋄┊×O•/••••│
 │00008aa0│ 34 01 00 05 00 02 06 00 ┊ 03 00 0f 3f 01 04 06 0f │4•⋄•⋄••⋄┊•⋄•?••••│
-│00008ab0│ 44 01 00 06 00 02 06 00 ┊ 04 00 39 8b 01 e7 f4 02 │D•⋄•⋄••⋄┊•⋄9ו×ו│
+│00008ab0│ 44 01 00 06 00 02 06 00 ┊ 04 00 39 89 01 e7 f4 02 │D•⋄•⋄••⋄┊•⋄9ו×ו│
 │00008ac0│ 66 02 03 04 07 0f 0b 03 ┊ 00 07 00 00 00 01 03 00 │f•••••••┊⋄•⋄⋄⋄••⋄│
-│00008ad0│ 05 01 01 ec 14 00 01 00 ┊ ca 4f 41 8b 01 f2 f4 02 │•••×•⋄•⋄┊×OAו×ו│
+│00008ad0│ 05 01 01 ec 14 00 01 00 ┊ ca 4f 41 89 01 f2 f4 02 │•••×•⋄•⋄┊×OAו×ו│
 │00008ae0│ 66 02 03 04 08 0f 0b 03 ┊ 00 08 00 00 00 02 03 00 │f•••••••┊⋄•⋄⋄⋄••⋄│
-│00008af0│ 05 01 01 ec 14 00 01 00 ┊ ca 4f 99 8b 01 e7 f4 02 │•••×•⋄•⋄┊×O×ו×ו│
-│00008b00│ 66 02 03 00 00 00 07 12 ┊ 01 07 00 01 08 00 09 8b │f••⋄⋄⋄••┊••⋄••⋄_×│
+│00008af0│ 05 01 01 ec 14 00 01 00 ┊ ca 4f 99 89 01 e7 f4 02 │•••×•⋄•⋄┊×O×ו×ו│
+│00008b00│ 66 02 03 00 00 00 07 12 ┊ 01 07 00 01 08 00 09 89 │f••⋄⋄⋄••┊••⋄••⋄_×│
 │00008b10│ 01 f9 f4 02 66 02 03 05 ┊ 08 0f 0b 03 05 07 08 4f │•×וf•••┊•••••••O│
 │00008b20│ fd 1a 00 01 05 06 0f 08 ┊ 01 05 05 01 00 4f c6 1a │ו⋄•••••┊••••⋄Oו│
 │00008b30│ 00 00 04 00 02 02 01 00 ┊ 00 85 02 00 04 48 4f bd │⋄⋄•⋄•••⋄┊⋄ו⋄•HO×│
 │00008b40│ 1a 00 00 00 00 0f 08 01 ┊ 00 00 00 fd 96 9f 03 55 │•⋄⋄⋄⋄•••┊⋄⋄⋄××וU│
 │00008b50│ 66 02 01 01 01 00 02 ec ┊ 17 04 00 06 00 06 01 ca │f••••⋄•×┊••⋄•⋄••×│
-│00008b60│ 4f 01 ca 4f 0f f9 00 f9 ┊ 8b 01 c4 f4 02 38 66 02 │O•×O•×⋄×┊ו×ו8f•│
+│00008b60│ 4f 01 ca 4f 0f f9 00 f9 ┊ 89 01 c4 f4 02 38 66 02 │O•×O•×⋄×┊ו×ו8f•│
 │00008b70│ 01 02 01 00 02 81 8d 02 ┊ 00 e5 c5 9f 03 66 02 01 │•••⋄•×ו┊⋄××וf••│
 │00008b80│ 02 00 09 01 00 00 0f 49 ┊ 00 00 fe 8d 02 00 0f 51 │•⋄_•⋄⋄•I┊⋄⋄×ו⋄•Q│
 │00008b90│ 00 00 fe 8d 02 00 0f 59 ┊ 00 00 d0 51 00 17 32 01 │⋄⋄×ו⋄•Y┊⋄⋄×Q⋄•2•│
@@ -2241,8 +2241,8 @@
 │00008bf0│ 00 00 00 08 5f 5f 61 72 ┊ 67 31 5f 30 c1 17 92 01 │⋄⋄⋄•__ar┊g1_0וו│
 │00008c00│ 01 00 00 04 00 00 02 1b ┊ 2d 9c 9f 03 66 02 02 00 │•⋄⋄•⋄⋄••┊-×וf••⋄│
 │00008c10│ 00 05 00 01 01 00 02 87 ┊ 0a 2d a3 9f 03 66 02 02 │⋄•⋄••⋄•×┊_-×וf••│
-│00008c20│ 00 00 06 00 01 02 00 02 ┊ 1b 29 8b 01 ca f4 02 66 │⋄⋄•⋄••⋄•┊•)ו×וf│
-│00008c30│ 02 03 00 00 03 00 01 01 ┊ 00 02 87 0a 29 8b 01 d1 │••⋄⋄•⋄••┊⋄•×_)ו×│
+│00008c20│ 00 00 06 00 01 02 00 02 ┊ 1b 29 89 01 ca f4 02 66 │⋄⋄•⋄••⋄•┊•)ו×וf│
+│00008c30│ 02 03 00 00 03 00 01 01 ┊ 00 02 87 0a 29 89 01 d1 │••⋄⋄•⋄••┊⋄•×_)ו×│
 │00008c40│ f4 02 66 02 03 00 00 04 ┊ 00 01 02 00 17 0f 01 01 │וf••⋄⋄•┊⋄••⋄••••│
 │00008c50│ 00 01 00 00 00 00 00 00 ┊ 00 00 01 00 01 00 50 ca │⋄•⋄⋄⋄⋄⋄⋄┊⋄⋄•⋄•⋄P×│
 │00008c60│ 1a 00 00 04 00 02 02 01 ┊ 00 00 87 02 00 02 10 50 │•⋄⋄•⋄•••┊⋄⋄ו⋄••P│
@@ -2518,7 +2518,7 @@
 │00009d40│ 03 00 05 01 01 c1 18 03 ┊ 01 00 d6 b0 02 78 68 a0 │•⋄•••×••┊•⋄×וxh×│
 │00009d50│ 1f 00 01 00 08 00 02 06 ┊ 00 01 03 00 05 01 01 c1 │•⋄•⋄•⋄••┊⋄••⋄•••×│
 │00009d60│ 18 03 01 01 b7 b1 02 0f ┊ 34 03 04 0c 0f 39 03 04 │••••×ו•┊4••_•9••│
-│00009d70│ 0d 21 83 01 83 ae 01 78 ┊ 02 05 00 0a 00 0a 01 03 │_!ו×וx┊••⋄_⋄_••│
+│00009d70│ 0d 21 82 01 83 ae 01 78 ┊ 02 05 00 0a 00 0a 01 03 │_!ו×וx┊••⋄_⋄_••│
 │00009d80│ 00 05 01 01 c1 18 03 01 ┊ 00 d6 b0 02 0f 1b 06 00 │⋄•••×•••┊⋄×ו•••⋄│
 │00009d90│ 0c 00 02 06 00 0a 00 01 ┊ 13 54 29 08 07 02 17 3a │_⋄••⋄_⋄•┊•T)••••:│
 │00009da0│ 09 00 02 01 94 a7 02 02 ┊ 00 02 00 13 76 29 00 0a │_⋄••×ו•┊⋄•⋄•v)⋄_│
@@ -2530,7 +2530,7 @@
 │00009e00│ 01 ea 53 02 01 02 00 13 ┊ 76 29 01 0f 00 13 38 29 │•×S•••⋄•┊v)••⋄•8)│
 │00009e10│ 00 00 01 0a 00 03 13 8a ┊ 29 00 00 01 00 68 ae 1e │⋄⋄•_⋄••×┊)⋄⋄•⋄hו│
 │00009e20│ 00 00 04 00 00 01 17 33 ┊ 01 01 01 00 03 00 02 02 │⋄⋄•⋄⋄••3┊•••⋄•⋄••│
-│00009e30│ 03 03 02 01 03 00 03 09 ┊ 83 01 e5 b1 01 78 02 06 │•••••⋄•_┊ו×וx••│
+│00009e30│ 03 03 02 01 03 00 03 09 ┊ 82 01 e5 b1 01 78 02 06 │•••••⋄•_┊ו×וx••│
 │00009e40│ 00 0d 00 02 06 00 01 05 ┊ 00 05 01 01 c1 18 03 01 │⋄_⋄••⋄••┊⋄•••×•••│
 │00009e50│ 00 d6 b0 02 05 01 02 80 ┊ 02 01 01 00 ca 4f 13 38 │⋄×ו•••×┊•••⋄×O•8│
 │00009e60│ 29 09 04 0e 13 38 29 09 ┊ 00 0e 00 00 00 01 05 00 │)_•••8)_┊⋄•⋄⋄⋄••⋄│
@@ -2546,7 +2546,7 @@
 │00009f00│ 13 38 29 11 00 01 0d 00 ┊ 03 13 8a 29 00 00 01 17 │•8)•⋄•_⋄┊••×)⋄⋄••│
 │00009f10│ 9e 01 06 01 00 0a 00 02 ┊ 01 00 03 05 06 08 00 00 │ו••⋄_⋄•┊•⋄••••⋄⋄│
 │00009f20│ 01 17 b0 01 05 05 00 01 ┊ 13 95 29 09 05 0e 01 01 │••×•••⋄•┊•×)_••••│
-│00009f30│ 86 01 ff cf 01 97 01 02 ┊ 00 00 06 00 01 13 95 29 │ו×וו•┊⋄⋄•⋄••×)│
+│00009f30│ 87 01 ff cf 01 97 01 02 ┊ 00 00 06 00 01 13 95 29 │ו×וו•┊⋄⋄•⋄••×)│
 │00009f40│ 0a 05 0f 01 08 68 ad 1e ┊ 00 01 00 03 00 03 17 17 │_••••hו┊⋄•⋄•⋄•••│
 │00009f50│ 01 0c 00 13 00 02 06 00 ┊ 01 05 00 05 01 01 c1 18 │•_⋄•⋄••⋄┊••⋄•••×•│
 │00009f60│ 03 01 01 b7 b1 02 05 01 ┊ 02 80 02 01 01 00 02 03 │•••×ו••┊•×•••⋄••│
@@ -3110,7 +3110,7 @@
 │0000c240│ 03 01 00 b7 b1 02 01 0f ┊ 18 04 00 06 00 05 0d ea │••⋄×ו••┊••⋄•⋄•_×│
 │0000c250│ 94 04 78 02 04 00 0a 00 ┊ 02 06 00 01 05 00 05 01 │וx••⋄_⋄┊••⋄••⋄••│
 │0000c260│ 01 95 1a 02 01 00 b7 b1 ┊ 02 05 01 02 80 02 01 01 │•×•••⋄××┊••••×•••│
-│0000c270│ 00 02 03 4d f5 94 04 78 ┊ 02 05 04 0b 29 87 01 8c │⋄••M×וx┊••••)ו×│
+│0000c270│ 00 02 03 4d f5 94 04 78 ┊ 02 05 04 0b 29 85 01 8c │⋄••M×וx┊••••)ו×│
 │0000c280│ 75 9b 01 02 06 00 0b 00 ┊ 00 00 01 05 00 05 01 01 │uו••⋄•⋄┊⋄⋄••⋄•••│
 │0000c290│ 95 1a 02 01 00 b7 b1 02 ┊ 05 01 02 80 02 01 01 00 │ו••⋄×ו┊•••×•••⋄│
 │0000c2a0│ 02 03 7d f0 94 04 78 02 ┊ 05 00 08 00 0b 02 02 d3 │••}×וx•┊•⋄•⋄•••×│
@@ -3120,7 +3120,7 @@
 │0000c2e0│ 17 22 02 01 00 00 00 17 ┊ 29 02 01 00 00 00 17 30 │•"••⋄⋄⋄•┊)••⋄⋄⋄•0│
 │0000c2f0│ 02 01 00 00 00 fd aa 94 ┊ 04 80 01 78 02 01 03 01 │••⋄⋄⋄×××┊•×•x••••│
 │0000c300│ 00 02 a2 49 01 01 02 03 ┊ 17 23 02 00 d5 e5 94 04 │⋄•×I••••┊•#•⋄××ו│
-│0000c310│ 78 02 01 04 00 01 04 f9 ┊ 87 01 da 74 4d 9b 01 02 │x•••⋄••×┊ו×tMו•│
+│0000c310│ 78 02 01 04 00 01 04 f9 ┊ 85 01 da 74 4d 9b 01 02 │x•••⋄••×┊ו×tMו•│
 │0000c320│ 01 05 01 00 02 c5 8b 02 ┊ 00 3d f7 94 04 78 02 01 │•••⋄•×ו┊⋄=×וx••│
 │0000c330│ 04 00 0c 01 87 3a 00 17 ┊ 79 02 00 00 0c 06 87 3a │•⋄_•×:⋄•┊y•⋄⋄_•×:│
 │0000c340│ 00 00 17 84 02 00 01 02 ┊ 00 00 17 8c 02 00 00 d0 │⋄⋄•×•⋄••┊⋄⋄•×•⋄⋄×│
@@ -3134,7 +3134,7 @@
 │0000c3c0│ 83 02 02 00 00 05 00 00 ┊ 01 a6 8d 02 17 e7 02 03 │ו•⋄⋄•⋄⋄┊•×ו•×••│
 │0000c3d0│ 00 00 07 00 00 02 1b 2d ┊ b3 94 04 78 02 04 00 00 │⋄⋄•⋄⋄••-┊×וx••⋄⋄│
 │0000c3e0│ 07 00 01 01 00 01 93 09 ┊ 17 9a 01 05 00 00 0a 00 │•⋄••⋄•×_┊•×••⋄⋄_⋄│
-│0000c3f0│ 00 02 1b 29 87 01 e3 74 ┊ 9b 01 02 06 00 00 0a 00 │⋄••)ו×t┊ו••⋄⋄_⋄│
+│0000c3f0│ 00 02 1b 29 85 01 e3 74 ┊ 9b 01 02 06 00 00 0a 00 │⋄••)ו×t┊ו••⋄⋄_⋄│
 │0000c400│ 01 01 00 17 45 03 01 00 ┊ 01 02 00 0d 02 b9 16 01 │••⋄•E••⋄┊••⋄_•×••│
 │0000c410│ 01 00 17 d6 02 00 ab be ┊ 01 17 7f 02 00 00 00 00 │•⋄•×•⋄××┊••••⋄⋄⋄⋄│
 │0000c420│ 00 00 00 09 01 28 6e a5 ┊ 20 00 00 00 03 00 0a 01 │⋄⋄⋄_•(n×┊ ⋄⋄⋄•⋄_•│
@@ -3487,7 +3487,7 @@
 │0000d9d0│ 55 f7 85 03 66 02 01 0a ┊ fd d2 21 e2 02 87 01 02 │U×וf••_┊××!וו•│
 │0000d9e0│ 01 0b 01 00 02 8a 0a 00 ┊ bd 87 95 03 66 02 01 0b │•••⋄•×_⋄┊××וf•••│
 │0000d9f0│ fd d6 29 8b 03 84 01 02 ┊ 01 0c 01 00 02 95 16 00 │××)וו•┊•_•⋄•×•⋄│
-│0000da00│ 39 8a 01 87 24 84 01 02 ┊ 01 0c fd 9a 2a 56 84 01 │9ו×$ו•┊•_××*Vו│
+│0000da00│ 39 8b 01 87 24 84 01 02 ┊ 01 0c fd 9a 2a 56 84 01 │9ו×$ו•┊•_××*Vו│
 │0000da10│ 02 01 0d 01 00 02 96 16 ┊ 00 fd b7 2c 28 84 01 02 │••_•⋄•×•┊⋄××,(ו•│
 │0000da20│ 01 0d 13 ff 2d 01 03 01 ┊ 00 02 ef 8d 02 00 17 e9 │•_•×-•••┊⋄•×ו⋄•×│
 │0000da30│ 03 00 00 1f 01 e9 4b 00 ┊ 17 f8 05 00 00 e2 84 03 │•⋄⋄••×K⋄┊•×•⋄⋄×ו│
@@ -3528,7 +3528,7 @@
 │0000dc60│ 0b 00 00 08 00 01 02 00 ┊ 02 1b 13 c6 2e 0f 00 00 │•⋄⋄•⋄••⋄┊•••×.•⋄⋄│
 │0000dc70│ 05 00 01 01 00 02 87 0a ┊ 13 d9 2e 0f 00 00 06 00 │•⋄••⋄•×_┊•×.•⋄⋄•⋄│
 │0000dc80│ 01 02 00 17 43 08 01 00 ┊ 01 01 00 0d 02 bb 88 02 │••⋄•C••⋄┊••⋄_•×ו│
-│0000dc90│ 00 e9 8a 01 a1 24 84 01 ┊ 02 00 00 00 00 00 00 00 │⋄×ו×$ו┊•⋄⋄⋄⋄⋄⋄⋄│
+│0000dc90│ 00 e9 8b 01 a1 24 84 01 ┊ 02 00 00 00 00 00 00 00 │⋄×ו×$ו┊•⋄⋄⋄⋄⋄⋄⋄│
 │0000dca0│ 13 06 18 73 cd 20 00 00 ┊ 00 03 00 0a 01 01 00 0f │•••s× ⋄⋄┊⋄•⋄_••⋄•│
 │0000dcb0│ 0d 01 00 04 00 0a 02 01 ┊ 00 0f 17 02 00 06 00 02 │_•⋄•⋄_••┊⋄•••⋄•⋄•│
 │0000dcc0│ 06 00 03 00 0f 22 02 00 ┊ 07 00 02 06 00 04 00 13 │•⋄•⋄•"•⋄┊•⋄••⋄•⋄•│
@@ -8437,46 +8437,46 @@
 │00021ec0│ 3f 02 00 2d 2d 02 ca 04 ┊ 00 78 02 00 64 64 02 ca │?•⋄--•×•┊⋄x•⋄dd•×│
 │00021ed0│ 04 00 33 02 00 21 21 02 ┊ ca 04 00 6a 02 00 58 58 │•⋄3•⋄!!•┊ו⋄j•⋄XX│
 │00021ee0│ 02 ca 04 00 27 02 00 15 ┊ 15 02 ca 04 00 5e 02 00 │•×•⋄'•⋄•┊••×•⋄^•⋄│
-│00021ef0│ 4c 4c 02 ca 04 00 1b 02 ┊ 00 09 09 02 ca 04 02 b3 │LL•×•⋄••┊⋄__•×••×│
-│00021f00│ a3 01 02 00 83 01 83 01 ┊ 02 02 00 52 02 00 40 40 │ו•⋄וו┊••⋄R•⋄@@│
-│00021f10│ 02 ca 04 00 8c 01 02 00 ┊ 77 77 02 ca 04 00 46 02 │•×•⋄ו•⋄┊ww•×•⋄F•│
-│00021f20│ 00 34 34 02 ca 04 00 7f ┊ 02 00 6b 6b 02 ca 04 00 │⋄44•×•⋄•┊•⋄kk•×•⋄│
-│00021f30│ 3a 02 00 28 28 02 ca 04 ┊ 00 72 02 00 5f 5f 02 ca │:•⋄((•×•┊⋄r•⋄__•×│
-│00021f40│ 04 00 2e 02 00 1c 1c 02 ┊ ca 04 00 65 02 00 53 53 │•⋄.•⋄•••┊ו⋄e•⋄SS│
-│00021f50│ 02 ca 04 00 22 02 00 10 ┊ 10 02 ca 04 02 e9 01 01 │•×•⋄"•⋄•┊••×••×••│
-│00021f60│ 00 00 8a 01 02 02 00 59 ┊ 02 00 47 47 02 ca 04 00 │⋄⋄ו••⋄Y┊•⋄GG•×•⋄│
-│00021f70│ 16 02 00 04 04 02 ca 04 ┊ 00 93 01 02 00 7e 7e 02 │••⋄•••×•┊⋄ו•⋄~~•│
-│00021f80│ ca 04 00 4d 02 00 3b 3b ┊ 02 ca 04 00 87 01 02 00 │ו⋄M•⋄;;┊•×•⋄ו•⋄│
-│00021f90│ 72 72 02 ca 04 00 41 02 ┊ 00 2f 2f 02 ca 04 00 7a │rr•×•⋄A•┊⋄//•×•⋄z│
-│00021fa0│ 02 00 66 66 02 ca 04 00 ┊ 35 02 00 23 23 02 ca 04 │•⋄ff•×•⋄┊5•⋄##•×•│
-│00021fb0│ 00 6c 02 00 5a 5a 02 ca ┊ 04 00 29 02 00 17 17 02 │⋄l•⋄ZZ•×┊•⋄)•⋄•••│
-│00021fc0│ ca 04 00 60 02 00 4e 4e ┊ 02 ca 04 00 1d 02 00 0b │ו⋄`•⋄NN┊•×•⋄••⋄•│
-│00021fd0│ 0b 02 ca 04 02 da 02 01 ┊ 00 00 85 01 02 02 00 54 │••×••×••┊⋄⋄ו••⋄T│
-│00021fe0│ 02 00 42 42 02 ca 04 00 ┊ 8e 01 02 00 79 79 02 ca │•⋄BB•×•⋄┊ו•⋄yy•×│
-│00021ff0│ 04 00 48 02 00 36 36 02 ┊ ca 04 00 82 01 02 00 6d │•⋄H•⋄66•┊ו⋄ו•⋄m│
-│00022000│ 6d 02 ca 04 00 3c 02 00 ┊ 2a 2a 02 ca 04 00 74 02 │m•×•⋄<•⋄┊**•×•⋄t•│
-│00022010│ 00 61 61 02 ca 04 00 30 ┊ 02 00 1e 1e 02 ca 04 00 │⋄aa•×•⋄0┊•⋄•••×•⋄│
-│00022020│ 67 02 00 55 55 02 ca 04 ┊ 00 24 02 00 12 12 02 ca │g•⋄UU•×•┊⋄$•⋄•••×│
-│00022030│ 04 00 5b 02 00 49 49 02 ┊ ca 04 00 18 02 00 06 06 │•⋄[•⋄II•┊ו⋄••⋄••│
-│00022040│ 02 ca 04 00 4f 02 00 3d ┊ 3d 02 ca 04 00 89 01 02 │•×•⋄O•⋄=┊=•×•⋄ו•│
-│00022050│ 00 74 74 02 ca 04 00 43 ┊ 02 00 31 31 02 ca 04 00 │⋄tt•×•⋄C┊•⋄11•×•⋄│
-│00022060│ 7c 02 00 68 68 02 ca 04 ┊ 00 37 02 00 25 25 02 ca │|•⋄hh•×•┊⋄7•⋄%%•×│
-│00022070│ 04 00 6f 02 00 5c 5c 02 ┊ ca 04 00 2b 02 00 19 19 │•⋄o•⋄\\•┊ו⋄+•⋄••│
-│00022080│ 02 ca 04 00 62 02 00 50 ┊ 50 02 ca 04 00 1f 02 00 │•×•⋄b•⋄P┊P•×•⋄••⋄│
-│00022090│ 0d 0d 02 ca 04 02 c3 02 ┊ 01 00 00 87 01 02 02 00 │__•×••×•┊•⋄⋄ו••⋄│
-│000220a0│ 56 02 00 44 44 02 ca 04 ┊ 00 01 02 00 01 01 02 08 │V•⋄DD•×•┊⋄••⋄••••│
-│000220b0│ 00 90 01 02 00 7b 7b 02 ┊ ca 04 00 4a 02 00 38 38 │⋄ו•⋄{{•┊ו⋄J•⋄88│
-│000220c0│ 02 ca 04 00 84 01 02 00 ┊ 6f 6f 02 ca 04 00 3e 02 │•×•⋄ו•⋄┊oo•×•⋄>•│
-│000220d0│ 00 2c 2c 02 ca 04 00 76 ┊ 02 00 63 63 02 ca 04 00 │⋄,,•×•⋄v┊•⋄cc•×•⋄│
-│000220e0│ 32 02 00 20 20 02 ca 04 ┊ 00 69 02 00 57 57 02 ca │2•⋄  •×•┊⋄i•⋄WW•×│
-│000220f0│ 04 00 26 02 00 14 14 02 ┊ ca 04 00 5d 02 00 4b 4b │•⋄&•⋄•••┊ו⋄]•⋄KK│
-│00022100│ 02 ca 04 00 1a 02 00 08 ┊ 08 02 ca 04 00 51 02 00 │•×•⋄••⋄•┊••×•⋄Q•⋄│
+│00021ef0│ 4c 4c 02 ca 04 00 1b 02 ┊ 00 09 09 02 ca 04 00 52 │LL•×•⋄••┊⋄__•×•⋄R│
+│00021f00│ 02 00 40 40 02 ca 04 00 ┊ 8c 01 02 00 77 77 02 ca │•⋄@@•×•⋄┊ו•⋄ww•×│
+│00021f10│ 04 00 46 02 00 34 34 02 ┊ ca 04 00 7f 02 00 6b 6b │•⋄F•⋄44•┊ו⋄••⋄kk│
+│00021f20│ 02 ca 04 00 3a 02 00 28 ┊ 28 02 ca 04 00 72 02 00 │•×•⋄:•⋄(┊(•×•⋄r•⋄│
+│00021f30│ 5f 5f 02 ca 04 00 2e 02 ┊ 00 1c 1c 02 ca 04 00 65 │__•×•⋄.•┊⋄•••×•⋄e│
+│00021f40│ 02 00 53 53 02 ca 04 00 ┊ 22 02 00 10 10 02 ca 04 │•⋄SS•×•⋄┊"•⋄•••×•│
+│00021f50│ 02 94 04 01 00 00 8a 01 ┊ 02 02 00 59 02 00 47 47 │•×••⋄⋄ו┊••⋄Y•⋄GG│
+│00021f60│ 02 ca 04 00 16 02 00 04 ┊ 04 02 ca 04 00 93 01 02 │•×•⋄••⋄•┊••×•⋄ו•│
+│00021f70│ 00 7e 7e 02 ca 04 00 4d ┊ 02 00 3b 3b 02 ca 04 00 │⋄~~•×•⋄M┊•⋄;;•×•⋄│
+│00021f80│ 87 01 02 00 72 72 02 ca ┊ 04 00 41 02 00 2f 2f 02 │ו•⋄rr•×┊•⋄A•⋄//•│
+│00021f90│ ca 04 00 7a 02 00 66 66 ┊ 02 ca 04 00 35 02 00 23 │ו⋄z•⋄ff┊•×•⋄5•⋄#│
+│00021fa0│ 23 02 ca 04 00 6c 02 00 ┊ 5a 5a 02 ca 04 00 29 02 │#•×•⋄l•⋄┊ZZ•×•⋄)•│
+│00021fb0│ 00 17 17 02 ca 04 00 60 ┊ 02 00 4e 4e 02 ca 04 00 │⋄•••×•⋄`┊•⋄NN•×•⋄│
+│00021fc0│ 1d 02 00 0b 0b 02 ca 04 ┊ 02 c3 02 01 00 00 85 01 │••⋄•••×•┊•×••⋄⋄ו│
+│00021fd0│ 02 02 00 54 02 00 42 42 ┊ 02 ca 04 00 8e 01 02 00 │••⋄T•⋄BB┊•×•⋄ו•⋄│
+│00021fe0│ 79 79 02 ca 04 00 48 02 ┊ 00 36 36 02 ca 04 00 82 │yy•×•⋄H•┊⋄66•×•⋄×│
+│00021ff0│ 01 02 00 6d 6d 02 ca 04 ┊ 00 3c 02 00 2a 2a 02 ca │••⋄mm•×•┊⋄<•⋄**•×│
+│00022000│ 04 00 74 02 00 61 61 02 ┊ ca 04 00 30 02 00 1e 1e │•⋄t•⋄aa•┊ו⋄0•⋄••│
+│00022010│ 02 ca 04 00 67 02 00 55 ┊ 55 02 ca 04 00 24 02 00 │•×•⋄g•⋄U┊U•×•⋄$•⋄│
+│00022020│ 12 12 02 ca 04 00 5b 02 ┊ 00 49 49 02 ca 04 00 18 │•••×•⋄[•┊⋄II•×•⋄•│
+│00022030│ 02 00 06 06 02 ca 04 00 ┊ 4f 02 00 3d 3d 02 ca 04 │•⋄•••×•⋄┊O•⋄==•×•│
+│00022040│ 00 89 01 02 00 74 74 02 ┊ ca 04 00 43 02 00 31 31 │⋄ו•⋄tt•┊ו⋄C•⋄11│
+│00022050│ 02 ca 04 00 7c 02 00 68 ┊ 68 02 ca 04 00 37 02 00 │•×•⋄|•⋄h┊h•×•⋄7•⋄│
+│00022060│ 25 25 02 ca 04 00 6f 02 ┊ 00 5c 5c 02 ca 04 00 2b │%%•×•⋄o•┊⋄\\•×•⋄+│
+│00022070│ 02 00 19 19 02 ca 04 00 ┊ 62 02 00 50 50 02 ca 04 │•⋄•••×•⋄┊b•⋄PP•×•│
+│00022080│ 00 1f 02 00 0d 0d 02 ca ┊ 04 02 ef 07 01 00 00 87 │⋄••⋄__•×┊••×••⋄⋄×│
+│00022090│ 01 02 02 00 56 02 00 44 ┊ 44 02 ca 04 00 01 02 00 │•••⋄V•⋄D┊D•×•⋄••⋄│
+│000220a0│ 01 01 02 08 00 90 01 02 ┊ 00 7b 7b 02 ca 04 00 4a │••••⋄ו•┊⋄{{•×•⋄J│
+│000220b0│ 02 00 38 38 02 ca 04 00 ┊ 84 01 02 00 6f 6f 02 ca │•⋄88•×•⋄┊ו•⋄oo•×│
+│000220c0│ 04 00 3e 02 00 2c 2c 02 ┊ ca 04 00 76 02 00 63 63 │•⋄>•⋄,,•┊ו⋄v•⋄cc│
+│000220d0│ 02 ca 04 00 32 02 00 20 ┊ 20 02 ca 04 00 69 02 00 │•×•⋄2•⋄ ┊ •×•⋄i•⋄│
+│000220e0│ 57 57 02 ca 04 00 26 02 ┊ 00 14 14 02 ca 04 00 5d │WW•×•⋄&•┊⋄•••×•⋄]│
+│000220f0│ 02 00 4b 4b 02 ca 04 00 ┊ 1a 02 00 08 08 02 ca 04 │•⋄KK•×•⋄┊••⋄•••×•│
+│00022100│ 02 b3 a3 01 02 00 82 01 ┊ 82 01 02 02 00 51 02 00 │•×ו•⋄ו┊ו••⋄Q•⋄│
 │00022110│ 3f 3f 02 ca 04 00 8b 01 ┊ 02 00 76 76 02 ca 04 00 │??•×•⋄ו┊•⋄vv•×•⋄│
 │00022120│ 45 02 00 33 33 02 ca 04 ┊ 00 7e 02 00 6a 6a 02 ca │E•⋄33•×•┊⋄~•⋄jj•×│
 │00022130│ 04 00 39 02 00 27 27 02 ┊ ca 04 00 71 02 00 5e 5e │•⋄9•⋄''•┊ו⋄q•⋄^^│
 │00022140│ 02 ca 04 00 2d 02 00 1b ┊ 1b 02 ca 04 00 64 02 00 │•×•⋄-•⋄•┊••×•⋄d•⋄│
-│00022150│ 52 52 02 ca 04 00 21 02 ┊ 00 0f 0f 02 ca 04 02 94 │RR•×•⋄!•┊⋄•••×••×│
-│00022160│ 04 01 00 00 89 01 02 02 ┊ 00 58 02 00 46 46 02 ca │••⋄⋄ו••┊⋄X•⋄FF•×│
+│00022150│ 52 52 02 ca 04 00 21 02 ┊ 00 0f 0f 02 ca 04 02 d6 │RR•×•⋄!•┊⋄•••×••×│
+│00022160│ 02 01 00 00 89 01 02 02 ┊ 00 58 02 00 46 46 02 ca │••⋄⋄ו••┊⋄X•⋄FF•×│
 │00022170│ 04 00 92 01 02 00 7d 7d ┊ 02 ca 04 00 4c 02 00 3a │•⋄ו•⋄}}┊•×•⋄L•⋄:│
 │00022180│ 3a 02 ca 04 00 86 01 02 ┊ 00 71 71 02 ca 04 00 40 │:•×•⋄ו•┊⋄qq•×•⋄@│
 │00022190│ 02 00 2e 2e 02 ca 04 00 ┊ 79 02 00 65 65 02 ca 04 │•⋄..•×•⋄┊y•⋄ee•×•│
@@ -8488,14 +8488,14 @@
 │000221f0│ 02 ca 04 00 3b 02 00 29 ┊ 29 02 ca 04 00 73 02 00 │•×•⋄;•⋄)┊)•×•⋄s•⋄│
 │00022200│ 60 60 02 ca 04 00 2f 02 ┊ 00 1d 1d 02 ca 04 00 66 │``•×•⋄/•┊⋄•••×•⋄f│
 │00022210│ 02 00 54 54 02 ca 04 00 ┊ 23 02 00 11 11 02 ca 04 │•⋄TT•×•⋄┊#•⋄•••×•│
-│00022220│ 02 d6 02 01 00 00 8b 01 ┊ 02 02 00 5a 02 00 48 48 │•×••⋄⋄ו┊••⋄Z•⋄HH│
+│00022220│ 02 e9 01 01 00 00 8b 01 ┊ 02 02 00 5a 02 00 48 48 │•×••⋄⋄ו┊••⋄Z•⋄HH│
 │00022230│ 02 ca 04 00 17 02 00 05 ┊ 05 02 ca 04 00 4e 02 00 │•×•⋄••⋄•┊••×•⋄N•⋄│
 │00022240│ 3c 3c 02 ca 04 00 88 01 ┊ 02 00 73 73 02 ca 04 00 │<<•×•⋄ו┊•⋄ss•×•⋄│
 │00022250│ 42 02 00 30 30 02 ca 04 ┊ 00 7b 02 00 67 67 02 ca │B•⋄00•×•┊⋄{•⋄gg•×│
 │00022260│ 04 00 36 02 00 24 24 02 ┊ ca 04 00 6e 02 00 5b 5b │•⋄6•⋄$$•┊ו⋄n•⋄[[│
 │00022270│ 02 ca 04 00 2a 02 00 18 ┊ 18 02 ca 04 00 61 02 00 │•×•⋄*•⋄•┊••×•⋄a•⋄│
-│00022280│ 4f 4f 02 ca 04 00 1e 02 ┊ 00 0c 0c 02 ca 04 02 ef │OO•×•⋄••┊⋄__•×••×│
-│00022290│ 07 01 00 00 86 01 02 02 ┊ 00 55 02 00 43 43 02 ca │••⋄⋄ו••┊⋄U•⋄CC•×│
+│00022280│ 4f 4f 02 ca 04 00 1e 02 ┊ 00 0c 0c 02 ca 04 02 da │OO•×•⋄••┊⋄__•×••×│
+│00022290│ 02 01 00 00 86 01 02 02 ┊ 00 55 02 00 43 43 02 ca │••⋄⋄ו••┊⋄U•⋄CC•×│
 │000222a0│ 04 00 00 00 13 62 25 00 ┊ 13 62 25 00 02 01 00 00 │•⋄⋄⋄•b%⋄┊•b%⋄••⋄⋄│
 │000222b0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
 │000222c0│ 00 00 00 00 01 02 02 7b ┊ 00 11 17 cd cf 00 7d e5 │⋄⋄⋄⋄•••{┊⋄••××⋄}×│
@@ -8958,33 +8958,33 @@
 │00023f50│ 02 cf 01 00 0a 1f 6e 1d ┊ 01 00 17 ed 18 01 01 01 │•×•⋄_•n•┊•⋄•×••••│
 │00023f60│ fd c2 08 02 01 02 9f 17 ┊ 01 02 ed 16 00 00 01 28 │×ו•••×•┊••×•⋄⋄•(│
 │00023f70│ d0 ab 39 36 e0 b8 23 05 ┊ f3 fa 8a f5 c3 51 98 00 │××96××#•┊×××××Q×⋄│
-│00023f80│ 00 02 00 00 00 02 08 25 ┊ 3e 02 4e 1f 02 00 00 00 │⋄•⋄⋄⋄••%┊>•N••⋄⋄⋄│
-│00023f90│ 00 00 00 15 1e 02 d9 20 ┊ 02 e0 1e 02 e4 1c 02 a9 │⋄⋄⋄•••× ┊•×••×••×│
-│00023fa0│ 1f 02 9b 1d 02 6a 20 02 ┊ 71 1e 02 2b 21 02 32 1f │••×••j •┊q••+!•2•│
-│00023fb0│ 02 36 1d 02 fb 1f 02 f9 ┊ 1d 02 bd 20 02 ce 1e 02 │•6••×••×┊••× •×••│
-│00023fc0│ d2 1c 02 97 1f 02 89 1d ┊ 02 58 20 02 5f 1e 02 19 │ו•×••×•┊•X •_•••│
-│00023fd0│ 21 02 20 1f 02 24 1d 02 ┊ e9 1f 02 e7 1d 02 ab 20 │!• ••$••┊ו•×••× │
-│00023fe0│ 02 bc 1e 02 c0 1c 02 85 ┊ 1f 02 77 1d 02 46 20 02 │•×••×••×┊••w••F •│
-│00023ff0│ 4d 1e 02 07 21 02 0e 1f ┊ 02 12 1d 02 d7 1f 02 d5 │M•••!•••┊••••×••×│
-│00024000│ 1d 02 99 20 02 aa 1e 02 ┊ ae 1c 02 73 1f 02 65 1d │••× •×••┊ו•s••e•│
-│00024010│ 02 34 20 02 3b 1e 02 f5 ┊ 20 02 fc 1e 02 00 1d 02 │•4 •;••×┊ •×••⋄••│
-│00024020│ c5 1f 02 c3 1d 02 86 20 ┊ 02 97 1e 02 9b 1c 02 60 │ו•×••× ┊•×••×••`│
-│00024030│ 1f 02 52 1d 02 21 20 02 ┊ 28 1e 02 e2 20 02 e9 1e │••R••! •┊(••× •×•│
-│00024040│ 02 ed 1c 02 b2 1f 02 b0 ┊ 1d 02 73 20 02 84 1e 02 │•×••×••×┊••s •×••│
-│00024050│ 3e 21 02 45 1f 02 3f 1d ┊ 02 0e 20 02 0c 1e 02 d0 │>!•E••?•┊•• •_••×│
-│00024060│ 20 02 d7 1e 02 db 1c 02 ┊ a0 1f 02 92 1d 02 61 20 │ •×••×••┊ו•×••a │
-│00024070│ 02 68 1e 02 22 21 02 29 ┊ 1f 02 2d 1d 02 f2 1f 02 │•h••"!•)┊••-••×••│
-│00024080│ f0 1d 02 b4 20 02 c5 1e ┊ 02 c9 1c 02 8e 1f 02 80 │ו•× •×•┊•×••×••×│
-│00024090│ 1d 02 4f 20 02 56 1e 02 ┊ 10 21 02 17 1f 02 1b 1d │••O •V••┊•!••••••│
-│000240a0│ 02 e0 1f 02 de 1d 02 a2 ┊ 20 02 b3 1e 02 b7 1c 02 │•×••×••×┊ •×••×••│
-│000240b0│ 7c 1f 02 6e 1d 02 3d 20 ┊ 02 44 1e 02 fe 20 02 05 │|••n••= ┊•D••× ••│
-│000240c0│ 1f 02 09 1d 02 ce 1f 02 ┊ cc 1d 02 8f 20 02 a0 1e │••_••×••┊ו•× •×•│
-│000240d0│ 02 a4 1c 02 69 1f 02 5b ┊ 1d 02 2a 20 02 31 1e 02 │•×••i••[┊••* •1••│
-│000240e0│ eb 20 02 f2 1e 02 f6 1c ┊ 02 bb 1f 02 b9 1d 02 7c │× •×••×•┊•×••×••|│
-│000240f0│ 20 02 8d 1e 02 91 1c 02 ┊ 56 1f 02 48 1d 02 17 20 │ •×••×••┊V••H••• │
-│00024100│ 02 1e 1e 02 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │••••⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
-│00024110│ a4 1d 02 00 00 00 7a 1e ┊ 02 34 21 02 3b 1f 02 00 │ו•⋄⋄⋄z•┊•4!•;••⋄│
-│00024120│ 00 00 04 20 02 02 1e 02 ┊ c6 20 02 47 21 02 18 32 │⋄⋄• ••••┊× •G!••2│
+│00023f80│ 00 02 00 00 00 02 08 25 ┊ 3e 02 42 1f 02 00 00 00 │⋄•⋄⋄⋄••%┊>•B••⋄⋄⋄│
+│00023f90│ 00 00 00 09 1e 02 d9 20 ┊ 02 d4 1e 02 e4 1c 02 9d │⋄⋄⋄_••× ┊•×••×••×│
+│00023fa0│ 1f 02 9b 1d 02 6a 20 02 ┊ 65 1e 02 2b 21 02 26 1f │••×••j •┊e••+!•&•│
+│00023fb0│ 02 36 1d 02 fb 1f 02 ed ┊ 1d 02 bd 20 02 c2 1e 02 │•6••×••×┊••× •×••│
+│00023fc0│ d2 1c 02 8b 1f 02 89 1d ┊ 02 58 20 02 53 1e 02 19 │ו•×••×•┊•X •S•••│
+│00023fd0│ 21 02 14 1f 02 24 1d 02 ┊ e9 1f 02 db 1d 02 ab 20 │!••••$••┊ו•×••× │
+│00023fe0│ 02 b0 1e 02 c0 1c 02 79 ┊ 1f 02 77 1d 02 46 20 02 │•×••×••y┊••w••F •│
+│00023ff0│ 41 1e 02 07 21 02 02 1f ┊ 02 12 1d 02 d7 1f 02 c9 │A•••!•••┊••••×••×│
+│00024000│ 1d 02 99 20 02 9e 1e 02 ┊ ae 1c 02 67 1f 02 65 1d │••× •×••┊ו•g••e•│
+│00024010│ 02 34 20 02 2f 1e 02 f5 ┊ 20 02 f0 1e 02 00 1d 02 │•4 •/••×┊ •×••⋄••│
+│00024020│ c5 1f 02 b7 1d 02 86 20 ┊ 02 8b 1e 02 9b 1c 02 54 │ו•×••× ┊•×••×••T│
+│00024030│ 1f 02 52 1d 02 21 20 02 ┊ 1c 1e 02 e2 20 02 dd 1e │••R••! •┊•••× •×•│
+│00024040│ 02 ed 1c 02 b2 1f 02 a4 ┊ 1d 02 73 20 02 78 1e 02 │•×••×••×┊••s •x••│
+│00024050│ 3e 21 02 39 1f 02 3f 1d ┊ 02 0e 20 02 00 1e 02 d0 │>!•9••?•┊•• •⋄••×│
+│00024060│ 20 02 cb 1e 02 db 1c 02 ┊ 94 1f 02 92 1d 02 61 20 │ •×••×••┊ו•×••a │
+│00024070│ 02 5c 1e 02 22 21 02 1d ┊ 1f 02 2d 1d 02 f2 1f 02 │•\••"!••┊••-••×••│
+│00024080│ e4 1d 02 b4 20 02 b9 1e ┊ 02 c9 1c 02 82 1f 02 80 │ו•× •×•┊•×••×••×│
+│00024090│ 1d 02 4f 20 02 4a 1e 02 ┊ 10 21 02 0b 1f 02 1b 1d │••O •J••┊•!••••••│
+│000240a0│ 02 e0 1f 02 d2 1d 02 a2 ┊ 20 02 a7 1e 02 b7 1c 02 │•×••×••×┊ •×••×••│
+│000240b0│ 70 1f 02 6e 1d 02 3d 20 ┊ 02 38 1e 02 fe 20 02 f9 │p••n••= ┊•8••× •×│
+│000240c0│ 1e 02 09 1d 02 ce 1f 02 ┊ c0 1d 02 8f 20 02 94 1e │••_••×••┊ו•× •×•│
+│000240d0│ 02 a4 1c 02 5d 1f 02 5b ┊ 1d 02 2a 20 02 25 1e 02 │•×••]••[┊••* •%••│
+│000240e0│ eb 20 02 e6 1e 02 f6 1c ┊ 02 bb 1f 02 ad 1d 02 7c │× •×••×•┊•×••×••|│
+│000240f0│ 20 02 81 1e 02 91 1c 02 ┊ 4a 1f 02 48 1d 02 17 20 │ •×••×••┊J••H••• │
+│00024100│ 02 12 1e 02 00 00 00 00 ┊ 00 00 00 00 00 a6 1f 02 │••••⋄⋄⋄⋄┊⋄⋄⋄⋄⋄ו•│
+│00024110│ 00 00 00 00 00 00 6e 1e ┊ 02 34 21 02 2f 1f 02 00 │⋄⋄⋄⋄⋄⋄n•┊•4!•/••⋄│
+│00024120│ 00 00 04 20 02 f6 1d 02 ┊ c6 20 02 47 21 02 18 32 │⋄⋄• •×••┊× •G!••2│
 │00024130│ 02 2c 26 02 bb 36 02 c0 ┊ 2a 02 62 3b 02 5e 2f 02 │•,&•×6•×┊*•b;•^/•│
 │00024140│ bb 23 02 31 34 02 40 28 ┊ 02 e3 38 02 ec 2c 02 8f │×#•14•@(┊•×8•×,•×│
 │00024150│ 3d 02 89 31 02 9e 25 02 ┊ 29 36 02 31 2a 02 d3 3a │=•×1•×%•┊)6•1*•×:│
@matthiaskrgr matthiaskrgr added C-bug Category: This is a bug. A-reproducibility Area: Reproducible / deterministic builds WG-compiler-parallel Working group: Parallelizing the compiler labels Aug 14, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Aug 14, 2024
@matthiaskrgr
Copy link
Member Author

narrowed it down to

#![crate_type = "lib"]
#[derive(Clone, Copy,  Hash, PartialEq, PartialOrd)]
struct PackedPoint {
    x: u32,
}

@matthiaskrgr matthiaskrgr changed the title parallel compiler makes builds irreproducible derives: parallel compiler makes builds irreproducible Aug 14, 2024
@saethlin saethlin added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Aug 14, 2024
@SparrowLii
Copy link
Member

SparrowLii commented Sep 11, 2024

Different optimization levels are used in these two compilations, won't this affect binary consistency?

#[Edit] sry, I read the comment by mistake

Investigating

@Zoxc
Copy link
Contributor

Zoxc commented Mar 16, 2025

You could try to emit LLVM IR and see if the difference shows up there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-reproducibility Area: Reproducible / deterministic builds C-bug Category: This is a bug. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-compiler-parallel Working group: Parallelizing the compiler
Projects
None yet
Development

No branches or pull requests

5 participants