From 9231ca5965d362f8c2cbcacc0373a0c83425d7dc Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 20:57:04 +0000 Subject: [PATCH 01/10] broke up state-model and tagged-memory. Cleanup and reword tagged memory. --- .../docs/public-vm/gen/_InstructionSet.mdx | 86 +++++------ yellow-paper/docs/public-vm/security.md | 4 + yellow-paper/docs/public-vm/state-model.md | 59 +------- yellow-paper/docs/public-vm/tagged-memory.md | 136 +++++++++++++----- .../InstructionSet/InstructionSet.js | 88 ++++++------ 5 files changed, 193 insertions(+), 180 deletions(-) create mode 100644 yellow-paper/docs/public-vm/security.md diff --git a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx index 60bd17532b4f..db74640d5098 100644 --- a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx +++ b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx @@ -136,7 +136,7 @@ import CodeBlock from '@theme/CodeBlock' Type cast 72 { - `M[dstOffset] = cast(M[aOffset])` + `M[dstOffset] = cast(M[aOffset])` } @@ -455,14 +455,14 @@ Addition (a + b) - **Category**: arithmetic - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] + M[bOffset] mod 2^k` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/ADD.png) @@ -474,14 +474,14 @@ Subtraction (a - b) - **Category**: arithmetic - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] - M[bOffset] mod 2^k` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/SUB.png) @@ -493,14 +493,14 @@ Unsigned division (a / b) - **Category**: arithmetic - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] / M[bOffset]` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/DIV.png) @@ -512,14 +512,14 @@ Equality check (a == b) - **Category**: conditional - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] == M[bOffset] ? 1 : 0` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/EQ.png) @@ -531,14 +531,14 @@ Less-than check (a < b) - **Category**: conditional - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] < M[bOffset] ? 1 : 0` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/LT.png) @@ -550,14 +550,14 @@ Less-than-or-equals check (a <= b) - **Category**: conditional - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] <= M[bOffset] ? 1 : 0` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/LTE.png) @@ -569,14 +569,14 @@ Bitwise AND (a & b) - **Category**: bitwise - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] AND M[bOffset]` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/AND.png) @@ -588,14 +588,14 @@ Bitwise OR (a | b) - **Category**: bitwise - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] OR M[bOffset]` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/OR.png) @@ -607,14 +607,14 @@ Bitwise XOR (a ^ b) - **Category**: bitwise - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] XOR M[bOffset]` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/XOR.png) @@ -626,13 +626,13 @@ Bitwise NOT (inversion) - **Category**: bitwise - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = NOT M[aOffset]` -- **Tag checks**: `T[aOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 72 ![](./images/bit-formats/NOT.png) @@ -644,14 +644,14 @@ Bitwise leftward shift (a << b) - **Category**: bitwise - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] << M[bOffset]` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/SHL.png) @@ -663,14 +663,14 @@ Bitwise rightward shift (a >> b) - **Category**: bitwise - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = M[aOffset] >> M[bOffset]` -- **Tag checks**: `T[aOffset] == T[bOffset] == op-type` -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 ![](./images/bit-formats/SHR.png) @@ -682,13 +682,13 @@ Set a memory word from a constant in the bytecode. - **Category**: memory - **Flags**: - - **op-type**: The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET. + - **in-tag**: The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET. - **Args**: - **const**: a constant value from the bytecode to store in memory (any type except `field`) - **dstOffset**: memory offset specifying where to store the constant - **Expression**: `M[dstOffset] = const` - **Details**: Set memory word at `dstOffset` to `const`'s immediate value. `const` _cannot be `field` type_! -- **Tag updates**: `T[dstOffset] = op-type` +- **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 48+N ![](./images/bit-formats/SET.png) @@ -733,13 +733,13 @@ Type cast - **Category**: types - **Flags**: - - **dest-type**: The [type/size](./Types) to tag the output with when different from `op-type`. + - **dst-tag**: The [tag/size](./Types) to tag the output with when different from `in-tag`. - **Args**: - **aOffset**: memory offset of word to cast - **dstOffset**: memory offset specifying where to store operation's result -- **Expression**: `M[dstOffset] = cast(M[aOffset])` -- **Details**: Cast a word in memory based on the `dest-type` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. -- **Tag updates**: `T[dstOffset] = dest-type` +- **Expression**: `M[dstOffset] = cast(M[aOffset])` +- **Details**: Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. +- **Tag updates**: `T[dstOffset] = dst-tag` - **Bit-size**: 72 ![](./images/bit-formats/CAST.png) diff --git a/yellow-paper/docs/public-vm/security.md b/yellow-paper/docs/public-vm/security.md new file mode 100644 index 000000000000..1ebc179d1fdd --- /dev/null +++ b/yellow-paper/docs/public-vm/security.md @@ -0,0 +1,4 @@ +# VM threat model, security requirements + +An honest Prover must always be able to construct a satisfiable proof for an AVM program, even if the program throws an error. +This implies constraints produced by the AVM **must** be satisfiable. \ No newline at end of file diff --git a/yellow-paper/docs/public-vm/state-model.md b/yellow-paper/docs/public-vm/state-model.md index 615260cd6868..0ea7fbccf289 100644 --- a/yellow-paper/docs/public-vm/state-model.md +++ b/yellow-paper/docs/public-vm/state-model.md @@ -45,61 +45,4 @@ Indirect memory addressing is required in order to support read/writes into dyna Memory addresses must be tagged to be a `u32` type. -# Tagged memory - -We define a `tag` to refer to the potential maximum value of a cell of main memory. The following tags are supported: - -| tag value | maximum memory cell value | -| --------- | ------------------------- | -| 0 | 0 | -| 1 | $2^8 - 1$ | -| 2 | $2^{16} - 1$ | -| 3 | $2^{32} - 1$ | -| 4 | $2^{64} - 1$ | -| 5 | $2^{128} - 1$ | -| 6 | $p - 1$ | - -Note: $p$ describes the modulus of the finite field that the AVM circuit is defined over (i.e. number of points on the BN254 curve). - -The purpose of a tag is to inform the VM of the maximum possible length of an operand value that has been loaded from memory. - -Multiple AVM instructions explicitly operate over range-constrained input parameters (e.g. ADD32). The maximum allowable value for an instruction's input parameters is defined via an _instruction tag_. Two potential scenarios result: - -1. A VM instruction's tag value matches the input parameter tag values -2. A VM instruction's tag value does not match the input parameter tag values - -If case 2 is triggered, an error flag is raised. - ---- - -### Writing into memory - -It is required that all VM instructions that write into main memory explicitly define the tag of the output value and ensure the value is appropriately constrained to be consistent with the assigned tag. - ---- - -### MOV and tag conversions - -The MOV instruction copies data from between memory cell, perserving tags. - -The only VM instruction that can be used to cast between tags is CAST. There are 2 modes to MOV: - -1. The destination tag describes a maximum value that is _less than_ the source tag -2. The destination tag describes a maximum value that is _greater than or equal to_ the source tag - -For Case 1, range constraints must be applied to ensure the destination value is consistent with the source value after tag truncations have been applied. - -Case 2 is trivial as no additional consistency checks must be performed between soruce and destination values. - ---- - -### Calldata/returndata and tag conversions - -All elements in calldata/returndata are implicitly tagged as field elements (i.e. maximum value is $p - 1$). To perform a tag conversion, calldata/returndata must be copied into main memory, followed by an appropriate MOV instruction. - -## VM threat model, security requirements - -TODO: move this somewhere else, doesn't quite fit. - -An honest Prover must always be able to construct a satsisfiable proof for an AVM program, even if the program throws an error. -This implies constraints produced by the AVM **must** be satisfiable. +See [here](./tagged-memory) for more information on types and the VM's tagged memory model. diff --git a/yellow-paper/docs/public-vm/tagged-memory.md b/yellow-paper/docs/public-vm/tagged-memory.md index a72c693da93b..dd755a5ebdca 100644 --- a/yellow-paper/docs/public-vm/tagged-memory.md +++ b/yellow-paper/docs/public-vm/tagged-memory.md @@ -1,60 +1,126 @@ -# Tagged Memory - An instruction-set centric explanation +# Types and Tagged Memory -## Explanation of Tagged Memory -Every word in memory will have an associated `type-tag` (unset, u8, u16, u32, u64, u128, field). For memory address `a`, we refer to the corresponding memory word's `type-tag` as `T[a]`. +## Terminology/legend +- `M[X]`: the word at memory offset `X` +- `tag`: a key describing the type (the maximum potential value) of a memory cell +- `T[X]`: the `tag` associated with the word at memory offset `X` +- `in-tag`: an instruction's `tag` to check input operands against. Present for many instructions. +- `dst-tag`: the target type of a `CAST` instruction and the `tag` to assign the destination memory cell +- `ADD`: shorthand for an `ADD` instruction with `in-tag = X` +- `ADD aOffset bOffset dstOffset`: an full `ADD` instruction with `in-tag = X` to perform the following expression: `M[dstOffest] = M[aOffset] + M[bOffset]`. See [here](./InstructionSet#isa-section-add) for more details. +- `CAST`: a `CAST` instruction with `dst-tag`: `X`. `CAST` is the only instruction with a `dst-tag`. See [here](./InstructionSet#isa-section-cast) for more details. -Every instruction will be flagged with an `op-type` in bytecode (u8, u16, u32, u64, u128, field). +## Tags and tagged memory -If an instruction uses a "source operand" as a memory location (e.g. `z = M[s0] + y`), the VM first retrieves the `type-tag` referenced by the operand (`T[s0]`) and enforces that it matches `op-type`. The VM enforces this for all source operands used for direct memory reads. +A `tag` refers to the potential maximum value of a cell of main memory. The following tags are supported: -If an instruction uses a "dest operand" as a memory location (e.g. `M[d0] = x + y`), when the VM assigns a word to that memory location, it also assigns the corresponding `type-tag` (`T[d0] = op-type`). The VM performs this tag assignment for all dest operands used for direct memory writes. +| tag value | maximum memory cell value | shorthand | +| --------- | ------------------------- | ------------- | +| 0 | 0 | uninitialized | +| 1 | $2^8 - 1$ | `u8` | +| 2 | $2^{16} - 1$ | `u16` | +| 3 | $2^{24} - 1$ | `u24` | +| 4 | $2^{32} - 1$ | `u32` | +| 5 | $2^{64} - 1$ | `u64` | +| 6 | $2^{128} - 1$ | `u128` | +| 7 | $p - 1$ | `field` | -**If an instruction fails any of its operand type-tag-checks, the current call's execution reverts!** +Note: $p$ describes the modulus of the finite field that the AVM circuit is defined over (i.e. number of points on the BN254 curve). -### `ADD<32>` example -`ADD<32>` is an `ADD` instruction with `op-type` u32. As elaborated on later, an `ADD` performs `M[d0] = M[s0] + M[s1]`. In this case, both `s0` and `s1` are "source operands" used for direct memory reads to retrieve inputs to an addition. So, the VM enforces the `op-type(u32) == T[s0] == T[s1]`. `d0` here is a "dest operand" used for a direct memory write to store the output of the addition. So, the VM tags memory location `d0` with `type-tag` of u32: `T[d0] = op-type(u32)`. +The purpose of a tag is to inform the VM of the maximum possible length of an operand value that has been loaded from memory. -Here is a summary of what is happening for `ADD<32>`: +### Checking input operand tags + +Many AVM instructions explicitly operate over range-constrained input parameters (e.g. `ADD`). The maximum allowable value for an instruction's input parameters is defined via an `in-tag` (instruction/input tag). Two potential scenarios result: + +1. A VM instruction's tag value matches the input parameter tag values +2. A VM instruction's tag value does _not_ match the input parameter tag values + +If case 2 is triggered, an error flag is raised and the current call's execution reverts. + +### Writing into memory + +It is required that all VM instructions that write into main memory explicitly define the tag of the output value and ensure the value is appropriately constrained to be consistent with the assigned tag. You can see an instruction's "**Tag updates**" in its section of the instruction set document (see [here for `ADD`](./InstructionSet#isa-section-add) and [here for `CAST`](./InstructionSet#isa-section-cast)). + +### Standard tagging example: `ADD` + +``` +# ADD aOffset bOffset dstOffset +assert T[aOffset] == T[bOffset] == u32 // check inputs against in-tag, revert on mismatch +T[dstOffset] = u32 // tag destination with in-tag +M[dstOffset] = M[aOffset] + M[bOffset] // perform the addition +``` + +### `MOV` and tag preservation + +The `MOV` instruction copies data from one memory cell to another, preserving tags. In other words, the destination cell's tag will adopt the value of the source: ``` -assert T[s0] == u32 // enforce that source memory locations' type-tags == op-type -assert T[s1] == u32 -T[d0] = u32 // tag destination memory location as op-type -M[d0] = M[s0] + M[s1] +# MOV srcOffset dstOffset +T[dstOffset] = T[srcOffset] // preserve tag +M[dstOffset] = M[srcOffset] // perform the move ``` +Note that `MOV` does not have an `in-tag` and therefore does not need to make any assertions regarding the source memory cell's type. + +### `CAST` and tag conversions + +The only VM instruction that can be used to cast between tags is `CAST`. Two potential scenarios result: -### Type tags and `CASTs` +1. The destination tag describes a maximum value that is _less than_ the source tag +2. The destination tag describes a maximum value that is _greater than or equal to_ the source tag -`CAST` is different from other instructions in that it will be flagged with an additional `dest-type`. So, a `CAST` will assign `dest-type` (instead of `op-type`) to the memory location specified by its "dest operand" `d0`. `CAST<32, 64>` enforces that `T[s0]` matches u32 (the `op-type`) and assigns `T[d0] = u64` (the `dest-type`). +For Case 1, range constraints must be applied to ensure the destination value is consistent with the source value after tag truncations have been applied. + +Case 2 is trivial as no additional consistency checks must be performed between source and destination values. -Here is a summary of what is happening for a `CAST<32, 64>`: ``` -assert T[s0] == u32 // enforce that source memory location's type-tags == op-type -T[d0] = u64 // tag destination memory location as dest-type -M[d0] = M[s0] +# CAST srcOffset dstOffset +T[dstOffset] = u64 // tag destination with dst-tag +M[dstOffset] = cast(M[srcOffset]) // perform cast ``` -### Type tags and indirect `MOVs` -A basic `MOV` instruction performs direct memory accesses and operates in the same as a simple `ADD` instruction as outlined above. A simple `MOV<64>` would do: +### Indirect `MOV` and extra tag checks + +A `MOV` instruction may flag its source and/or destination operands as indirect offsets. An indirect access looks like `M[M[offset]]` instead of the standard `M[offset]`. Memory offsets must be `u24`s, and so indirect memory accesses include additional checks. + +Additional checks for a `MOV` with an indirect source offset: ``` -assert T[s0] == u64 // enforce that source memory location's type-tag == op-type -T[d0] = u64 // tag destination memory location with op-type -M[d0] = M[s0] +# MOV srcOffset dstOffset // with indirect source +assert T[srcOffset] == u24 // enforce that `M[srcOffset]` is itself a valid memory offset +T[dstOffset] = T[T[srcOffset]] // tag destination to match indirect source tag +M[dstOffset] = M[M[srcOffset]] // perform move from indirect source ``` -Consider a `MOV<64, s0-indirect>`, which treats s0 as an indirect memory pointer to perform `M[d0] = M[M[s0]]`. Here, the VM first needs to enforce that `M[s0]` is a valid memory address (has type u32), and it then needs to perform the standard check that resulting word has type matching `op-type`: +Additional checks for a `MOV` with an indirect destination offset: ``` -assert T[s0] == u32 // enforce that the direct source memory location contains a valid address (type-tag == u32) -assert T[M[s0]] == u64 // enforce that the indirect source memory location's type-tag == op-type -T[d0] = u64 // tag destination memory location with op-type -M[d0] = M[M[s0]] +# MOV srcOffset dstOffset // with indirect destination +assert T[dstOffset] == u24 // enforce that `M[dstOffset]` is itself a valid memory offset +T[T[dstOffset]] = T[srcOffset] // tag indirect destination to match source tag +M[M[dstOffset]] = M[srcOffset] // perform move to indirect destination ``` -Similarly, a `MOV<64, d0-indirect>` treats d0 as an indirect memory pointer to perform `M[M[d0]] = M[s0]`, and here the VM first needs to enforce that `M[d0]` is a valid memory address (has type u32) before assigning the destination location its type tag: +Additional checks for a `MOV` with both indirect source and destination offsets: ``` -assert T[s0] == u64 // enforce that source memory location's type-tag == op-type -assert T[d0] == u32 // enforce that the direct destination memory location contains a valid address (type-tag == u32) -T[M[d0]] = u64 // tag indirect destination memory location with op-type -M[M[d0]] = M[s0] +# MOV srcOffset dstOffset // with indirect source and destination +assert T[srcOffset] == T[dstOffset] == u24 // enforce that `M[*Offset]` are valid memory offsets +T[T[dstOffset]] = T[T[srcOffset]] // tag indirect destination to match indirect source tag +M[M[dstOffset]] = M[M[srcOffset]] // perform move to indirect destination ``` +### Calldata/returndata and tag conversions + +All elements in calldata/returndata are implicitly tagged as field elements (i.e. maximum value is $p - 1$). To perform a tag conversion, calldata/returndata must be copied into main memory (via [`CALLDATACOPY`](./InstructionSet#isa-section-calldatacopy) or [`RETURN`'s `retOffset` and `retSize`](./InstructionSet#isa-section-return)), followed by an appropriate `CAST` instruction. +``` +# Copy calldata to memory and cast a word to u64 +CALLDATACOPY cdOffset size offsetA // copy calldata to memory at offsetA +CAST offsetA dstOffset // cast first copied word to a u64 +``` +This would perform the following: +``` +# CALLDATACOPY cdOffset size offsetA +T[offsetA:offsetA+size] = field // CALLDATACOPY assigns the field tag +M[offsetA:offsetA+size] = calldata[cdOffset:cdOffset+size] // copy calldata to memory +# CAST offsetA dstOffset +T[offsetA] = u64 // CAST assigns a new tag +M[dstOffset] = cast(offsetA) // perform the cast operation +``` \ No newline at end of file diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js index 176c852e677f..5ca483c16217 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js @@ -7,8 +7,8 @@ const TOPICS_IN_SECTIONS = [ "Name", "Summary", "Category", "Flags", "Args", "Expression", "Details", "Tag checks", "Tag updates", "Bit-size", ]; -const OP_TYPE_DESCRIPTION = "The [type/size](./Types) to check inputs against and tag the output with."; -const DEST_TYPE_DESCRIPTION = "The [type/size](./Types) to tag the output with when different from `op-type`."; +const IN_TAG_DESCRIPTION = "The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with."; +const DST_TAG_DESCRIPTION = "The [tag/size](./Types) to tag the output with when different from `in-tag`."; const INSTRUCTION_SET_RAW = [ { @@ -16,7 +16,7 @@ const INSTRUCTION_SET_RAW = [ "Name": "`ADD`", "Category": "arithmetic", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -28,15 +28,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] + M[bOffset] mod 2^k`", "Summary": "Addition (a + b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "sub", "Name": "`SUB`", "Category": "arithmetic", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -48,15 +48,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] - M[bOffset] mod 2^k`", "Summary": "Subtraction (a - b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "div", "Name": "`DIV`", "Category": "arithmetic", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -68,15 +68,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] / M[bOffset]`", "Summary": "Unsigned division (a / b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "eq", "Name": "`EQ`", "Category": "conditional", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -88,15 +88,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] == M[bOffset] ? 1 : 0`", "Summary": "Equality check (a == b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "lt", "Name": "`LT`", "Category": "conditional", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -108,15 +108,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] < M[bOffset] ? 1 : 0`", "Summary": "Less-than check (a < b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "lte", "Name": "`LTE`", "Category": "conditional", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -128,15 +128,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] <= M[bOffset] ? 1 : 0`", "Summary": "Less-than-or-equals check (a <= b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "and", "Name": "`AND`", "Category": "bitwise", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -148,15 +148,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] AND M[bOffset]`", "Summary": "Bitwise AND (a & b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "or", "Name": "`OR`", "Category": "bitwise", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -168,15 +168,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] OR M[bOffset]`", "Summary": "Bitwise OR (a | b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "xor", "Name": "`XOR`", "Category": "bitwise", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -188,15 +188,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] XOR M[bOffset]`", "Summary": "Bitwise XOR (a ^ b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "not", "Name": "`NOT`", "Category": "bitwise", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "1", "#memwrites": "1", @@ -207,15 +207,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = NOT M[aOffset]`", "Summary": "Bitwise NOT (inversion)", "Details": "", - "Tag checks": "`T[aOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "shl", "Name": "`SHL`", "Category": "bitwise", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -227,15 +227,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] << M[bOffset]`", "Summary": "Bitwise leftward shift (a << b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "shr", "Name": "`SHR`", "Category": "bitwise", "Flags": [ - {"name": "op-type", "description": OP_TYPE_DESCRIPTION}, + {"name": "in-tag", "description": IN_TAG_DESCRIPTION}, ], "#memreads": "2", "#memwrites": "1", @@ -247,15 +247,15 @@ const INSTRUCTION_SET_RAW = [ "Expression": "`M[dstOffset] = M[aOffset] >> M[bOffset]`", "Summary": "Bitwise rightward shift (a >> b)", "Details": "", - "Tag checks": "`T[aOffset] == T[bOffset] == op-type`", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag checks": "`T[aOffset] == T[bOffset] == in-tag`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "set", "Name": "`SET`", "Category": "memory", "Flags": [ - {"name": "op-type", "description": "The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET."}, + {"name": "in-tag", "description": "The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET."}, ], "#memreads": "0", "#memwrites": "1", @@ -267,7 +267,7 @@ const INSTRUCTION_SET_RAW = [ "Summary": "Set a memory word from a constant in the bytecode.", "Details": "Set memory word at `dstOffset` to `const`'s immediate value. `const` _cannot be `field` type_!", "Tag checks": "", - "Tag updates": "`T[dstOffset] = op-type`", + "Tag updates": "`T[dstOffset] = in-tag`", }, { "id": "mov", @@ -310,7 +310,7 @@ const INSTRUCTION_SET_RAW = [ "Name": "`CAST`", "Category": "types", "Flags": [ - {"name": "dest-type", "description": DEST_TYPE_DESCRIPTION}, + {"name": "dst-tag", "description": DST_TAG_DESCRIPTION}, ], "#memreads": "1", "#memwrites": "1", @@ -318,11 +318,11 @@ const INSTRUCTION_SET_RAW = [ {"name": "aOffset", "description": "memory offset of word to cast"}, {"name": "dstOffset", "description": "memory offset specifying where to store operation's result"}, ], - "Expression": "`M[dstOffset] = cast(M[aOffset])`", + "Expression": "`M[dstOffset] = cast(M[aOffset])`", "Summary": "Type cast", - "Details": "Cast a word in memory based on the `dest-type` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type.", + "Details": "Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type.", "Tag checks": "", - "Tag updates": "`T[dstOffset] = dest-type`", + "Tag updates": "`T[dstOffset] = dst-tag`", }, { "id": "calldatacopy", From 662a19a2e0a59ab2a7c709c0a58e4becbc1c0797 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 21:24:47 +0000 Subject: [PATCH 02/10] small fixes to instruction set and tagged memory --- yellow-paper/docs/public-vm/Types.mdx | 0 .../docs/public-vm/gen/_InstructionSet.mdx | 26 +++++++++---------- yellow-paper/docs/public-vm/tagged-memory.md | 25 +++++++++--------- .../InstructionSet/InstructionSet.js | 4 +-- 4 files changed, 28 insertions(+), 27 deletions(-) delete mode 100644 yellow-paper/docs/public-vm/Types.mdx diff --git a/yellow-paper/docs/public-vm/Types.mdx b/yellow-paper/docs/public-vm/Types.mdx deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx index db74640d5098..38576b6a6cda 100644 --- a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx +++ b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx @@ -455,7 +455,7 @@ Addition (a + b) - **Category**: arithmetic - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -474,7 +474,7 @@ Subtraction (a - b) - **Category**: arithmetic - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -493,7 +493,7 @@ Unsigned division (a / b) - **Category**: arithmetic - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -512,7 +512,7 @@ Equality check (a == b) - **Category**: conditional - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -531,7 +531,7 @@ Less-than check (a < b) - **Category**: conditional - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -550,7 +550,7 @@ Less-than-or-equals check (a <= b) - **Category**: conditional - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -569,7 +569,7 @@ Bitwise AND (a & b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -588,7 +588,7 @@ Bitwise OR (a | b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -607,7 +607,7 @@ Bitwise XOR (a ^ b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -626,7 +626,7 @@ Bitwise NOT (inversion) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's input - **dstOffset**: memory offset specifying where to store operation's result @@ -644,7 +644,7 @@ Bitwise leftward shift (a << b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -663,7 +663,7 @@ Bitwise rightward shift (a >> b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with. + - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -733,7 +733,7 @@ Type cast - **Category**: types - **Flags**: - - **dst-tag**: The [tag/size](./Types) to tag the output with when different from `in-tag`. + - **dst-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to tag the destination with but not to check inputs against. - **Args**: - **aOffset**: memory offset of word to cast - **dstOffset**: memory offset specifying where to store operation's result diff --git a/yellow-paper/docs/public-vm/tagged-memory.md b/yellow-paper/docs/public-vm/tagged-memory.md index dd755a5ebdca..c984a553c652 100644 --- a/yellow-paper/docs/public-vm/tagged-memory.md +++ b/yellow-paper/docs/public-vm/tagged-memory.md @@ -1,18 +1,18 @@ # Types and Tagged Memory ## Terminology/legend -- `M[X]`: the word at memory offset `X` -- `tag`: a key describing the type (the maximum potential value) of a memory cell -- `T[X]`: the `tag` associated with the word at memory offset `X` -- `in-tag`: an instruction's `tag` to check input operands against. Present for many instructions. -- `dst-tag`: the target type of a `CAST` instruction and the `tag` to assign the destination memory cell +- `M[X]`: main memory cell at offset `X` +- `tag`: a value referring to a memory cell's type (its maximum potential value) +- `T[X]`: the tag associated with memory cell at offset `X` +- `in-tag`: an instruction's tag to check input operands against. Present for many but not all instructions. +- `dst-tag`: the target type of a `CAST` instruction, also used to tag the destination memory cell - `ADD`: shorthand for an `ADD` instruction with `in-tag = X` -- `ADD aOffset bOffset dstOffset`: an full `ADD` instruction with `in-tag = X` to perform the following expression: `M[dstOffest] = M[aOffset] + M[bOffset]`. See [here](./InstructionSet#isa-section-add) for more details. +- `ADD aOffset bOffset dstOffset`: an full `ADD` instruction with `in-tag = X`. See [here](./InstructionSet#isa-section-add) for more details. - `CAST`: a `CAST` instruction with `dst-tag`: `X`. `CAST` is the only instruction with a `dst-tag`. See [here](./InstructionSet#isa-section-cast) for more details. ## Tags and tagged memory -A `tag` refers to the potential maximum value of a cell of main memory. The following tags are supported: +A `tag` refers to the maximum potential value of a cell of main memory. The following tags are supported: | tag value | maximum memory cell value | shorthand | | --------- | ------------------------- | ------------- | @@ -25,7 +25,8 @@ A `tag` refers to the potential maximum value of a cell of main memory. The foll | 6 | $2^{128} - 1$ | `u128` | | 7 | $p - 1$ | `field` | -Note: $p$ describes the modulus of the finite field that the AVM circuit is defined over (i.e. number of points on the BN254 curve). +> Note: $p$ describes the modulus of the finite field that the AVM circuit is defined over (i.e. number of points on the BN254 curve). +> Note: `u24` is used for offsets into the VM's 24-bit addressable main memory The purpose of a tag is to inform the VM of the maximum possible length of an operand value that has been loaded from memory. @@ -40,7 +41,7 @@ If case 2 is triggered, an error flag is raised and the current call's execution ### Writing into memory -It is required that all VM instructions that write into main memory explicitly define the tag of the output value and ensure the value is appropriately constrained to be consistent with the assigned tag. You can see an instruction's "**Tag updates**" in its section of the instruction set document (see [here for `ADD`](./InstructionSet#isa-section-add) and [here for `CAST`](./InstructionSet#isa-section-cast)). +It is required that all VM instructions that write into main memory explicitly define the tag of the destination value and ensure the value is appropriately constrained to be consistent with the assigned tag. You can see an instruction's "**Tag updates**" in its section of the instruction set document (see [here for `ADD`](./InstructionSet#isa-section-add) and [here for `CAST`](./InstructionSet#isa-section-cast)). ### Standard tagging example: `ADD` @@ -81,7 +82,7 @@ M[dstOffset] = cast(M[srcOffset]) // perform cast ### Indirect `MOV` and extra tag checks -A `MOV` instruction may flag its source and/or destination operands as indirect offsets. An indirect access looks like `M[M[offset]]` instead of the standard `M[offset]`. Memory offsets must be `u24`s, and so indirect memory accesses include additional checks. +A `MOV` instruction may flag its source and/or destination offsets as "indirect". An indirect memory access performs `M[M[offset]]` instead of the standard `M[offset]`. Memory offsets must be `u24`s since main memory is a 24-bit addressable space, and so indirect memory accesses include additional checks. Additional checks for a `MOV` with an indirect source offset: ``` @@ -109,7 +110,7 @@ M[M[dstOffset]] = M[M[srcOffset]] // perform move to indirect destinati ### Calldata/returndata and tag conversions -All elements in calldata/returndata are implicitly tagged as field elements (i.e. maximum value is $p - 1$). To perform a tag conversion, calldata/returndata must be copied into main memory (via [`CALLDATACOPY`](./InstructionSet#isa-section-calldatacopy) or [`RETURN`'s `retOffset` and `retSize`](./InstructionSet#isa-section-return)), followed by an appropriate `CAST` instruction. +All elements in calldata/returndata are implicitly tagged as field elements (i.e. maximum value is $p - 1$). To perform a tag conversion, calldata/returndata must be copied into main memory (via [`CALLDATACOPY`](./InstructionSet#isa-section-calldatacopy) or [`RETURN`'s `offset` and `size`](./InstructionSet#isa-section-return)), followed by an appropriate `CAST` instruction. ``` # Copy calldata to memory and cast a word to u64 CALLDATACOPY cdOffset size offsetA // copy calldata to memory at offsetA @@ -123,4 +124,4 @@ M[offsetA:offsetA+size] = calldata[cdOffset:cdOffset+size] // copy calldata to m # CAST offsetA dstOffset T[offsetA] = u64 // CAST assigns a new tag M[dstOffset] = cast(offsetA) // perform the cast operation -``` \ No newline at end of file +``` diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js index 5ca483c16217..c62d731c4dd0 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js @@ -7,8 +7,8 @@ const TOPICS_IN_SECTIONS = [ "Name", "Summary", "Category", "Flags", "Args", "Expression", "Details", "Tag checks", "Tag updates", "Bit-size", ]; -const IN_TAG_DESCRIPTION = "The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the output with."; -const DST_TAG_DESCRIPTION = "The [tag/size](./Types) to tag the output with when different from `in-tag`."; +const IN_TAG_DESCRIPTION = "The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with."; +const DST_TAG_DESCRIPTION = "The [tag/size](./tagged-memory#tags-and-tagged-memory) to tag the destination with but not to check inputs against."; const INSTRUCTION_SET_RAW = [ { From 2a1202562a9cb305eff01c26e927e5a9fba4b709 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 21:35:53 +0000 Subject: [PATCH 03/10] opaque images, clickable images --- .../docs/public-vm/gen/_InstructionSet.mdx | 104 +++++++++--------- .../public-vm/gen/images/bit-formats/ADD.png | Bin 5237 -> 3986 bytes .../gen/images/bit-formats/ADDRESS.png | Bin 3380 -> 2323 bytes .../public-vm/gen/images/bit-formats/AND.png | Bin 5256 -> 4004 bytes .../images/bit-formats/BLOCKL1GASLIMIT.png | Bin 3382 -> 2334 bytes .../images/bit-formats/BLOCKL2GASLIMIT.png | Bin 3383 -> 2331 bytes .../gen/images/bit-formats/BLOCKNUMBER.png | Bin 3375 -> 2325 bytes .../gen/images/bit-formats/BLOCKSROOT.png | Bin 4342 -> 3146 bytes .../public-vm/gen/images/bit-formats/CALL.png | Bin 9200 -> 7127 bytes .../gen/images/bit-formats/CALLDATACOPY.png | Bin 4843 -> 3600 bytes .../gen/images/bit-formats/CALLDEPTH.png | Bin 3391 -> 2337 bytes .../gen/images/bit-formats/CALLER.png | Bin 3399 -> 2342 bytes .../public-vm/gen/images/bit-formats/CAST.png | Bin 4538 -> 3505 bytes .../gen/images/bit-formats/CHAINID.png | Bin 3373 -> 2330 bytes .../public-vm/gen/images/bit-formats/CMOV.png | Bin 5606 -> 4160 bytes .../gen/images/bit-formats/COINBASE.png | Bin 3400 -> 2348 bytes .../gen/images/bit-formats/CONTRACTSROOT.png | Bin 4364 -> 3154 bytes .../public-vm/gen/images/bit-formats/DIV.png | Bin 5256 -> 4000 bytes .../public-vm/gen/images/bit-formats/EQ.png | Bin 5259 -> 4005 bytes .../gen/images/bit-formats/FEEPERL1GAS.png | Bin 3400 -> 2354 bytes .../gen/images/bit-formats/FEEPERL2GAS.png | Bin 3389 -> 2337 bytes .../gen/images/bit-formats/GLOBALSHASH.png | Bin 4364 -> 3161 bytes .../public-vm/gen/images/bit-formats/JUMP.png | Bin 3193 -> 2153 bytes .../gen/images/bit-formats/JUMPI.png | Bin 4140 -> 2961 bytes .../gen/images/bit-formats/L1GAS.png | Bin 3415 -> 2370 bytes .../gen/images/bit-formats/L1L2MSGLOAD.png | Bin 7137 -> 5575 bytes .../gen/images/bit-formats/L2GAS.png | Bin 3389 -> 2337 bytes .../public-vm/gen/images/bit-formats/LT.png | Bin 5253 -> 3992 bytes .../public-vm/gen/images/bit-formats/LTE.png | Bin 5265 -> 4004 bytes .../public-vm/gen/images/bit-formats/MOV.png | Bin 4185 -> 2984 bytes .../gen/images/bit-formats/MSGSROOT.png | Bin 4359 -> 3161 bytes .../public-vm/gen/images/bit-formats/NOT.png | Bin 4540 -> 3516 bytes .../gen/images/bit-formats/NOTESROOT.png | Bin 4361 -> 3167 bytes .../gen/images/bit-formats/NULLIFIERSROOT.png | Bin 4346 -> 3145 bytes .../public-vm/gen/images/bit-formats/OR.png | Bin 5246 -> 3992 bytes .../gen/images/bit-formats/ORIGIN.png | Bin 3388 -> 2336 bytes .../gen/images/bit-formats/PORTAL.png | Bin 3401 -> 2354 bytes .../gen/images/bit-formats/PUBLICDATAROOT.png | Bin 4376 -> 3162 bytes .../gen/images/bit-formats/REFUNDEE.png | Bin 3397 -> 2339 bytes .../gen/images/bit-formats/RETURN.png | Bin 4060 -> 2867 bytes .../gen/images/bit-formats/REVERT.png | Bin 4096 -> 2906 bytes .../gen/images/bit-formats/SENDL1TOL2MSG.png | Bin 7129 -> 5572 bytes .../public-vm/gen/images/bit-formats/SET.png | Bin 7248 -> 5603 bytes .../public-vm/gen/images/bit-formats/SHL.png | Bin 5242 -> 3986 bytes .../public-vm/gen/images/bit-formats/SHR.png | Bin 5240 -> 3991 bytes .../gen/images/bit-formats/SLOAD.png | Bin 4152 -> 2977 bytes .../gen/images/bit-formats/SSTORE.png | Bin 4208 -> 3000 bytes .../gen/images/bit-formats/STATICCALL.png | Bin 9178 -> 7104 bytes .../public-vm/gen/images/bit-formats/SUB.png | Bin 5239 -> 3983 bytes .../gen/images/bit-formats/TIMESTAMP.png | Bin 3356 -> 2314 bytes .../public-vm/gen/images/bit-formats/ULOG.png | Bin 4063 -> 2882 bytes .../gen/images/bit-formats/VERSION.png | Bin 3362 -> 2315 bytes .../public-vm/gen/images/bit-formats/XOR.png | Bin 5264 -> 4018 bytes .../InstructionSetMarkdownGen.js | 2 +- 54 files changed, 53 insertions(+), 53 deletions(-) diff --git a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx index 38576b6a6cda..f5eec62c00e0 100644 --- a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx +++ b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx @@ -465,7 +465,7 @@ Addition (a + b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/ADD.png) +[![](./images/bit-formats/ADD.png)](./images/bit-formats/ADD.png) ### `SUB` (0x01) Subtraction (a - b) @@ -484,7 +484,7 @@ Subtraction (a - b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/SUB.png) +[![](./images/bit-formats/SUB.png)](./images/bit-formats/SUB.png) ### `DIV` (0x02) Unsigned division (a / b) @@ -503,7 +503,7 @@ Unsigned division (a / b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/DIV.png) +[![](./images/bit-formats/DIV.png)](./images/bit-formats/DIV.png) ### `EQ` (0x03) Equality check (a == b) @@ -522,7 +522,7 @@ Equality check (a == b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/EQ.png) +[![](./images/bit-formats/EQ.png)](./images/bit-formats/EQ.png) ### `LT` (0x04) Less-than check (a < b) @@ -541,7 +541,7 @@ Less-than check (a < b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/LT.png) +[![](./images/bit-formats/LT.png)](./images/bit-formats/LT.png) ### `LTE` (0x05) Less-than-or-equals check (a <= b) @@ -560,7 +560,7 @@ Less-than-or-equals check (a <= b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/LTE.png) +[![](./images/bit-formats/LTE.png)](./images/bit-formats/LTE.png) ### `AND` (0x06) Bitwise AND (a & b) @@ -579,7 +579,7 @@ Bitwise AND (a & b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/AND.png) +[![](./images/bit-formats/AND.png)](./images/bit-formats/AND.png) ### `OR` (0x07) Bitwise OR (a | b) @@ -598,7 +598,7 @@ Bitwise OR (a | b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/OR.png) +[![](./images/bit-formats/OR.png)](./images/bit-formats/OR.png) ### `XOR` (0x08) Bitwise XOR (a ^ b) @@ -617,7 +617,7 @@ Bitwise XOR (a ^ b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/XOR.png) +[![](./images/bit-formats/XOR.png)](./images/bit-formats/XOR.png) ### `NOT` (0x09) Bitwise NOT (inversion) @@ -635,7 +635,7 @@ Bitwise NOT (inversion) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 72 -![](./images/bit-formats/NOT.png) +[![](./images/bit-formats/NOT.png)](./images/bit-formats/NOT.png) ### `SHL` (0x0a) Bitwise leftward shift (a << b) @@ -654,7 +654,7 @@ Bitwise leftward shift (a << b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/SHL.png) +[![](./images/bit-formats/SHL.png)](./images/bit-formats/SHL.png) ### `SHR` (0x0b) Bitwise rightward shift (a >> b) @@ -673,7 +673,7 @@ Bitwise rightward shift (a >> b) - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 96 -![](./images/bit-formats/SHR.png) +[![](./images/bit-formats/SHR.png)](./images/bit-formats/SHR.png) ### `SET` (0x0c) Set a memory word from a constant in the bytecode. @@ -691,7 +691,7 @@ Set a memory word from a constant in the bytecode. - **Tag updates**: `T[dstOffset] = in-tag` - **Bit-size**: 48+N -![](./images/bit-formats/SET.png) +[![](./images/bit-formats/SET.png)](./images/bit-formats/SET.png) ### `MOV` (0x0d) Move a word from source memory location to destination`. @@ -706,7 +706,7 @@ Move a word from source memory location to destination`. - **Tag updates**: `T[dstOffset] = T[srcOffset]` - **Bit-size**: 64 -![](./images/bit-formats/MOV.png) +[![](./images/bit-formats/MOV.png)](./images/bit-formats/MOV.png) ### `CMOV` (0x0e) Move a word (conditionally chosen) from one memory location to another (`d = cond > 0 ? a : b`). @@ -724,7 +724,7 @@ Move a word (conditionally chosen) from one memory location to another (`d = con - **Tag updates**: `T[dstOffset] = M[condOffset] > 0 ? T[aOffset] : T[bOffset]` - **Bit-size**: 112 -![](./images/bit-formats/CMOV.png) +[![](./images/bit-formats/CMOV.png)](./images/bit-formats/CMOV.png) ### `CAST` (0x0f) Type cast @@ -742,7 +742,7 @@ Type cast - **Tag updates**: `T[dstOffset] = dst-tag` - **Bit-size**: 72 -![](./images/bit-formats/CAST.png) +[![](./images/bit-formats/CAST.png)](./images/bit-formats/CAST.png) ### `CALLDATACOPY` (0x10) Copy calldata into memory. @@ -759,7 +759,7 @@ Copy calldata into memory. - **Tag updates**: `T[dstOffset:dstOffset+size] = field` - **Bit-size**: 88 -![](./images/bit-formats/CALLDATACOPY.png) +[![](./images/bit-formats/CALLDATACOPY.png)](./images/bit-formats/CALLDATACOPY.png) ### `SLOAD` (0x11) Load a word from storage. @@ -775,7 +775,7 @@ Load a word from storage. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/SLOAD.png) +[![](./images/bit-formats/SLOAD.png)](./images/bit-formats/SLOAD.png) ### `SSTORE` (0x12) Write a word to storage. @@ -790,7 +790,7 @@ Write a word to storage. - **Details**: Store a word from memory into this contract's persistent public storage. - **Bit-size**: 64 -![](./images/bit-formats/SSTORE.png) +[![](./images/bit-formats/SSTORE.png)](./images/bit-formats/SSTORE.png) ### `L1L2MSGLOAD` (0x13) Retrieve an L1-to-L2 message by key @@ -816,7 +816,7 @@ Retrieve an L1-to-L2 message by key - **Tag updates**: `T[dst*Offset] = field` - **Bit-size**: 136 -![](./images/bit-formats/L1L2MSGLOAD.png) +[![](./images/bit-formats/L1L2MSGLOAD.png)](./images/bit-formats/L1L2MSGLOAD.png) ### `SENDL1TOL2MSG` (0x14) Retrieve an L1-to-L2 message by key @@ -842,7 +842,7 @@ Retrieve an L1-to-L2 message by key - **Tag updates**: `T[dst*Offset] = field` - **Bit-size**: 136 -![](./images/bit-formats/SENDL1TOL2MSG.png) +[![](./images/bit-formats/SENDL1TOL2MSG.png)](./images/bit-formats/SENDL1TOL2MSG.png) ### `JUMP` (0x15) Jump to a location in the bytecode. @@ -856,7 +856,7 @@ Jump to a location in the bytecode. - **Details**: Target location is an immediate value (a constant in the bytecode). - **Bit-size**: 40 -![](./images/bit-formats/JUMP.png) +[![](./images/bit-formats/JUMP.png)](./images/bit-formats/JUMP.png) ### `JUMPI` (0x16) Conditionally jump to a location in the bytecode. @@ -871,7 +871,7 @@ Conditionally jump to a location in the bytecode. - **Details**: Target location is an immediate value (a constant in the bytecode). `T[condOffset]` is not checked because the greater-than-zero suboperation is the same regardless of type. - **Bit-size**: 64 -![](./images/bit-formats/JUMPI.png) +[![](./images/bit-formats/JUMPI.png)](./images/bit-formats/JUMPI.png) ### `RETURN` (0x17) Halt execution with `success`, optionally returning some data. @@ -886,7 +886,7 @@ Halt execution with `success`, optionally returning some data. - **Details**: Return control flow to the calling context/contract. - **Bit-size**: 64 -![](./images/bit-formats/RETURN.png) +[![](./images/bit-formats/RETURN.png)](./images/bit-formats/RETURN.png) ### `REVERT` (0x18) Halt execution with `failure`, optionally returning some data. @@ -901,7 +901,7 @@ Halt execution with `failure`, optionally returning some data. - **Details**: Return control flow to the calling context/contract. - **Bit-size**: 64 -![](./images/bit-formats/REVERT.png) +[![](./images/bit-formats/REVERT.png)](./images/bit-formats/REVERT.png) ### `CALL` (0x19) Call into another contract. @@ -936,7 +936,7 @@ T[retOffset:retOffset+retSize] = field`} - **Bit-size**: 208 -![](./images/bit-formats/CALL.png) +[![](./images/bit-formats/CALL.png)](./images/bit-formats/CALL.png) ### `STATICCALL` (0x1a) Call into another contract, disallowing persistent state modifications. @@ -969,7 +969,7 @@ T[retOffset:retOffset+retSize] = field`} - **Bit-size**: 208 -![](./images/bit-formats/STATICCALL.png) +[![](./images/bit-formats/STATICCALL.png)](./images/bit-formats/STATICCALL.png) ### `ULOG` (0x1b) Emit an unencrypted log with data from the `field` memory page @@ -983,7 +983,7 @@ Emit an unencrypted log with data from the `field` memory page - **Expression**: `ulog(M[offset:offset+size])` - **Bit-size**: 64 -![](./images/bit-formats/ULOG.png) +[![](./images/bit-formats/ULOG.png)](./images/bit-formats/ULOG.png) ### `CHAINID` (0x1c) Get this rollup's L1 chain ID @@ -997,7 +997,7 @@ Get this rollup's L1 chain ID - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/CHAINID.png) +[![](./images/bit-formats/CHAINID.png)](./images/bit-formats/CHAINID.png) ### `VERSION` (0x1d) Get this rollup's L2 version ID @@ -1011,7 +1011,7 @@ Get this rollup's L2 version ID - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/VERSION.png) +[![](./images/bit-formats/VERSION.png)](./images/bit-formats/VERSION.png) ### `BLOCKNUMBER` (0x1e) Get this block's number @@ -1025,7 +1025,7 @@ Get this block's number - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/BLOCKNUMBER.png) +[![](./images/bit-formats/BLOCKNUMBER.png)](./images/bit-formats/BLOCKNUMBER.png) ### `TIMESTAMP` (0x1f) Get this L2 block's timestamp @@ -1039,7 +1039,7 @@ Get this L2 block's timestamp - **Tag updates**: `T[dstOffset] = u64` - **Bit-size**: 40 -![](./images/bit-formats/TIMESTAMP.png) +[![](./images/bit-formats/TIMESTAMP.png)](./images/bit-formats/TIMESTAMP.png) ### `COINBASE` (0x20) Get the block's beneficiary address @@ -1053,7 +1053,7 @@ Get the block's beneficiary address - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/COINBASE.png) +[![](./images/bit-formats/COINBASE.png)](./images/bit-formats/COINBASE.png) ### `BLOCKL1GASLIMIT` (0x21) Total amount of "L1 gas" that a block can consume @@ -1067,7 +1067,7 @@ Total amount of "L1 gas" that a block can consume - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/BLOCKL1GASLIMIT.png) +[![](./images/bit-formats/BLOCKL1GASLIMIT.png)](./images/bit-formats/BLOCKL1GASLIMIT.png) ### `BLOCKL2GASLIMIT` (0x22) Total amount of "L2 gas" that a block can consume @@ -1081,7 +1081,7 @@ Total amount of "L2 gas" that a block can consume - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/BLOCKL2GASLIMIT.png) +[![](./images/bit-formats/BLOCKL2GASLIMIT.png)](./images/bit-formats/BLOCKL2GASLIMIT.png) ### `NOTESROOT` (0x23) Get the historical note-hash tree root as of the specified block number. @@ -1096,7 +1096,7 @@ Get the historical note-hash tree root as of the specified block number. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/NOTESROOT.png) +[![](./images/bit-formats/NOTESROOT.png)](./images/bit-formats/NOTESROOT.png) ### `NULLIFIERSROOT` (0x24) Get the historical nullifier tree root as of the specified block number. @@ -1111,7 +1111,7 @@ Get the historical nullifier tree root as of the specified block number. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/NULLIFIERSROOT.png) +[![](./images/bit-formats/NULLIFIERSROOT.png)](./images/bit-formats/NULLIFIERSROOT.png) ### `CONTRACTSROOT` (0x25) Get the historical contracts tree root as of the specified block number. @@ -1126,7 +1126,7 @@ Get the historical contracts tree root as of the specified block number. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/CONTRACTSROOT.png) +[![](./images/bit-formats/CONTRACTSROOT.png)](./images/bit-formats/CONTRACTSROOT.png) ### `MSGSROOT` (0x26) Get the historical l1-to-l2 messages tree root as of the specified block number. @@ -1141,7 +1141,7 @@ Get the historical l1-to-l2 messages tree root as of the specified block number. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/MSGSROOT.png) +[![](./images/bit-formats/MSGSROOT.png)](./images/bit-formats/MSGSROOT.png) ### `BLOCKSROOT` (0x27) Get the historical blocks tree root as of the specified block number. @@ -1156,7 +1156,7 @@ Get the historical blocks tree root as of the specified block number. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/BLOCKSROOT.png) +[![](./images/bit-formats/BLOCKSROOT.png)](./images/bit-formats/BLOCKSROOT.png) ### `PUBLICDATAROOT` (0x28) Get the historical public data tree root as of the specified block number. @@ -1171,7 +1171,7 @@ Get the historical public data tree root as of the specified block number. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/PUBLICDATAROOT.png) +[![](./images/bit-formats/PUBLICDATAROOT.png)](./images/bit-formats/PUBLICDATAROOT.png) ### `GLOBALSHASH` (0x29) Get the historical global variables hash as of the specified block number. @@ -1186,7 +1186,7 @@ Get the historical global variables hash as of the specified block number. - **Tag updates**: `T[dstOffset] = field` - **Bit-size**: 64 -![](./images/bit-formats/GLOBALSHASH.png) +[![](./images/bit-formats/GLOBALSHASH.png)](./images/bit-formats/GLOBALSHASH.png) ### `ORIGIN` (0x2a) Get the transaction's origination address @@ -1200,7 +1200,7 @@ Get the transaction's origination address - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/ORIGIN.png) +[![](./images/bit-formats/ORIGIN.png)](./images/bit-formats/ORIGIN.png) ### `REFUNDEE` (0x2b) The recipient of fee refunds for this transaction @@ -1214,7 +1214,7 @@ The recipient of fee refunds for this transaction - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/REFUNDEE.png) +[![](./images/bit-formats/REFUNDEE.png)](./images/bit-formats/REFUNDEE.png) ### `FEEPERL1GAS` (0x2c) The fee to be paid per "L1 gas" - set by the transaction's original caller @@ -1228,7 +1228,7 @@ The fee to be paid per "L1 gas" - set by the transaction's original caller - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/FEEPERL1GAS.png) +[![](./images/bit-formats/FEEPERL1GAS.png)](./images/bit-formats/FEEPERL1GAS.png) ### `FEEPERL2GAS` (0x2d) The fee to be paid per "L2 gas" - set by the transaction's original caller @@ -1242,7 +1242,7 @@ The fee to be paid per "L2 gas" - set by the transaction's original caller - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/FEEPERL2GAS.png) +[![](./images/bit-formats/FEEPERL2GAS.png)](./images/bit-formats/FEEPERL2GAS.png) ### `CALLER` (0x2e) Get the address of the sender (the caller's context) @@ -1256,7 +1256,7 @@ Get the address of the sender (the caller's context) - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/CALLER.png) +[![](./images/bit-formats/CALLER.png)](./images/bit-formats/CALLER.png) ### `ADDRESS` (0x2f) Get the address of the currently executing l2 contract @@ -1270,7 +1270,7 @@ Get the address of the currently executing l2 contract - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/ADDRESS.png) +[![](./images/bit-formats/ADDRESS.png)](./images/bit-formats/ADDRESS.png) ### `PORTAL` (0x30) Get the address of the l1 portal contract @@ -1284,7 +1284,7 @@ Get the address of the l1 portal contract - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/PORTAL.png) +[![](./images/bit-formats/PORTAL.png)](./images/bit-formats/PORTAL.png) ### `CALLDEPTH` (0x31) Get how many calls deep the current call context is @@ -1299,7 +1299,7 @@ Get how many calls deep the current call context is - **Tag updates**: `T[dstOffset] = u8` - **Bit-size**: 40 -![](./images/bit-formats/CALLDEPTH.png) +[![](./images/bit-formats/CALLDEPTH.png)](./images/bit-formats/CALLDEPTH.png) ### `L1GAS` (0x32) Remaining "L1 gas" for this call (after this instruction). @@ -1313,7 +1313,7 @@ Remaining "L1 gas" for this call (after this instruction). - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/L1GAS.png) +[![](./images/bit-formats/L1GAS.png)](./images/bit-formats/L1GAS.png) ### `L2GAS` (0x33) Remaining "L2 gas" for this call (after this instruction). @@ -1327,4 +1327,4 @@ Remaining "L2 gas" for this call (after this instruction). - **Tag updates**: `T[dstOffset] = u32` - **Bit-size**: 40 -![](./images/bit-formats/L2GAS.png) +[![](./images/bit-formats/L2GAS.png)](./images/bit-formats/L2GAS.png) diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ADD.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ADD.png index c358398a8d0bbdad7243644753f9bc93a2c37a80..61aa24aceee1d6243f770198ecb46dfac5030a1d 100644 GIT binary patch literal 3986 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 literal 5237 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 E332~4yZ`_I diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ADDRESS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ADDRESS.png index 14fe371aec91fc526b2a0a82c328068e4452bfcb..40f342573dce98f7e9802a328ce1dbb3b57ec376 100644 GIT binary patch literal 2323 zcmd6pSx^&L7KU%a5 zH^bKiKefMdhBv6Z#3Ad={5o!Mun`&E)>%R&05EbpA`F043#d5&r+>q;SFhnXXjS1wPw~Q*5q`k#T%26J=Z31 zFI&pJv&SJcokLh;rwpZob=)5VuX^kzq4wfKj@rBSny7S2mqXwmE0&1s#4SKEFtDe6=^GUv;3vM+Qp zf_VXuH1yGq1_0g_sDOR$TganzFxS8HVyL{9`l%g0tsNjmlAE;^EmD^)PH#2gzj+&B zyH$lUfi1C#D>{O{P{;_B;P#jueT%JGX}XoOr-JZ*WTV|SD`KJji+1Zm#x?-H4RUQH z_wrMX@Eh7~P1hc*kF&t)mkb-hVU`luVM>AiPm+*swm-g(ErcVEsR0ferUxkIkS)ZQ zRl%q+Cm+Q6B1g-gO$|r__@rl}>_g)Qoys+_`IFwsU2{jyj6-PN_B6Y8>ty&yUWrc% z*6?{FN%&${u%98h{~n4toh4nl!eBhE*E1EUD)-$^x)oq^a)Y|ycx8n!F3)@xxr4T= zI$Ip{NF(lOo?vh8XM1Q4nI59${5Oo`pylXM7|p?+ zrjGN}Ik)pYUzaZ`nO~k?2pI7kxNo4_n9k6evk;mej&ri7@f;eCiBGll1WwRaR)ZTI zjl6)|)`kT41dY!7R4EfJY4;=j+g?MqP3< znO_Z0o>@s~wH91>>sXnqx2j@K+n;M3vEDo|M>MWyu3Lsd9qngmazq7=x9`O-nsGa! zk?5zC7|rC|*Zez&cS#0By&^u(R|P-Uc!eNix-8T@Y}@cl%RWcYl4Apmhj>yRAUq>F z+D-CO`Lh&g9Bs{;oI3tcNu%xQv`$5ene4FQzFDQC>Uy86cO$Z&rv)u5W(#aF}}uiuQS6G#+Io@xR-!c^{c2d>Az0OAe{}c(3vr2vDQ3F@d*}UUhc9 zbC!*%)aIH#`M60kdA`bRDv9)I^B=MJ%dUo4Ck|7!r?<53n>YFnfu9U2OHlMamcCya zv(o)?q3mY{{&=}3%^~M@9o|1VpL+N8rtzZI4T=vJikGm#1mt8$tO<_yf*j;# z74zvk`5kANFHMQtFxhaLxb8hl&C(+W1uk)k_qxm8BGW8qD3@a|*?linN6aTav`INo zE$LH%NC#FnrsIg;H8Oe)0;TfWl6BGnL8!W1l}pbgoo<}y_{={iA$T#RM6D0PsO+M; zzVnc5j0h>sU3Qc2Ohm-B%$We>_d2j3MLDl2!zRN3ap9ZrspE<6N2S%KAM|6dHcc^F z;hAOC?n1LiV;9YCr=kqKtf}4i4Y?Lp{yQJ+9h3}&e!LW! zcGq^lCroP132((Zo(u6_@o#x*2XSq zw&MOGHmTPvP>;(%_D56&+WhT~k@5%!k6zQihB5 wdGSSx_ycO{j;#yKSI?_w>D9smFU literal 3380 zcmdT{X;4$i7VabRJCJ8z-fwb{UzTV(m3-Yo*{<83E2GppLkb>tpMR1P-t$dl(!j_Bp&`ceJW+moWH_ zzhms&zw43hBZWlU@mopwE(As;66Im;F|Mbby?EgeuO-}ZdN3vNV zDSpahtysr@;2?27ycN*549kQuqjcc|I|~bz4fpcZK>EoOj=h%8CDxWD|IG>%h@g6Q zIj*@Z#xoZhcX@xGiyP~tFPAN^3L%o$8x{jt5!s<%&bWF-3V@VD|EY7%CS|VxcK3Ey z^3&K=TVF^CQVvT>*IN!WK}7#;69GyHe10L}x6^ub(G^?EvY2@|zl?O+Cp)IDz7mhtabMU=;t^DCL71DQRP z{)Iz<*j%g506NTTaOinnwP$w|Vpapll<${5e}LcN-#uXSwPh(_2s@1mVSF+HO*Ee8 z+zg0YON3_o#6S8SIU25)F-IG~VEji7fiVZXW$Vkdu3 zykXbTk241kTiHg@YCN3xfsH9fMr}<9k|PY>c1Qr5JFOx*e;H5kI69#QB^CiG;}&|L zUS{};h?4~~s9(L+qYG`68ZIM8RvsP8)6mhV?2>n41v^@cI#hhkB*&>yj~@`F#t%y# z^THb|P#JzzvquXKMCn$zGnI@lEK?}Y_GGs|T-L!k=33%~y;orrYc++oT-mhiZZl;I zjNyVY2Kv%n>Z3N20pUSXM`RbB;m-z5w>qLypJoHwJot~#@BEtD|F!u(F^%fZ)aFRx zV~`Dz{KYAyAStl=BHy+P!h9FVsPB=Vz5(*iVdM9=mQ|mcPM2yC+KWSBevTNJNoIfL4So4~Q!SLVMq$;(F;8by4(m|&U8ytqI@rDZ zEncxSpUpno2u4nXCxQNtVn$(OqNSZXT2lQ;0x#02#IQ<$HaErjezB7TIMfV%RmoH7#6xo}3_P#+dkltkvLl7otV0Bw0FDm($C8sue z{_V#rGrTyg>*Y6vB9HEMOq-hOgC$W<`uclRn58`&@hY0L@MTUqMLH9O<|W5)N9%`_YAwW@letGeP}y|g8LLxL2dpfUUT30J{Kpgk}|~3X=S$? z_jrBQ@@_;PGIxLaaCV0vu2^^YMT{<1 zF%#R1L0&V)x9PTsLW}Sk;POmr=gN&H{HtK)e6>brSJ*dd)uu90UtVN9_5QPJtMaOb z_A_$Iw`3JF&0;1#sG2#9hmfXyO8fmtEU@Isl|}hn^Tp>Se;_3`I}t*!7Y2GKskQaG zcVieqNz`)ZYcG_IbxP0b=JVHsR7HYa0mpp(RJ!gq=TAmxQ$0bPPx~{jucn-euR9{5 zCm8v1u6au3j4t51!Qbo(5R9$7myeO7D%_|z*c_}scqg!vyzlk-xvI>)8k9;`jBcT^ ze?;;6>6qm~Vr@cQ>i`-G{Qwcre?l&Rh;aJc6z)E=oRCWm&?oLd)EWv+zDBd}3-=!Q z69W^sf^S2I4Pg|PFXJ5Mp8PVk1iDT1itcgJcv?^N4gRP1@DlQ+H8%17C|a5 zgfHh?>W>&PQQhh0E_2$<=mlM1Dt;`~*qn+cuOAN9LjC0MvJ<1KqmwhpR^7&HjoHiL(uPipm?houjnui$Ng+Q@%Ec5@H29DTM1l6OXmt0mw3IOF z>Sm2HHLp`}MWuV&B(|Gx{RL}M*8zSj5s_m$Vlgan@jdk@XCfG(ho#tU)#|N_C&l~o z?Q5`gQaoufc$<-pqG` SBqX~49RK;$k#Z}qOaBI!!&_ni diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/AND.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/AND.png index c15ee272e57b49684c360e75ff50a8992affc74b..4f2521ad3c3035ddbfd755d31728b08246a8741a 100644 GIT binary patch literal 4004 zcmd^CXH-+!7Cr+e3Wtm75#k_Prs*ns>FWcElHgpW^+B!78@xd475d#&A>TKW(1btIIJM0* zAwG`Ql;E8BvN9-oK$BUD^gOHqS3};%)Q~PmzckW7_IUG8C$3yHeP_gb|42Fo$Qwr8 z=qIxG6c#W;GG1F*lx;azg4|&gH|oD}vS^T$XZ<0?4ek^T?6+xsPAa0vDWg(?$+ZRX z-&%Z2^IlBZo;Yw2!$0WOF9Sel8n6sxZ)Y-##bNFn^J!||NM-$ajE{uZ!75p;sRmk?O+;rT*};XyC_aG2H<5b z6gc!J?oE~djGtTw+Y_d*PbY_^e)$k)i&+TQLkowmiO#lxkL^UCoNF_k+}AyYYWbN@ zCt3FY4NSLGO~_p~^1SCn!fh7OB-{&a*j%$U2Vd?0A`1s_3AWa=!c6vSAxGMf_^Y^3 z?XSv8D`hwkp;gG@yfBoDB;3##$Eb3%DkkTU_Iriv)OVq-FBYb{IOh#232DyQ{b$PD zJD(HWk2y}3?LXynNJp4I@#_9st#;TaB8C_KnK2Js;8YK*{y?re?lPqEd%DlPW?c7J zys?Y5+39_LaECQ!n&R|_N-D+Y002kxUji%}p70s~R<~TibU|uZ6N^sOa>LqSs2PJKcRAx}!{Go^Yw zqkRMKzSz*`hWY}4MNI)LAMO!+7=q^n`fHhAnA^`&)P8d)*Ns;@FjnlbXwcVqc3(wh zynRJxXpJPmZ%R`wQq>m+y=EpU)N`D^=UJhj!s(`PGdHN--MRceuia4v(n`N3u|d~R z>LHV_SBIp@0}$C!DA<1WNxZ~H5AGc41+r%znhvWr+$FF*$Bp>woVRW12YsoXuGqqj z&Y}Fl;N^)jYK;;Aypg+f<*#dI8`di*PgaCCHsI5n{P@hN-^P&M23OKneP7*_&pP5$ zHGBA-zE2te3_Ag2Nfp`@oXa$ z?6JBfk6B%#jd{&h2eFSXZY=v^oYP~EQVamlU2L)}%{2y~vFgTXez&<*%>eQ6n}cCj zoQG~V$G1k?ST92y`R1GEY^v`k0G5uLq~J}6vNax54FKZg(!>B(7Mi+Wd+_JcW744I zfr%i_l3gg6e7F>JoSzsA#@`9X>-C{w(O2dZYyoJ>6f9YxjS5JflZnYKhk+J-!4AD! z{)K9!#pVU|q&h8FiMac44sqQ`{A(w{pe&2+=#9LN_R@<)N)zr3Xo8pmJ}d{lW&mOa z)@1_x|MJEnM@O#^vL;_>4P#QmrZ>q5aZg)F+z>MTofL=|H>eY&oNJ)beTwdJ%9ck2 zKRv7Ltg9&QjTZ}P6ZaaljzOGHRDqzCcIADCA1zCGR@T6#nQa?zF~(KM_OVkAQu8L_ zrCwFb6dV7LysnQPBhHRl&fw4_4tJxJ2Y!_Vf@JzLFfp|8csBMTmF_h zSlDVMnVi9+P*(xod!`v+4~y)9lNGLDa8ivO(Q+DAaQsb1 zGiJ;rb}y2*>N?fkekS5zlpF0%xJfK=Qayv&z+NgFq}Zh8SeniGY0kPV9wAL8u9l@- zm1p4mukc&~EBG*mOD9h^yz_HgVp(IhyzUItyyCZp8E5BzUhnR^(Ek|yti$&Haxlx4 z-8F{f?YxY3##!=O)f>-xTj)s%A?z8tuA!fxH$N;7t)l) z>a9>D5Blv~36&YoeU;o9^=7QTc{0p<>RF?BZ_ci&B?zBcMP|jxEW7vY$mu@)elmDfRoH_}U@6k{MTQh2xG-{UD4Dg(1eR~@#T8H{Ahq_R+V?lfS zca<%;bY9i#d!QHlw?gz149DGlX)J*@bPL8{vwXnG#^9KwZ27Tc_@OJQyYbhK0D{;`LqKyGN^T-YK0G$t^?;qkb zmU>uiO%^cVW5bth8CYMt$-(Vvk%J=Q@4o{R@JaW+yMA^Pq28q?C$Ly&yUQy5vAJwW zq<8-MD0tWh9lVUpIPJ%f!(Yl3)IO>GWJWmR?sX=DW;F4@G;o9>Q;>HjYp%mf6Hz<4 zMGs~0x^|P!#csEe*#V~A!>f;*jR4%$TlXV$v`*T~dIrFW8))5+AMuJ^sDO8IW=H0< zi}oiij*wD@Ys;@rsquFnc#w*lZ+K#{C6LO=Cv+N@s;CZhV!5>O0d+B!ZZn$(G4R&# zxp329)4xYtDso0A!mS;o40c1b=sve(N>K=sM5g~!at}tm)W}0@iez7*U=jGN=d6_!kO`%%GrJG6GO6mqi zW{0Ki7CVks%4=|aj`4^cMif}xA}LDDbhGz)K^(SBzrxPlhnqfU+BW+U-+$2jewn0_ z=KhWc&hY`mw-XVF-B4#@F7V@Sh#2OxjeKKqX>7);6rtz;?$Y*WU-egC bX!(+)&!oPsC>3{sUr$)uA1nX<{PlkTuI+>C literal 5256 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 WEArg8F7;qCfMee|+ta@Z$oL1zg;FB` diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKL2GASLIMIT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKL2GASLIMIT.png index 816a84cb99d9fc4b80435e917ad041d4d8347975..32b665d21eb79a612ca37b390e35f0d7e3d90c5f 100644 GIT binary patch literal 2331 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%0D2Jei=2q8gBUB+6pq0^NL>K}^7Jnk7qxP& zUK%rn+yg0lp7xO&JcR*);u5?la)5i7*1#X)52LZ{DngaUaI7&Jh#za~j9gr8ulV-5 z2+?W}8Xx?aURZ=XqNCP~)5dt1QJxqWKbn7DfL9K|%`5F|Fltt!-wzQ9uoKz6p5ZZL zVy{xgWR~&1Qf|$ybCQjVbPimCeqp>ZDJW>5BBC+YH$SGpyr%Whb$ud(Jrr=0DA;g? znGu>#&d7zd({@v%a^=y$oi@$x0d7z`@|B1`61lcXem{Q&q^_edfN{=;!CA(a^>;zC z(hL&U0}dUKS3U5%zt-M*2}`r+V`IfDrlycm@X|9B_|L7&iR)vUTAzB|KO|@VNB;p< Z)O|bfDWRp?Dj+a`{m~P4Wwu@ke*n?eUQz%6 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKNUMBER.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKNUMBER.png index 267651b68002678cc7721cb94268a8661cd35b89..f3f1530fe85025042ce742a000cb723970df2754 100644 GIT binary patch literal 2325 zcmd5;Yfuwb7QRV9UJ{r>1E|2FMJSC#7J>2(l!vTJzy%@@ng$nT(JBa01Y;slSVaK^ zf$|DkkU&f#3jyU70wPm2JOqq{SE7>yLLrJERPxxgfBIwD>F&(_=$~)S+_~qT@0|P1 zckk7(&|pLT9r^$O!;pgkM*)CQH1UtRPz@>7m;4IG&A){#X(c;u z>I4b*aeOUT(sn0>(NGefACfxlZunx2q=o`Y37I(y0pM~z&7W1H+BFkXBYN&sO>=U?+;i3s@+p?Olsg>3)TWCvgTFkI(snESN=CQ*7xPxfE|4>VPQFhH+P`?DX z2d(j~vOjl})D3LsvMXxb4XLDfUcR@6Nc5M=Ib3}7JAVoGjZ@ZjF;c%9 zw7Dw`fQmg7C@{9&0wyj2;-c<{{p45u3WCx5JntB)FHc94BG|pf?yXMvy*1S+u{z~) za@7yhOQ{xi&O_nLA0AyVwvgIi*u*{g@%oqt#1v5M|1Use$~WojgfiwLb55~Jt$JC@@w7>48(u<8AJ7G_FgpKc{Nvp8FG~wnB*3NRimQ{o5k389Z~_n!HE7GhyOS=r3HY`FRna z3JFMVL!_iHGPb9wj8-~`WOlJK7Kfk2@uOX`B@vF*D9+!O#Zygqo)6%SLXMPo7LVi> zxgAa)J6V{qE-HOy_jle6J+J<7owb@2Q$)Iz<%lFMwt~1r|q=YBZuF<0^gf z?ZC8+F)Ysn4N322hEmTe@%=jT2giGxkz6;q;28;7#C>0NQ~ffkX*5K}Je8C8Yq{wL zl~;p!F~@;r#~`m8ngtr->2Z**8x9k}DaR*Zm-FC>f+6Z-`lAb@eNXT|B)xOkOz7D! zBrv^cw@o*+J!)+XyoWv#>v^1u5$ff<>w2y8b=esiq0%-#_@sq!uhvLaJY>dV1L2T) zfUGOKUCoJnePnbVDX@R#Mi58Qak$7js1Y z$q1v{#?0N6*-@OYu*jj21ujJ(a^j^cE+#XwR2lnflv9pDbQY)jyNZV`xS@SS2=W!K zMCM#?^_gOa^h>%g4Vlj zsC=|`I$Ru24pVg@J4iTuJxOEVm1omqQT zDa+Z%^Fb**aq8M!P-XrC&ONGH1ivPoIGw)a{9GI^HmInD3A#kKe_>@eF~kmuGw%hN zx2Xqz&e}UqnT=8NCp@98gc!#dHAE;S?H1Zne9%gEb1%wXHOO9g`nC(Bbu5e1I4brL z9i>b4jrMy4Uy=sq@DcUx6_~n9ekN&XdBXB*-s^3w?~CuclAVyaZ%*+H9I>g}t%$Uj zRR4_gLb@VArxeA8L(|Y_zkLKR=&`xxb~wf=N#q%%ms@FWDR4neCM%-uO|ko}#N%3x z(|$GZ`6Xnl36!Br$0mQ3x2t@>&s71Wf->q!Da!Hl3&}Q+)qyEi390{+qy8rGKS;D@oglw;Iyf@-ADZtD2nh@gVETWP^)HAXs(}Ci literal 3375 zcmdT{X;_n27XFd|LAFGx78DXX^ciF;K`lr@7DbVzC`v#HiMSw3L^hE%5J0L`1g(Un zLVzO3(gaYGh#?T9MnIGuOn?N75D`N_AXGxge9ZK3pUyL#KmBvh-Ol;WdGCAgIp6n3 zz1_4mwrcE*sHKi`pz-deie_a=>^2oJ3gj#K*a}H# zzt}YIi zIQAi_8SZwHPeybhv^R!R#mXdQ%DSjzc1h*|*^+kXSZvdWr% z6exqd{~YMMjzD6oQco{e@i{M8nH9}XJ018?+ByI?0u4B)Y@A$KYtLI-v4wi@b}3Ui zJ}1$2WsbCr$TaoFS15BmHgwTdJ3jyPE)i^;|6-!>fX7S-jg~g2tJdbq7#7>BA^Gf6 zr-(}4eheD652%{xvV9mp6q#0{BT7$($uTA@F85r_t27cp+ZG5?OO^zh?&+&p3-ZG$ z*a~3!>@E16Xicp(_jhd;OmDytaV>OqTVYS@4BL;3_a%cIW%@3#mN17+(z{*RpeJuY zPyAgBek*#`Pq`?E?dB)xVO*CkF5*bd3h4AtP?dka{W4dd#z>aK`Xr2KIp7n)h>)PB z&pn5O5&u`jyVp1@-D;b*Sem#_yV*kO7Oj;!D2ES;9H%4Kk5JQy6_MygTct@)+T}mT z|NlbtW3TMSIa}gAOci4s9WaXC1FsSV`>&mfujlH%EtV2gA0PB^mxlxhoB+(-yefKH zl%^KA4O#lXT|Hqv+aCx3slFmDUc5kRq z!s?>YOa}sIYf~498v{vWB_r9{k?6K}@Kj3!4?M#hfHFf-cKDBap zSE@!YPI}Y@bn5DcQz%qGa!=??=3ye0Kwwk-9e!C(PNh?$cv~eQVWq2Ud|Zo-)_mY< z0(sq+>~-%MdwM0~&W~ZaDkiwda?@a-ZL7zqk5pDgf*II)i0rzOpbl9Yw!qg#KLa+Rg`Kb>x*&T91t`H_| z-+S~-9f`6wetRlKIr#Gkb{2;0!;>mN4Frqp^=mDh$e_;UT-V9G(u7}7tW>Milt;h} zMq<}uzH>xP>;*wWFqg{+0Iv!>S5H-SZo5SL3SL!3uK+ZG-dLW}FmnDqBEVr#UMmt9 z@v$!C=$T2#sxG;q!{u{o`?@;v-}_lykiUPBb`UP4L~Z@pf%T#y83Mo{K-=I8nPBEj zAUN@wk9i232Kv__WPUe6Q49SmDNQ;uZVot{@|amp;t=e_xPn%ePJF!y0L%xPIg`IF zebX*(Ej^#N41Qy-9I6t8Gz%p2^ZbCE^On^jc{XDJG7mb(t?F?Zx&uE^@pFhJ))JWX zG>wpniLG@dI%H7|aC)TQg)y?J%3Rok>5`#?_dycA6GZb?UUw{r(Yy%mz$WJtjQGm( zskWCCEij?{*vRwC;>}`ZWpk|l=)s+*Z#3?}Kq2ZkJao=j?nlCVLSC<;JX#ia51{qm zmEe0giGvo(F3CgNUiwKHHD9C{b_g$+O-(2(Fn@lCLCR~Jyh`Y z_78U`s3Bu-GS9keqS5A;or)CWM||`4EP<4iCxhm(-*3B3n<1Ld<}BF}&sLb{$3Fv; z(=`1$QHoPF%qsGRrsi2i|4*cf5Rn!6ls4zyDIGM4E-*WrcO*^{_0{J*JsQgLka zgw|H0z_|{ZRmdRWCVcqjmedQ_(d>`g#?<6~!{YY3N(RRCdxk{By2~-oQatCrJ@rI&vX(V;K|fjgO{rM-F$kP;{tak{E(Ani&9#L^|z>Sv)}hH+qiy(6Vp^leOzj# zAG|MJmW0i?xyvTW{s}(2hTP#xp1;a5NsClSRz!~sjKDC(k5QTB=J^Y6mkr*WPL0<} zA`;R_=Y-t7IjDLZdXiXb9uqH$m0`s+o-gk#SGO7{KRn|?3~Ok(6sHVzKi_HeOF9EA z0G9OA|~>T0HMR>_$Gq6|4s-Q zh`J%T+6e`mwZYWO+Hwh;&BO(P&($B4(pSq`ny=q(3R8A_$>BhuTbJDq#YVMS-lV!w i`~UrG^S|~3kp|2A4O1q_$rFNL0PY99UFrLSGX4dyM^e-P diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKSROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKSROOT.png index aea3d00f76b016c447e0eb364f1b71ed2356566f..273e7f8038521a2901a9e7d909d47f4424735628 100644 GIT binary patch literal 3146 zcmds3YdnXQ03d5?v)>5-$p&cMjDSPq_0iQl0A$wL?%#JTEN}7+zp7MUNwV`qz_QrTRj%Zg zSNNI3pRUb`LJn8$%V6LVCD--O0 z*>$PDRIbpCOA?5GSrqZKU{F3qG4%s`<20s|MR`P$M9cgKQ4F`SUJCLAp`!&U-5JB^ zavu}i%BML()%k5|GF^F9s}wwrK!%~J7%lsRdO=Mr3(HaokU}LFxj<$iK3PN~V!y?h z@8kLiXMM^2Zjd7^PIvd^v7V4`um-I?8V1<_9IgP36bg`pCQZ$6Q3!;?A6&RuSc~vp zcLV$J;PCEK)549c(6E%giuuu1-y-SDglG_y>^|2&zg%f;5nQL+A#A&_GwohT{-F-k z2Iawu#asI4H}%r*Aa zB;WRTOFwojta67dP!yBY3wgip8n5OwTbk&~g`Zcg3KBJ>fOs<%t5M#n85)N+RgjUA zIJzOyqS9U42pcPpq;b}d$tm~D?zhe{TVE)&vf6mxuvW??dl^=?^|n75*)d(fGT)?P zR34DGKi@{K=L5SFX;_(XpSm`*)Mx^d_#H z|9Q?0O%ZDkMcsH=Y6wr@MkOEs=)BS=g}eD|g|Gi1LBG^|1wObxl7V8k;nKfiyig&Z zy`1keYqEGMx63r%fE!rQzv#mjHe;JHu%ULc?|`?!>5VK3Qj~3HC0fF(S-Ip>m2wfw`-QiGfi{7&K$S&Cwd!Y%2|bk}u4=qh|S9(JAJgFyAR=njh(3ii80s zzny>&0GiFvU$ujion2$PErVJ;Ih=u$l^+Bz30!4G8L+px#BAi@mfBiYXxfg|V5kW} zHCl?$rMuZ3u-SeHRV1$F4ko(NbR7*dr2%!a*C$ZVx=|K{TNN5l^H?d^;~+I8(JFXc z2?69Wa7i!}#4XZgufIAa{|mrbuE<_fwdJucu~F2gwNk4=`L_7taPC&_d9V$< zo0Lvc+Q**4g3Zd8E+#NW@Uye2tskD~aQPk6wPzjq!;x<|a0)#+0=}26>URrv8mr~N zp-tDd1wK}&+-$a%PU|mTqK>D+aNU*3MLMdWY8!lHbNqIlg$wN74jImLbQXly-{Mr- z$8&T@@gFa41Hv#kb+(P{V7gixO$g}SEu zYLme^-b`Va_E$HMdM`3E`uQM?qP;>5V_&k~yxk26FxY@l02CJkZJn37pkXQr5+R?I zr#c`AqXh{OZ&uv{lkAwZ8%BvkI0RZl>S)s)04P0wQhr0y*Iz{>X}FrlLIsLY{(D)4 zJwqtS3F&w)iK78>=*#fJ1LbmJGYIm3qI~}@jbe{$090O75%Ukpbvpa$f_3|vCRI02`+=Lh z6MX-H&mYn3ri^KMcRnfbZOYnC+PPllN!XkxvSU(V;`zkH%vB6*&Y5s@1Y5DmgEHS) z25OApBYkz5GjmDw=|#tZeD_|bXK=%iVNL3hI1e&-WYmtl`va_{wrwq9>4iqY(~2C1 zwlvZbnJC6?F$&%_LqhSRjfpXecdCn*u1KBYIC!BGXRg=B=DZ=D(6aZdXAq)jJ!8TP z(xv&u4kA_OkLp8d6GboE0_z#lH|reP@G|Id_KNpYy3mbGqwIYDT^mlHdmYyw7V1Yn zBW5ttXmiec5_)uqx_e)B-XL-D3uAik#a6&Di?~TH;-_RU$)D4}$Q07qdzdrH%l8y1Gd!~8Rsl^NC2nENOk^1%<;P7#V|W{!J4Kks~&jTp%gl0eBheEK4H5AmdjNpg1cF=fvkfaSdl&lJw? zS$7&jHJMg0;MS{h44(3UT*4c^Q!lJtWa;GY;=J*zN7B2@*zVM7g(1!CgXTxr@Q<$$ z)X0NfgUejpL^L_M?*(av5G z_!svXbJ*7}iEiyOPx`hh4*CC>oo<3|n36z+8e`Fzh0ZVIs~h%BIHd>ig6oP;gdOBE z?-a4Be;WME!*q=6vA&wy36^*keQKJxjC4hh1G(uXcqqQkw7fY)N;NCtX~l#NIt&z)y47U&WNJ+5V(YB=!FEhvT?-ig>QY;kWY~ivV2!7@PFF+is8lN Wj4#G_^mJB$usv{iKg;6u<=+6h8GBU# literal 4342 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CALL.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CALL.png index 9bc0b671d99533dc29de1408ca42c35839de24e4..dadf16d9a1f8ce2338d1b6c4352f3e8602932976 100644 GIT binary patch literal 7127 zcmeHMc{r5a`+tbY9$B)Jog$Qx7%zshj8xVs5~0YFeX@+o_6pheU5mFD6&YKZEHNod zBl|M;E$a}&Fu$j$^#1j|zSsNvUGMd~-sg|!I_Ey;zR!I=_j2xYo$zyT9Y#8CIsgC| z&z{jb4*+cHU>i$I3I3(CDJ}p2Pv%*z-!A&3&keM5q&?vP+PXiH$=4P%oi9fT=kng2 z8Z^YkvwRfdJ;cl~3JCz&_IzQ4$DaH4^ucDPHl_G46m_`+>Aw(wHzKZIm;d=u#bFNo z?13#7{eOl0f5+sr%k2JiC5E~+=vz0ZKGt9Ck1zGC#g8QLE709m4I*s1yju6B`DFr9 z(U9v>K8shXQMcn?TxF4gFXO3s(E?RVl>9Y{ykiBN(%ss@FE&;FN4@sK>)z0tOlrd`~L+n%mC@;0N`Nr z?iGLI^P758Eoj2~+fnmc;e`P&=8c}o4awThNNMv&rAD9JVAh$2ri=YCN$7b&R0xi}+|Z;MP9*s*ZRp5eZAF&Z zd>hrpGTChF4%l z$N5Uwm*#+z!&Y&V25Fi!pgv*sLJ^kv1fcB*!Cv?C7Z$eb@?~FCv4>DtXL1n3Rwy@d z@G6JF;Cvj~o4YdrSlp#Hq|qWrJC? zbE}b*!dB*mBTvEdKOaNTTH7A7Gn|Hr%tb-5&{|XMi>h!%#B%$M$`}U@gY)vY6$m=X zdQsxD!E&#{LA!Uiok!z1nD*bPe)>ojz1V064)B zqZBo2(k)MAbXB!?N;y7lO@QsX2G<>lc;Do=ELxU!;k_(cgPl$~tvU6TL5mp&D2UaAz6_dTW6^mf~S5IItev0CQR1PZy7Kmnh}G*)NfkzP+zMl&Fxf z!V4gU><)r{sf%O^os#Ql3q*;PiM`)1+S2Y0piGYkPTce4ewJBx8xjxPCFA<>RDNfuH%Yo!UaBgJ_U{7X$SosPLr!0KuY1ny)kRHs)?`~n}&8Y zwFa&TEQ9W^eQTSvB&aBRaz)Jpj&=s4*N469E*Q}ZV@MVNz-L@y29M9`3kzL$;rOqS z{_~?13u61(16zX0ARv1`)D_lWa~p8y?0+Dnh0GK3o9c{FG_oU)fAxvZP7`OOYBc}l z)n3xhXpI|s;o;ADyDY@WDu3A@%-`j-mi#9Q{4Klq=L)HVL>2a(yT%pLX|UH?05Ia2 zK}ke=?xXbBf}+YoayEJG_D(?Q%xnQo&_bTQL@?_s{#RE1U%>}VTqq`ny2Y(%H{QOo zU;VWb|M$4(Ulj+}#CwKVCzIWH8wcc5Vs)C6{5EpUCfu1n?G~DU2Foys4c$T>K0dSy zUG@VuNT5Ae$ZD-URyw6C&Qq+JGXS|9iQV|Y6yIkNE^T#R+R97DTyb|N@CO*;5u##~ zd&1ZdWQYw-!p)lcF&pm|xK7Hi<~d%>>=rKDWws_pZLH=@=qCZf4@@CxTY&*lEpMTWF&!HQAIu z{m{Fc$EQDmp;M7Eq#Z%(s^YF*#d9AEGQ4*P*&q2h2Fl7@sdx4ZcmG}ns4LtoQRmGFNm&__Q{p%QZ%(x?`ceXVEXl>tZ(|<0Xp%8x>eNWT!(J$3!YYof zHCfx~;!nZxq?gO%t+v?0i>S6%1YA3|D}RBhZd-cEns%?9ho52T}Q26m0} z#J1<)&H|~MxXK-)?DWCE;gSF12-vzgfCB2|N}VbBaDhKWeQnT!h1f3y)D=TWkUMW< zr$M%9o!k@@@X#SqX6uY_0;;Svz*NjSwR&{DEPxaVplCa?M33TUtZS=0VEhA!U19&A z8{XH8$c|PRF#H>&MZ_aPGg?csYZ%H9%GtKo{o-ZFhxmfmz#-}WAY1ZS?`f5N0 zQ(etuXP>LZFnbQVRGqN1_zic(ZwV;aR&gySh61<JM>Bv*M=YdpDmlWBPN-1p_EB965BT3foIf_s0-!wp)qIsorReY>&?JW@4f7jOX~c zXfwSn-Ga$DFMx{hI5;g|oK#<5*t<+onqP3|AZE0}m=>TH<^=fM3}|GN`%Iu#%79gRNszwv5NzEse+5OXv z$t`mN-u6O6O*Ynmw|m{0r1vsg6if8k70XAmyMhgej=6)YW?g5Umd`p*m}+Woyx8e- z@ILS^L4P{VTnv9TL4DWUMktp$Wp~nJ`RbHMj5dyj@H1i#& ze1~Z9Nkv?+W+nNjGUmRQN6*5t>$5r;ujpV2RH6klqY&<6IaZ+owF%HK%agG#534iA z4K4Pu%+|jSc`Utf?F?rPFhA{K<~x`ybCIIosw0D(ibR_GckABo85k8nh0GtGE-Rah zt|VbU-;@oYSQ+vC=F3;+E8Eo;duOI5GuNeo*F{`X%~>ZIB#G-ZuuHh#+~N4@m)4$d zC!B|$w7$gbYc;6}dJcv!WNsx)D!{*976lnsp)DFZZ!SM{-~FBxYOTEPor7$hkG0Ce zq9Gk-jH&L{St{c8r^=VZdUJ@E1H%Gz_zx{}Z?@9jg-YGB1BWEunAJ;+{xVsFS{9}6n@DBie|sR^Ur&vRYgwHncLAq?XVML5(Fu*R zoG=4ptUR2}bb6#qi$u8|Nh&`@?t2ou#rg+eas76qTE*5IM$Us@ebI3MR=JebP<12q z;ENSzbwu$u3t;FkEB1;H@%z}j7#Ye-!bp^1o=Cx?H88JS+Yb%`nYz8{j;GcSgXMzD z^I83^)#y+zylB*R_w643I?yka4smJK7iTHb;E&#aIu2r>QeG#Q)^D;L($~875e`gL zMtLA;Zt;uWX2V<0vkcUNafcD{D;=sVqpK-F8>g*PpOYkAe3%?%f)_B|>tI3O7qXYZzS@s@SJo&tp2TXocw~8z7ouhU&eBS71kdWSY zWqorRixOQX{*-+N(dhh zrmz$y-Z%24WvTH>6AGYEyr_0>KT{caHo0>$ZVL5v%ifSsR{Ar1*(YZSxRw{>M?;rFr+H05vkB((s8^axy8t(9p0*P=uarS2*mT0&Sql zxM}RnNG+(#8RIPN^{3u^XW*$jypdLbqDRA=JerQ8Jo-s{z`8eOcP9^_ONDp?{Z3@| zP&5FSe$RY*$reU@RbCrAj!hA5U`hb>NOU~qaE5Yn&X(h$?#KB$9aYEEt}nZ-oX_4g z$||=kdTr0@Y#G$zvg6qoYt=t~xLPH1Rv;?OLYac`Qpt`7jL zoudnoD8%hM&WxQxISsMQB<*EW0kgged17qJ+>BwMNo3yK>5h(&A$ojEeKB%`Q(aTY zmwUWj?zAqQF`#8$EM{g)jX$e(3b6QYH=WN8S-w}5$#U-a5^0^9gFxJaf`GHEA54Zf zVnsQv5Ro!6zEcgZMbp_8Icru8avo%Mhcje~y=7ekk8P~kO5jxdI<>nn--^cGqR(hy zsrh?}NDn_z;jgIQ@-?n)v<{P@N>g@so{v zeVqaRK`&O%$P_OvYgf~m Sc|yNB=~)Je0|qJU^An-l?2F+xaM5d;c|xPpL7H6lw`${HZS+EW*nDvPoP zML??oQC5M3Dh3ctz-SNx1X&CSNq~d|$acSY1#Rnn?my?=^PK1D_s93myz|aGGw=M~ zWhS|}*VSR!l66Y}0LvWr*zE&g6;uQ*s$W2Fja}yr0nn>*wEK2{R1UkBef8ERno)aE z0Y`SViFcATt=%-KLRXMG4^=bkx#(x8T{6fY+Q)YvzgVL zpA}A+O05hWu{wQzNyZ;9?a8+H;0<&e}Y!jiROZ8`^T0{d}Pn@tY z|^@fOXXCoIHK=o;}wJR5@H(O3IGK&11Dy-d~)IBQr zD6m1x6#qk=;QZhzwVYdy3;buTQ)Sydy{nHe{jB}n;+SZE#x5JQ{{M~p*o-0$(shOC z{oL!f$mGrwP%ZxST^lD2ggD$Q{FQG=tR$@c39;p-kmY&|t-%uP=&SBjN+Tli2mc%`Sz^Ns>POh5teXqY z(A+60{>Nh~w@W+8k0#wx60!D`YglbqqBxfd;IF+Hz1CKmGJe02bXH1qpYwIXP2vuB-mf+-@#5K2~jnb}+|GidsZQ z6fm^LO0WuZ57K!LuPyz0_02VyK{1QPE#r9N`ZQ&U0sdn2@RJ&~B0~qJ%&YSYs$j_p z?IalL8Ik zZHB}rU+QDkt@aE*E#8HORG48+@m8S~SVmLn=SH7*MERJ+gZg0V8a+$t+O9rLJXS5% zV5B2+a(wPuU(Q-8*|y%IC}A7ETL+woGqnCb%6#S08;LoG>IcnOrsL zMy(`Q`5(7`5IaDNt*ez5Mz&gP<|s@e;;b+6lCUwA+oayIEm;I^OeYCQjEtp2o;aVJ zmS~1(ZTUz5r5M`it6HqK&c{bpXqW2;urS0=8SFSLdRTE*yM1XVDY0$ZOwVNP69_L) z`{p{QYJGZkp&MntUgJgZJ@d^r2OTqSU2JO@Yu?qgLlA@ux6OB;ZI!HlYC}=r2aI9* zs!@wtC%K-Q(m`z`H#A5!L@nO|cCj969WkO~nO6Dza4RG@V%S4lIS2kO1F2FdV(!x&IL=4*dHU7aPu_p#$TN*zFmwDLXzY!I&RXY4#`@^d>>pMvhq-{u$$>>Rc2``|MjKPkX_l^Q*n2D7~ z2^{PCpT3E0{E;E&Xg zyrd&z+?2oc`p_;rO&}pYCsp2VJN$R*_Hpaqm;N=0@-4rteQej4Y5V3pYSsTVg1lOA zy=b&5Ligw)pbgzG7pHQbr5If;1N$JNc3?hjW*sDQK1#_ZKXhDc|g{P8=q?~@$v zBUv#PN~`jV(q8z=5H7U0{?|xeK}$b2&zCUq{*j>HRB%bQkgUx&frbO0SFk)oU2a&& zr&5djc23XbuuFolm3V)~5TE-@dWJ!N-7`0B{n{O8uK0cgB+qUh0!jbh{!Mk zuWNd~i;AqsWzeTustYBto4UA8jJ=y;5*HlY%V1P|sS(w5L^l;kU)KD9klx`@adj;a7&+)zSZ!8%fm*9TYB%MKa&;DcvtKTmIwkaUO z;rF^zWp#v3crSH00wc10h=}s!MAc%Bu4By)jl5MHmN9gALDPhpmmCmxR)6xjM$E^JjTC<2R(Jk8)L9}s5=)46 zUFasTTk|UQqx|v#2$4|~&n?|OViaoS%gU7#8G%Cv?|M6^mW~MyB9XL*hN&4yo_r|C z%#vAmlPvx*KO+D8!Z01J{y)BR~tLA+CsUQ^%9v*_MT$v3ie{#c20elT$FPI~qyN;~tk zI6~z@i2e%p#jg_3uRC=ZFNoGsX-%MA%C?hQ^Sy3w+=8800y{WgM=q0ZUqfZui#zxQ zU?$pqqKzzh&T^k?wBnV=?S+M3X(?MkpXZePGUOg_(b;*SxWG^Fv08qN!i6)7UD5h? zVm2*!67wye%;NGY@I(47t0;B6!)JwL$kF_nC-Gl$g#vjb`H8fm7QBKobtvch%Sc~I z{)h4VA*7VgSw?P2ccVtizyhgEALBBT71<2gN^4Hs3JTx@i2>gd> zhP8@`V8T(;=CAvmr=~T+vhkXPzI_zM7it?z#1T`iY-HcK}>zPE9r*&#o>K zLetBSqgMlv{QRVDh#F|Hg(PD=z^}Xf4S&C#>Jzlj`MGU!e!B2Mdc0!rc)*FVzTF}( ziaMd^{wkN1mO!s|rS1i6x4u*XS9vjnelY~(o57Shp{b{x2bDsUf%%dUbr5Vnnw7Y% zBpezi-&dbCOW3vrvcv{bn-#&5xhSU)Y{(W|jmDS6V%|D-9m?CG298$QbmqZQ%yN4L z&xkjVUOeDri15tZ>i34L0{lzJh)A*u`fF(y{V`J=95y6(8ITol#NL|Ks-Qg;T3a!X zpnxk&Yim6`*nK*0DVPfvO8gwkpsP`ip9=WraiU-LtU>;HMclndJjcFBu5f%zpPEx8 zB)+Y?cBm4e5#`Nhxohc*NIVH_NvyLVZm5MM@zE+2P1}7r(v-W{IIM!C&PhDrlu{_b z03c>N#cq(cc!=Nt%;}L8Kt_y@7edrdL2DJl)FOxMkGAMEKbPFT0$m%yM_@tEW+h!w zV*$y5j@E@Wr2vV!7oq?fR|ui2UUTN6V1zPg2~GPE^GatoHgrkxWL=J-caCFq4DEVr zmtcG{w~JU=e~IB%k7qLRy{v4eLqEEZsaxaL9-n$jmq|x}4P?5;`Y^mU49yzZR&fyv zaO7{F=5pSqZiNM-=;JqGB*Z_i{~D}WhDJ2;FHXhsMO zOfnqnyxgWJj)^s44^DQ`8CR2F^k>YwHUM*4_mE&2FnzS;+D7RL2;ht!ov@)ib#8ai9sUiE6WSJPpzVkkwl9@? zS*r$Ya8(bX`B*%$lG}nM^rixOqi{iZ>Vq4;DMhku>b;#V0KM)u}jEbozMpTt=)6+B2=h0=UI{woY>Qo zvJR#V+JDL$EUJjUk+b8C6K71vqBk9~x_-o=xBJiDYdH+r^jSaCptA`=W!#nBcok>e z`~1cTx3-jObX%;(gc=m;kk%A~r+EZ>YnN0F@1{^$rT^27%mE_{6RU>HJE5eML$b`{ z@Os%KzaG$3(g@sQ`<&4`(MLun)B6(Dfq3lMG6%QuT47i<(*&GvymiWz__MsSj zXDXxRDFsDbe5M6*YiFJa7wzAdw0&Tx&}nmrQ&afT!SV{6CF^1h@O6V95L37m!ntP- z%#cC`yW%0;hZEuDrb4=l2kj57sh0=vVIp6Dvq%PpX4Rdi|%u}V@TII}pUnklylW-LQwkis`--b>O)@ zw1*$Z_TVNAU_pB&ec;v}`L5P9^TZvou0xM#9r5y=-8^MmJfawLh{7x6UKWuBRSHpA zint%5d5$}aRr|9=ZrLS^dQ20WZX32!7{t3%GgWv(T_^J13+@9#)S&1gorI1-*n+5n z+u5Owh%tHjfo?PIIA+UGPD5xlVY0@ z1u%6Tarn?2kuQxG#K$6i<*BJHJ69EN?n3jGT?i90x4rW#))yFX-XaiL!I%L}X3jCv zDRx|@jFHM)hbz3x)WVe6t1}(zb#*~q7vqvFZhE~gKRy;Le;Up6hNjYvAE}tmSkinH zPPDAiMTwL_-&e2E1s!A+qYD~{Biq*cAC*V?1KTJ(OknQ{je8aDQ^?r@+ZyV6TwZTTUTZJ0 z+?Ark$c0m{5zRPSqH9nv&VVxZ_J8)IHg}(YveiYlYK6@v?d!B4SJGJ(W%v=P4hw;e z(M1Wqd_~3Md2X)o?jSUS%XP}5$B;Xi{l+Mg21nBbnV7>(yQ+E2lvrKs8yOTC&M?}R zQu?z{1%&3nigPnNm&mD229{qEhQM4UsF zG`J8PZ0yUU@ml6eDG0V zQn;Z7B|aMpI`&&1cgOtbW0xf4v)@OXzQH1E-G1#dGw7)JQlsABWYSo*i#&w7n&z?e z1jg|SxVT8fVdE`Lvn@PvuK%&O*~yGmr3xtdd4XFIzAv|EbfV?DgW-^&Qp&+|3dcmX z$h}M1jLUjo3Bo$Z!m3P6aiWas;dhhXF!E|hOU)alHPYHW(B!H+Q+Inf4c=?sF>cBV zhN3&awRN$TTJi0kq11wT`nt(<4moOgnxw>zY{3}Ld?`USwLWJK_I@H zGu}h(kmKj;Lw7lQ({JtkP=AdI)Bzh(s^|I7{QiG=MnYy4K^J*; zE+2pK`Y??TAM;CoS@HhD8yRmt|HIw+<0iWE$D2=j{(CO0|NbAqCtCo(-~YP!gF57u e|I|N=h!IAesAIoJ+<$)y>A2g~uH?I8=l%<2QL=Xc diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLDATACOPY.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLDATACOPY.png index 0f5c08b1e9af4b2f2f3b90af4189d1afd4f70398..0e08448ba3e4453a2470659ab9b48c6c678efecf 100644 GIT binary patch literal 3600 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 HfaJdeKM1s* literal 3391 zcmdT{X;f3!7QQz`24xUXnG~W{5fns083K}83koPG3M$A@K!$*TDDx1+s;vkP%ra;r z2E;HY0%?HO7A?d8fdohhfii?4AxH>OAj!M5?`PL~Z*{%(*6N@0-81ZS&bQCE_c`}F zw=<3^8+A7V0HAW}{raf|a0#`iLksOYgEbiL`St4rN=6xUpFbp^X0#rO~GXw}*P!WR7 zr2rfPMOOd@!EHkTgy3gQ3{(PRN+_trEc_$PQrTo6?v#<_M_EbCHaNs$Gj(-PoHC3Q z)-9a(U5=<)Cx(J^-nBFsY;x7Xtk(jK%FBj~ZI@lhhp#%5pq6`)f{SsCfU!!s&7s;* z{cMW-4s*`xctqzxmG$amu`E%RBIT5HEy3NZF#^5TkaZ`Xuw1Q+>a@m@wAP*Yth|z@ z524?g|Lo|e$AAQTnYMN|U#lZ%_1oy7RDbV=$hJNO1T+CEdHv*`wRKNeat|m5=?aK4 z_I!lq3F1KO0CAHxTUW;F zg2*Jss>Rfg$w7?&E5*?+&T+qg+B(y1D`7bJ+P{okaVs1aO*%e|qw!!C=R zYfi_47f_L8mKDII^L(KpDb4V!yUJZ_n-(YTKh~gNg{&6dWar`3)T8AuGA*7Fh_uBw zrbbC4q{gZnddGy9FoiiwbVppBIGE)Q!g{_GfFchaaY#lI z#>ZjC0NPj(lnWoQk7$3emWjn50G-h|tmytqJVxjZ`$`i#Yuu@ z?Va2b4i>n}r1VIeR&h@9vP)FGXiE`R8BsA7f}CZKG)7{C4l_u{OJ^`RH&A2vQD+uy z@qJPDLz64iJYj~NoxVRQHYHAlD2I`;dkxo#YG7Ra&u`gDMxbqd$W+w~09&p+m_ncIU&>Q`+ zbUc4QM2cGpfbq3>JrT_8DCBrwC?V)yi$w4aAljRtZV4o?_4g5na&1kJ!Qb{uVY&lwi6vOe~kY#F8=y1YF3)<3V2`ebh(?-mwd!teDjs-M`QO{vmBM7^rwZi}y>|w+L%) z7xFZc-9lt=>4;gL=tHplli;bCK;1pUn&#AHdFCGBNZ;ZcPLab*@)b3;rE@Xi=b4T( zETCE)6ZJmnF3Tq5(@0&K{ZPQ%&C;=xUw0Q~jC!>ea1<$T^BS~yI~11E>T8ee zHmq^EumPAOMEk|*rsE*s}jsWB0DjoVQ^l|DmHJ4P(fcN|tgZRgMpqdRi_f;$}I zLeExK)T`cW4~Vknz0Z=oPoFC+;XcY}EpFJc2xLheID#ZvBxyiDTXkPj3QioLIUuEm zkSPS5>_x0xxVw^vXO}3nL=Ni?{=5^NyCe7*YgQ6ydlvZxqnWlhD?LBLQuZTL6NT99i3K&AE3qQEU+I>vX zOm{27qV9$Xk6wa9yN(qz=$GSI8@)tYW?FQGE+(MUa_k>=EPV*9@e^^_DPb ze*QB&DRbzaU9ht?dkemlfc_p`JwQk(F7&LKOeQl}BO{jxG(i&~H7uo#%z2jEz>0l9 zgbmj?Ku3KcWA}CnN5>^(Zp}*)?2vy|h5cAc4lP@?@KS=yzPSD5B|PItLK@(=SC*Cb z(&To*@_o6egBPF+d1*o)0Sy1JbhRD;+>QgVc07Cs)Hf?U5{sl+U BZ%zOJ diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLER.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLER.png index 323e2869b8ee5d1cf0a3ac461ceab5d6647b25a7..d607f344741b414a034dc76724cb0cbd415942a8 100644 GIT binary patch literal 2342 zcmdUxYcv~Z8pq#AB$!2K+?tTx?RE{VC|lRix}>Q)Eu~s*#+XZ!nj-3cO}1!jMzz%; zGp=bVsY_^4ibPD$>ZrN~A#Sl%Wa73$LV|4O+kUWT&YrU$cE9}2d!F;W&+WYL`9Im` z{oFM*P#ORLO-~Pe002;`^4z1QqU4^i7Yl&eiYMMRFtK=Ldg5h~{UO!!+!}>~CPbKg zW}Shlg#MJ`Y;1R_JKMDE`@?PQwNL;aYz&M#0>Fv-*aZUae)7Kyne-R*I8)RnwUDtp z-w3v(E-2kRQQ$~j)+Zc)lvk}Z|}UeCGdPr-Vq&| zx6v-+P0OaPBTI_pzN{gAqJIrUSMW)4@D1A%69VtYQ#Zyo=dUNK?~h)aU(}MZ6-_S+ zov7+p3e9~jG9Ok*d#*LcRZd?XiAMz15e>c9jl9jj$e#d@_5E$zVTzq{GYN_I(vc1Z zza6UXT?)w4w}SD)lNYR0CD}F>5=+W>C0W+_3O})&^{&4AOBnJ)jUZIBzw9>D6ae#Z zxzTw53Xf7%z#-!UFq#UsmehWY@_IK+TYTqqNSSjVLV1P%rvtnXitt;u{h_#$=yY;% z`P51b(!{FYe^v4-=Mi$zG(mo~yC;Y10MP|h)Bg$>%r$w9G>pa+F=tc(wW;#xRA=xS z2U56?5QGqTyNWKb?OJCiz;rrpx+-tfcEC=EPXbKw)%DJnn(T5I18v z=d0LcB>W-rvXkdG*L?)YTnC0Ur@Vn9UZUEr@rP@zAlfl^GWhQ)bN`5Sfo#9$Z(>ta zIB1o>knJJ5RG#RU&7CoY&F&mJ{&)5T#@h>olvnpvPbQXHZOrn$Y#cnN#Xzv1L-0cr0dYm+%^gAm`zB=3$wqJf_6J}QV<|H49? zrOdwKT35lb7=&mZ+q4()@@;3ujQweCqz-Aw6S1{f+#iu)^umhct47B*s>TupW`UBz zuU>`IDxE`<6GHU{8Dg!OeZ@sqd!EXGazx>i*lqWSq<{o&0`yeR+}3*A zdu~rP{gIX_SPbzhmX)kGD*Ltn?wX0EH$s=%*pX8F!4U~{_5dt&95V6n*P4f)!?c0R z_dw%cF`{z4S6**+&yD*lNLy z=w>eJJ&+A(8F>R%`O|bx>2d62V&b!o^~vLg_i8je()?JqL*Xxe%EENb`aS+M@&t{T zqrQ8$Pqo77f~?GP7lj_Yl49^-5BYpe?%$4Eg^i)Q@iwsWGk`^#P|y6d=vF`8^Lke-_Q5KTlBn;I^*}aomw zg(CcI71+vjk52v;mGXl#I5Z|9_&@+D*EkV?CorXq{9j@p`sQSHq*Pb?Bjx@BJkR>! JnYhny{Sz~Azrg?i literal 3399 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 Kc4fA{H~$T%e_vn# diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CAST.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CAST.png index 8767543b69f4af0ed567154ceaf545347b324c6c..2ebaa8a56f13ef51f6b6cb87c49e46b800f4d26e 100644 GIT binary patch literal 3505 zcmds3dpMM78-HFiVI7L3B%0dVh-C^n$0UakDQY{=uocNprck6YQ&z;L6YEqNwHT=p z8D=p|vXzO9!;Y9SMlwT_Lk#0Q-#dL>``7pF_3gFaAK&%8f4tBA9Paym?%#cSuKIYp zsjKL!007k8cRB9^K#>H~jmiq}|EJoJSa?0!-Fb&!^qt`zZpB0T$|XL&xCI$HV(p`G zHobw=c_Rq{4G#5 zHiv4rp!F;l?B(BWsS&m6LwOE&o5DCPgE6FRVLxhNnNM?Y;?qSJ%OCfKFmWpZ$!BwZ zRN}-?>J?+aG%S$SRMcA|*01ZX$^EobjS@Uj$f0jl>wbiYII}4=Yd{JyTR>6*&-7=kX~IA+ zXd^eXPrnI5l-#2URVnC*nFxZW#zx|*j*La6B#|ivLx^Qu154!|Kd3vWiK2ne;al{zUqR83{%h;^Jg_f~@o|k+qnN-BA$^CdSyP)ET zf_=l$%859CEYdkgYN_ai**0;=GuOcl-GIn~UTWc%VxaqvtMvmkd|pFzVv^_BV320E~Ldp-S;klY-b^AQJTT{=Kw>yXDdfIijddr6W^DA5O^@mRu%Fa>SxS}@sF469R z)}O-vhs3|6{?87RExdfixM_EfqRCBi|7(N|DvMzs`Uei`V~%WA&)v~}qhARCa%!tV z;GxU%5(F+GKZlIQE&y-*)#>8laDdpgnIYTi<;yi$-~Tknfj<|vF#Vc}gey;S6Dhtg zKh4s&qFD)!LlWzYs#nYXbhsC@xx)IknRsCXyoDhIGoN|UAFY9JAaVb4lW%uC#+54K zBRFlX+yg&5*1hk+E-BXCQ{G79*bzoeDUOyo;UYbBK%&J))K- zEb@4X*Xa#)dx%~AsVjl?@I$kQX$XvdFjKu`nEf)VW$r4su+y7^Ah`_%vGdaq%+O#a zBwMwW-s``u{dtKp&~f2b6~XJHNIbLdooib=@k5P1;JGi;_JuJ(9lC5=Q&DO61oZvP zO6+u7R`*-FQqLmL}d}}U%DX@->6|2*k?5_-Q`4;mVeRR*xgDqcAs**IX)he{X1s?wXR&SPc zUOB)SM@%sD=0sNXWRN0<&9{?u-_>c|g#T{fgbSn)_*fRT z-bnw+OEv3?{4~xteYE`sIxY>h5%wT~^*UJr$xQOIUDu*Uk29I=^?Z})T>cgFSo3Sv z_EX7+7+{YNpIaQs+>gX>@3upYd!l0~&2#Ci0hJcxAfx$iW4-p^Djfd+F|}4qO&RIq zO(6gCW`uV`Y9o<3ZIuV!q>nX=M%DGr&^F~UST4_g-fT2lGJ_##vy#KN1NEXv<^U2O z5PP20d9NVpB1wEOfM6Fjf(&yb;jSo1|a%OJ!J+}L&Oe2>i3!~@()D`^qw9ue_>{b?bFEXGmCoyfy+_8Cd}_hkHs)d81ko+S4bTJkQ6d{c_y#C{1AT zF4Lw}_^wJ@(~1bpUd&c`$+8@+Ic`AUBrR5z&N-7->X)F4$i z(ZZdl7rrIAePVyk#b!^TEE^5R^g5}kdxuD>Sx{#NBd7BRhoHs6-9gsfn{WYTc9v^G z%kIyxbEqxjkbc!v3el-g^0p~pBGvmzlnO*n|Kdp)(bv-W6qV9Ud)jx}lE({2u#&!s z>8phVLgRHrQVDJZ7gF$ShG_eJUfJFk;yiAV2s&AuE6)hLwmeotT^frr8P3AU9E-hl ztoO&-MbR_JOOM5>HZe{xFfv0+o3`t|G*r~SSQ5%%;6iIW-DW3IQnS0tHug2?S zSj70n+a{MnY^#FjU#|4##%3_QY|D$(9ajO>1j1yV>Gp}jTfzHn1?9O^_pW#py14PV zOl#@bW(ZidRbd literal 4538 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 literal 3373 zcmds3YgAKL7Cs39!b6i*K`0oat)qen6{{ctf>KdL5S5@r(jZSE2m%ry1R~U-R)s2W zOMyy*3Qe#B2}E8IEh-{Nc$xqKQ7}M=JQ5x;WG>VBGiyy(XZ6RdHS_0u`#kUdzI*oB z`^qs7*EPDI=mG%N96sc78~_9!vY#Qfp!QRgt2+St^M_rWPsSHY2Sph_?OCt+GJ3aK z{Y;AcET_9W>hl((r25=$LFfbC`k-sCOtEhZyY!%~*!xY>Bp75cDs=Fx@E(DM03Q!W zLx9D>kPx7Y00IJ}CxAon^;WRDp?MtxYQf0=#5UCfn&$M)#BYGEVW8QJ!i;OOX2Vg%^!#4>JaI0GL@N#aMC75*Josv(MFw zR;YC~p6FL3B}rsOjurbna1zxfn~epAq(4hS#fDg=1+3l9Eaq@mc%DXxbv?etG9!GT zESb(yndm)C(w_(UsTSh4Fc$qzc5*d6m??c!H~`nkdIr%-_+kJsjHfs;%$F{AX46hb z$YlzR{7h$zdyA#@`>j7}SM~3M#p1BHSwym(hd^tiIlXILk?omvSW*v$M%Wn(Ed1NleYPV_m|YOV(LH-9qPWPO7cz~}IG z)q<>W?s|ChHb+t09jfxQQZ+7yj_vpfj>spuowFI}U)~6SwbnmXAd(sP=sr}+VC$^P zK4%j&v(^9$)U&22$dx0%1^&2U{*@g$laYQij>?v+LP;ijT(H}f{ibh6<}WPHi-sEh znP1ujOEm+lcaPG5hvtea6@g+4w5vGh$Uq$6|Jfm>{ zZgWGp_f%oR+?Pjnf+e%u^EA7vjN-1c?Ccv_)x8Av2X=UC(ZYFY`CxjcyPkE{t;Pqj z7}{L-6OA*Tnuo}=t#Ov{G}(Q!RK_NC$RuvEyg?%746C|on5Bp$B6Yt(=n zzCf)ZJAp;imKte-|k7{u#2WMzFnL4HIK8nLOYq-{gMmIn6yi_J79*2D%3?Yv_*-> ztUy2)^k129#PEnhtCCb1eg~@3HP-MlNPi!Dn7S6Gri;3xVed_>--)Vs5mvy`!nG<{3v?fB| zSU3iQTO$p2@+oc>z_rS-TSjjYO28uI9Jy<}Wa62|&tAP%x#fn88D{n#(y)+u$PR0qYZORAG49prnqANN!qrh_73-yz!GYl!@`(X)rVYB zNMwm$)s%xz@&a-0t{+=Da*5=daXn1Ajc&rXgQLH#N7edhu20RhRWv?lJsc5Kds1RJ zJziAJt1OD&NPQTsF(oCoz;h^rzu2hUFlxm39Eo3i)N8OOA;-~BC=0Qj#WZHg| z*yyE|$=P&JGH&uCi>tpOtZBhZsCSIrW4W2w)ko;vD2eH9IcS;N_qwW=Fvl4v0@RNf z_s>c2@{OrGRO$sC!BELqjIcEAdS_+1lUIcWF+5`Ukka;J3g=XZO;-fH|L z?^RlMvi6aY{u5J|(M*ljqDU{{vfb;6i{~BGTRA4=@7?Zm*#kvfJL`Q0*!8C?rfhdb zpga=aF{zxxo~3J|Xx>kNw1)taEm(+2ztcW-^@PdO#7#cFBk``x&3t2XeCYI3mQ~2W zMemK9O}2dKFXtM+wE<1xez4Fp_bFEE?T(Kitv@lqo;fQa_1hN_fekI1L(n7oSI~O= zcb21adnkFG8JfTqiQjhC8rD=Xxb>jj=Q0(!vq}`SUEer}sBy6ugL@!voi^^@2_^^N zkG6yrkG049rd0ZHvJB@ed3)&+!)t`didVZ{uW+jU+{^?Mgbl;;Wi@PKNK0-n(j*t? zqW4((In!TX>dF~PW-qQZRT4O-4razB1{=GQWTI#uv#7S%$~eg3(xki`VG=}{kBhA{ z@`T;E2S!jd&y}HNk*tXq&9D{>2gEvP9k9%uc_TL+@lU4eCx(+!=z&9g+YHQ;N;aZ` z&VD*b?|9|&gW0_(+yfGzo`CJYAxP^Lko_eSE1fsn1kO(jDkdnzx;wRRq4N^bv3e`2D=uXeLNV%3BUF{j#Nnj{BcR_t=Sk%{9OZJbx{fLXQ-U>rrb@NEg zAgz&Hm_+oMufei!HFjs^b|t>@WFdGJi3lTc&XZZ;F`h!^D#`05U8IfCtpB2MaM;j@ z5aIVLJ0bmpP+a7Fe7{pG0})*19k!;ebj)_>b$`n4YA2J~g{a`Vsq6RJ+f9bgZy(3W zx7je~OAiDSFqr3qZmAg+!n+C-Xd4sHbW~qPcO^%GX=bYiU=-mr5Da3sqq`vhVMsiv z%_)IKF;J29yAKi$A%E+At?j5XBv|MK__*Wkuiil!86aO+u9l$xZ*}?~*Tnx?6)8=4 Xdu%c)dlf=R3~=~M4;S`+a_Zj!VpL_iP%Bn1kVD{>0li%2o9`HD?k_wDIl|^}AM5}uG zO6m2NP%hWlH=}dCcO>O|+wLVf_)S#trNKf;yCGzA_N|c+lo1c@T%#$PGX3kLH#J!s z)<{hmnBn^19yvN}jgI{qZkJqP_4*(y5WVGUm9cP!zjb|N#3l5v$5*_kmrH0Y zjj$zB(rWMejG0;yEew4#b;g0Qt^g^kQ0GHjNvi)uuuTOJ`5E-HYlgwVaX8q)gNP=mbZP@Z7Jt`!^0l(WfU zUsnc=z;*i(?Fi;TtKv3=?b*AJRI2H`ub7Y)p`xCQdDxSFkosT0Y#+dnHL^O zJ+)T}QmYK(K9%XO?wH+r#uCZnUOD}K{MWfXyFH3u7U~_rXg=v3G(JprJDj%fU>3HZ z>Q?j=L0vKT$4&KNKrJpUpcQU^W;}k1V3_AEH7Q7`*y1vW4)7kmKr_K+2T2#IJSi0L z$*Y-&_UOwwJ&mo8IKJX%30!4M-coa^$5IGTCk^xP$-xhUHl-PUc7Z|B!pTtv>@(S7)`eg&61Aw=dV7u%Mwm#sTj zo2i+-gqc zY6~87W3%%@r|75bZHy|wn$`PkVd>p@Zh9?`|Ln~!poe*z{It&ejlN6$YL}N3~JWs7D7AVas#fGO1)l~3J-fx!dwZ&V&H8BO1kM%h=Tv7mS z2JbuBeRU{aIS*7m-~GRX=OL9n`}txu6V=fMz+n`x+t8(xJ^1V|sfvT3pU#U}A@R~Y z$+Js6Gc{X4ksYzYxH#jk=W;w&HHs&8%GBo`V2091d&sr$!(VZmlDxsHR#na~i`0z_ zh71Ie_UX`zd&7i|$NdgYdK)hjx;b$AoG~z#^h2HlWGiWItY9jB&C7eZ(6XQrJZ6Ryfqz!GxZhuS#itE>fVx zl=vV$|IYfKy5o>I2MTSA+F?ox1A68hU^F`B*X z2qkBdVY8+KaHzsfug`wF?>1P#N&k#}1Lw8as$0#A1c8n0R#~jDXS}8_-y~?$EJ?5f z(#sOTeD5{-71_d?N+L-{3I^BwD~<7IG@rJ)J`!1WjN>7r2Vz;4f;$f`BD!hG&e&b`WC^Y*a+rJVi+EohA%0@|JZC3M`>MeC@ z)ZC*>4Xxl?)y5@X_H#hHfvCH%fpIRgs<8 zHo6(o9>Fb#!`?;;wt6GgPHh@_V`>{LQW(JvNRR2u2Pefn6v485%`4AZ7DSi`Sj;A|#cXG_QE?A#j$5 z0cK>ec=00Ntw(o$uogydD=#m(*w6kFgzZJU{PbYbOh|94P7_uCb>h^_4gUV~=cGut zaFJFvyahc<%)qeudu+d*m#Aj8>tdRzP+HE-$|2C{=U%F&feyWEs*0a5AM`vxEy0e) z9Bzz1%oSuqBx7KPMYR{lTqsRS9@o|DrH)t>vNjh9_bn%*l(7eyREIReu|UY_^jfk} zq5_?8iw_IeH}NyX?ETr^mCp z%j4Zc4YPW~iUQF2SdaOdYnkWOcS}QXkm@IFJxC~!p-~>%)4a0%BPfu})Ky`c~x$X`}$-bu|6b-rgO9xqow+;*{_B;8Myxvr1sR#2WWw} z)$v_G7$^l+b_5&6vOC34-oOitVfRqu^$;H2tb;m&1A+*nW9Ijf&D|zB9DU7VTQW1) zvMoPAMeEcjARUAeKo@)7o28fy*JldgAO_K636Je}XSrSm3H1O%Jf5sLQs$}Qbo^mx zYeu|Yx`8iKq_${4o+vQ!DlPvq-vyeO)|&vi@TxU&%IcNF5JG_%eEx+PT6VWGb0CHA z&2}7ZM%!;U?wm$9<+TVhoxs0p%#HNmok#SjokO4fT0ic5d>>C@+afA0I^khy|XbT$D)u5-DbJ+#}bSVe-et$SRo8LQ@)W6|twWg*55q{tY z+{=N4elRgYxqtzFFR5UOZc$9k)G^D%mV=AWCM#&kjl4U(I@Dl zI#B)y*{@P!d<4Lf`2Vqi|5um%>N>W#EY)2slOuT>)wSTOxomYuB)uTF6`geX3Wno{ zZD`gcb~e|p%ix5_^>jnKu_26KRhd0SB2NgU=V6FIb6hVo8?<4ED=ySE{**PW3S);~ zo;?#6c5W^j2sGc@Y`;ounRU}$;@ci|4Gc^XV9=tA<4uvcM>fB_t^{Lr3^WwD#BB=e zvmm;x%nC+Xm`&YGPU_~jX63P0h(xnQTpo3cqEBsGMMc#=2B*HbSNebxqa?s z$t;3?*aho?#fj_-@#E=0EqYIwz+K5(*>VPN+q=$0-}{{ za1XOn8=+Sh^_Ep%BT}*L*5`%_7RHCmomeA!Q9U7RruwTVSqBpEgvnEeV^}#EPMadDD0>^Q0*OIDSVS><*MpLSF~4z%#~C+se9ccg~~Va3El)6Ip{pxQ`a zD=}iT>*zl5Iz@(}M7%?QR5>9eG^svt8hwg z-=e)%pqhhmISUp&Y0OJNhh4}^!zE%Jg5Pdcs*iCv{y|F2MYoML+6h4%uHv zW&L8Y7;{$dr4)s9`8^>3la0r3;w?Wt-PlM^K*yeSDc7!9rx7!2V4o};z0gl2QWEhb{EFvMay;Kl zV8DPx$L~@gn=;^=0DX3G8Tc|yuzJh*NN-mJN5y!xg&dLjZZ_lf3K6guwAxHqk$wu? z$my}r%fJR6cA|$*;R4o}MLs(*lp*qw3_cR6u6C1HZ0R@7!6Z#Re8uyRrJk2Y9ScyY zL+1M4R)~ypLbhl#Qqv+`C^oO%9Y@$tv;iUS0TKbCQ^m^w!6YBvHV@D69=aOL#~%RS zF8yoa_{S*5+;kVW)e5O4SbnI#q>EiEBrTQAy#5S>+xXhwc>X0!SN{hBJJjE#%b(1s zKbr7&v#ohwKhi#A?Yz&E8mzUemW)Gnvif`G<8#Y%uBN3aw*`nJQ zJ}VUQf4WfoEoR|-qQE#*#(4^B-WA(#u8m~g5+{+UlDy=PULsU^BlPr+IiB3wQ+3XG zUU{&~`HQkO3$=B^&7nfcP&UfghR$kae55Q3Pz@j`IyDs^t1rX%%hryh*f1j99r3;8 z)Za#$`<=>ds${QmW?_*(u4QM*bh^7b{HkQvCMWKTJVxwb#rhUUG1J4Sfk|-VArQR~ z(O^CK>BagQjaG_;CZtiZ&PZBUmq!({qKgxEUnq;d?+oj6A`rtVKY#3nfj$h?=zwv* zlS_mJLe>rn?3!c?TOy@I((aI(B!2wtP77q0;Gk;iW{B z%5h#`C$+w}moT0@e;+|(e zKmSM)Y=6$-vd7+$r(lZeL|p>HXkvQ#O5Y5(1mPe&xdH6eEy&>a&aqks)GE9S&6UqE z71G;Ns&nmi)85+|Tk7GkWBAI-#sSuG{ZAE(d@kEHXLOlsGHdhhcjH9M2eGg)dlGSR zTh@Con0SKmj^-Z+TBplbFG~wu_Hb&uqY1iXn3r)q)!^3FH4T?L32Tn(eJ8X!?X&VgpyCz%p!&gF}UE30+OC~{E zknmiSamUoVlO}xkqf__MPR}vf6Jm43Sz+m=s6>=tZZsse|KQU2-nX_(ff1u!Wxx>8 zmDPS6`y4NboLpo-7y7)+_g+MK0=4LTLBZ-!e|N8R6_~#KLztnI7#p{YXb9fO z)M4~IhZP>m(@$%i$)BB*;W4fHd&hjJ{H*9FrL0iQ3$fn|DKQTKf_)K?&R#gfq*MXt zdua*yE5TA_kn0AKfA&}*8|8k<_1`a6(e$)t-W05=vxv_ASG#P^eXt<}6Uf&c+qAeY z3dMFevBpQ^LZB;KrEY4VT>YX;+eMhvLhVL?Ak&(iOb=|PJ7l75bOFcR1HtIvSky-@ zuv~1f4_Ue0`FerXaxXWr_ltr$AV_iV+GSSKi>fjN_MxN3fH2j17}zJb?f_xlh|Hr- zCT)56*`A=Bt*Pru@M$=uiN#Y{Ph$q?MLV>C%w4h313G8_gZ!KM`Jm4b&1yhr2cr%8 z_$mZ%s>tbfp=-FSKpW__w3{a)Nqp@I>J4MJ@0_JsD}nf)+&fQ>0FL?j?eCeH5c4^- z!73$0z}M;7&x#if+SMS-!(_IOamrG)-&rqi@6R9M4f(q*3dR7uSg z6^PFUzjBK!ibzm`XG#Rv;p(gkrVk`4FChVoeYGY%dAQzp)A9-?hkL4UhhLYlc=PG| zyGHq^5IFgG0GJ*g2w>~p51y?7Fa66s172Ax z#^fh|4UdgG=!Mxd;9E(r5wgWkZ1$};3f)spW|{wziH)5Rn9`KRZja9Vo)T2=ljzaR z>Exr0eM|W%Sg&A1z@ZFi?i@9q(FSFw2X(pQm5zN!P^wjmcSh3_kk0jNfrZ>|i(g@6k za^da@vg)7*YdyJaRuEq$xo}Q`S!rc&lM+g>K^;hzRszudEs58L1WSCw2*Q!b7{R%V zS(KRSmyL>TyJOnz2?ZY+%`8OutsPG))MNqbaWY@MBvksm=wfzrWuARD8lU}{L8aEV@&Dl(7W7@Pr>S*)B?kakc_@vmb&2CkYDY~F{Ov_wAGYHS!RxXEEdGFcRc>NH}yp# zIqf`(UfXZ&Z~?!m#;gVJ>u97r9hxS>GiOQo$lPi*!0>8CLe&<^uT|T5?}CplCj@(f z<1NjaS*|5YKBY+dPz=)$ub3^N7I)MyQ{~*ko(ik7B68(D#IMLC1{RGRKpySSK6jQJ zN!0-saJ~|oB*Le$;+lP9B`v*o2hUR;D`Si{t>AKwU5?Cs1Trl)F4)W;0DxSlY#_m=XKUNQH8>DC^2gJl!DG;XMN5MqfL+dWkkjC=l*4d?PKEBM5e_ zFS#77S?wtLvJP4e@_1R~zE`h*D`?PRzCjxh=o;YBgEcDA(`@^YUoM17LUlb2j+_Ld zV!l(&NhC@jp_n3QKDK&#Ew`o=ZI&)hQLPSWQxH!nw>vavRZ&;uXbaUb4aYeMC6%aZ zs>iG9ffv8OZ3k2(d*#rGBA`;Qjd0L+EKQ|Gz1$SZ#i*{zRyD@WD%?LNZ&n7D7)P}` z=o~W!dasZ2CTQ7QIG4B_>sd)=YPaKf;Spc`y$@DE&YCbnvG=VN32cY7s9su@iy4(^ zkw!a%)7{1A?2jK_zgAVlIb8)SSeaXg1Qsiy((~CPOVNgWYIfP??Xm?qn+l~L=h;?x z`UQ2DsQMF>?TFPBG1LpiWXCOhSCXGOchZA1tby#5&~7gt}SW= zRtO}bA}uOd1Y0o)j~02D1Puu$KnRY!6N5w&NPukIpIc{k+}WM!pEGyvz2}?n%$)Px zdp`$>?6ZB*06;1Fb>9X9J+93T_ye#(8MZG3lS7k_jkHzo*=!U!Go#aa zlQLd}c=f($L*;O9sSHhNrSj8l9dEil2>@JN1dvc z*`XK707p+c0I%y=i1XdLKb{tP$2gLLo;iF^G#xanmAu5Y)VoD=qZbZWU!n(YE1nqZ zPth3eOg-85G1GGYWrtGMc}N!^rHQj4!Q@%zUcy!(lrL^CeE80rqd zM=4s{NC2v~Qw)Hm>pMV@50+*&s5}ea7P3&5{0&Rr%Yo@B;t$_(`&||O)86`1H8Yc( zLAyRGC)v2|=0?3zu`W<;rrn8oi9LN6_yLg3fa3l?fd=xn;>I#uB}>s1YzQd#>$i`x z3di*w~KnwZ$z7E>S${SWVfIu0Cfet1KOp03GoX1 zi6kyqRNp))mg7~yBH4V6qWq|Vn)uo4tE9du@7Q3#hzel%lg10S2&?Fu$-#kBGF5pV zoirg^ZtO7>w-V}y>9VDyJN51m3uj94m7}9=A^p4T)f?y3EZwFgfinuRhdx|_v6kYH zows7Ax?!GZ*J#yCh12kWTeb3A;&1G7`Toxs@G1*xmEo8JbjDS+$qYEr%VHX}FEpmD!g?70$GN0)j z669p)S|02NSBm6m^xh*8<+QXQLRPu@0u!pnh)&$z{IY!Pm1*d@{3s zz3rsbpC1}Y*fO{K=6L$V@C-#FZgf{fkh?uU7hC%rb!;U{ZF;<-l7Pw*rAW#SnR9Sz ze;U2~%&hsG>z&uSA0Cf36P?qQKBM%J$_U+SG|QO7tGkbTVg^fCwsTMHV&N1W6UfeS zj7wlR+1sP0d^SrbDQvEZ8?gWRV)XKOjDUSzlsD&tpC~pQY)4$-cI9e@dBq%}BRI2^ z{6fhUeJar^*RhP#71DHh?8k_$tOv2rn+CqD7@NShAnX!(>cxl3X+Ld*QsebNzBYeQ zBdegtS=PLk6t)sjBYU(bG2`o)>}xL6fnR*tDw~SM21F?X9>CyKkB09c8H{b>z3C?& zYjvn{)@#2Yg}`98v~H*dzb;kO!6s)5LG%JUDo@ z`3}J`mS|VkXiHO5@|q~=+MB$mxP2{u;$#k5iHk$c#{-YTeJ+lh4--&%gR z6Y&S<|J%rJa0~j5A2al?AT+nJf7cVHzAS?MH_m_mto&aXb9;BWv%d}n$&3155C{tm L-*@+uBSrrNBig*y literal 3400 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CONTRACTSROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CONTRACTSROOT.png index 825ee2a8ff87d55e9fc97d518911cc867cdd8995..5c3f32186f3a340b95b6ecacf4912913e161b31f 100644 GIT binary patch literal 3154 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 E6G>@?U;qFB diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/DIV.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/DIV.png index 423a4a91fc25a3a6751519a833059d4e6c169a94..8b2230af3c96ffc66443a7e045d79b0fa85cef6c 100644 GIT binary patch literal 4000 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/FEEPERL1GAS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/FEEPERL1GAS.png index e260a83ce7aea832f3d0c3cd1823dd4ec65ac9ca..802643e38de3868478976cbbc4e22256df1864c6 100644 GIT binary patch literal 2354 zcmdUwc{CgN7RP@{Dk*B2skKGgnHH_BqjnXvQG*I89TdT%W6G$EXl<256|ZlUzM596 zgks24ty66*NpuXx61BwCzGbLdB8WBH%lqGX@0@quA2aul&$;KG-|wD#@9%r=@17^d zSwZfI8~{MU9UC@r+@%bwgBX!TLRAf8{ha{42e(K@e zXO3#nXl2~esfM?vm|xd=KWROa#eo5ES!|tz0AR-mst*A6PYel#4qHhNi5LG(tAnt8 zSLdm{SrUe_{WR1D8yZFF30Jw)tox1=^&&PfA#sJwKvu0vPJ6ZrpR>*!+K}DI!`KlK z$`&TJuFB@^OdYq7R~>%rNFZaCHmS;*-w4xy=VW{x=t0TKokk{KBvu7$b@&)mEWw`C z)Q=2op4V_mEHv|fc~;b0%&;wru!}N$OE9eeySp0f?p5^2?5Dz|?B3y$z&$P*>R_T< zVVvXUlGvl1U$OLbaBW2I_vT?~A?`DL65(E5oBUH`LB~PUE}ysdHu?722u}bK+1u7d z0K_^28F0*XAG{EN#r{v0L&P;1yRAC&N=bYasZmLKh3~Y_>HRYNx0onY1I`gnTRAt3 zelW#+onI2LLeSJZ+l#H*YRJsdERXv?N~6^(D}1%pxb;jvT^@kzfzCA2yU7$-tVpS) zA^o{Pk_zFaCPugT-9hX>js1FARP;DMJBG{l=k*-}!S>qHsTLpD2LUpLTaCrS>uZhc zofc_EZ*Bx_aC2BF+%C>q7oVJ=QrMPjmiyDXA}APuur$*{aK4em%R9TXPre`XVF+gB z)jOulbo;97Kc|a>t4$)!on&bch*_x?XB2*l$)ksRO1J_h)})&l0jn$EU#wk#PjqA+Z5hB zDUsd8jP^shL`Gej*2%J=ZfBO%w1^hSw^qjoUY>@sXPn;<4{cF} zeu1}wsE|82%lut4@us-dU|9oi=*F9{-Ht)ZhvDs~ek1uC4E=H9=6myBSPNv`mw{X_ z62)uR=6TnW%hD8mrkJ|@KEelhKO-NJSz7i8{_6EUb3~n73PX1omfuJV8(A(leT{iEG z88l{*7+YM%=_0Qw+xQO27@zAZH=ccRhx(ep%N|{Kn{b~}!0Tna&xvlf?X#6WBZDer z2TfakBtvva$ z>c<;ch@>a>K)DPi2OQYiHbpmhjz5QJ^dLdwpkTc~n)ZL$fN}9^=US8!?PL@Gy_mvS zLcgKNrmM`8cqN-6p!KardP3Q4LmAedQHpIpgkI$$vMWXMP-So!Z^vIPLhcul+?S$o zMAk_%uK%iiu*ai-Z_l0c#_dEsy5H_DQ;I65Jp0DnZwCE%+N9j`@U!kY%k~3AGy(F{ zyC1}QhnN=;`~iwn0_mbw$9Dr&4{TE^Cqs*mK$nk`aow|b*aj%nq}uFzW3rLqb-H9L zxhFfR&f?eu_Ul)4nrQUlp710xb-r2OJaeR`HI13FF3VR~Rn+SJROqBy$N58V^~ax0 zlOI>KYzmC*s6i@c)&qO7>zq zQw3?27f=F`_-av{wD1)_GlObUbVW_tKik}CciJA^&+bS{m`FhNiaB&*&+9k|?ID9U zClvk|efw6hfp#Cmh=TUmgQ9ah7`r67Yt4%@2ptcTw zv^nNFN;D>;PqjWRzr7ZfRGpo`9ZRWRKdj1Cs@YscZ>9q6KDUb7zWqy+pKTn?@>cX^ z)^eeD-4$2za?Q}xuGprV!zH)P9bNMul*1COlZ-L;JPfhrrdCX_vEl$8)>~;Jp%lag zT;@)rp$n=;lp*hg!KPif!m4;}tKY$Q4m*P9{eEC@p4T{4=JDz)#%sm8YlsxJiJ-{Y z7|pFSB(Q*8oeGkw4xnZKBPM3B`IO>z=|=+YZYHaH0nivKs{_dT5S70ss1nd)T^aC? SFVwFAskt~|&{gMy@B9m@(VTz) literal 3400 zcmdT{dpMNa8efcRNG>l8To9N=Ms5FRX z)Mgl$k4Y!C(u`Dw8I1cR#;7qfnMwAibN<}tIp^8WdCv3ff8O7E-fz9@Tkr4tz3W}y zr33riR;jL41puttv)k1R03|Fu?nElXb_2@I9rmO4xH@~s-4YB=XWpXgDtE_bOOwYX z3tJDKMC(|#uSu(C-|)ZO^O9^D+|{A%#k7OqP@pJ3EnQv}1b6^N7}8CE0t{{1B-nzH zl~~x4=9G+Kz{V+R!eES1K*FF|43uC%?*A)<38jPPF?rcNEIH3E%y~JBk!BW=$A_#- z)b@*y^6J*YF5o&xr0$eA%w>N~&^6afRzPVBX1!S#Tvw|G)9^{cJRRnsS8NZi{{oYw z`8KS3tEk3lsO)n$9IffYTwu%jqNUk@a+Ca6#5t$AT`sWSxUrvg{vgwC5Yk$HiC-aF zu*~q}#{Wok^AzHmRGyXcp)dJpfaIq&d5e1OHu5h!iC-!Ihg3eR17vddq?63l17#ng z zhvZ_KgkYg0+S-i>Ql*}=uA)h9d&yo&3UcaDCu7yr-8b<+PmAz$1z_D5!QXrL(!L3m z8qRy3K*h=^4U?aN3mPVTj|zQ!TJc>R))iOJIQPYaM^l`=r>F#sACWJ&k}o*huROkq z#eragFjjd!Lfl-#c5xdp{=7v(nQswpwoz-}N(PkZW`?y80?t zyveOY}?7vf-UXu(Oog{p*W-Z}M2}YtFOD2CfN@TWh!*KBbB z(ty+Gc45YIzQ4#jTg}iOza>1fg1&3-9(kBQ#|c;!WtUNtW7O1_vn}~^^))1H@&nWx zUNRxij=zqb?s=}RV82jOBayROVciw)S%I{IvU@`5kHtFy2vYwS3-t_eP)?ogYs{ID zpGCvE4bn$r!Iud;LwGBB|J({|vz7K?G@I8rN|apHqrEl?WRb%&13Ie@8wTSdiV_Ja z4aW+|B0_^xj-__cc0b8moT$44F@IO_xFU`~x0Nk@+saEUZRgC}OgGq6JJ4RF^)g$| zm%U9wFdCr~E>W$OSt{?`fL1`bW;cF_EUJvpA1|1A>mD|TB|uzT&_SE|N&Ep28&-t= zoknQ2N$KJ5;iVZ%Flo-#Kg25X>zWIUT)n=yH7 zNxl$DQlBe-CEG>BFiu3LjA)f&FsIT_Z_MSSyzeLCrw-ef&Xfa4tf2$1N2~xVBZVV( zY0`{b$BVU-Qxml5{?YYRp6H}F-P*slgiL%d3L`9VtQaS!#uQ`+6}DYBAF^rHyY6LSTLt|6TAIwy2&Wc=6?dOP_W8)u{cbG@A zXNA#ElE7T@+4)OwqAg0s+I{xm$ZF$k{jRKEz6o=D$`ML?Uo%p)aDu9FVWtINULFeh zQ&3pfv*N4E)C?$EU-CuuHYPOgMBA%tP4aT1z+H!IQbk%>!eluuKYp%*CDCC579RkGxC*IHE6w@Ws#Gx61Ixw)9KD`q ziMg=2+W71I=#+oonG929AJ=Z1EL*g;78rpbLwIfYz@GCaH8&?^#FMjYlgr492vAc1 z$$VBIm&@x zV{baBF{1$em;MJ@rQbx9BZiI8SdvFcTBQl<(GQ1N{+0fqJ0P!YU{at$h!dd99AKS3p)tsNdB((xU>!age^d0_hCC zauYMd2k&yzvrX5>lz~(-wm{omq^Ub6Y{`nk@!UGk#)Qf?AfTG*h8A*OV0ig$3c3X}(oUl2HN#ynS4#$LZsyK{- zgNj=vP3xN5uMPoRklXOFWa^HY08iUR75*c~+U@BBF+O%WbtHX@^+WucL_Vg(1|a z3+CL91@Cj9_?eeAAwO?4PI>&s7Yuo>JaatqRGv9n=PH?mY*x-Y_N|KKhBkYH3hPGC zCoPRWsrjNtZY8Ps*p_rtg98$oyO6z!x~P9bY+qlzbd$5{k;k`(aDLJIx%z8vt7=|; z=yOKDK=RPs2(9cUrf#1KuT_Yye!u1p#8G7s$T>lf`7}O{jdzGJAKz=PFRbuZvW3O) z(f|^Ncw7m)3_3Ejk|KS$86UqPInk)#JIh0LJIe6!McWv!E5L}>kJ7d}b*J21mCsXD zJmpATo3FI;X@IwpMOD9Lseu~E)Fd6a&$m{aJ!GkWdh#x`p>}!*rR&fXnA>*Ev(Dx~ znBYk%u6m|8MWFbIx!EeME_1lx9t9>%9}H~qRkCEh*P>5zJ#j&ZKFC(WPz9L zns0q0sAfAY{wC*hyNKyRiAbw_wk<(@j%hLW+cXhp zS^vfqF%HXw(vgq=KGvV3s|8IfK%7kvLo$GZgeU;Hh` zI;ZX0o_?NPGfxe?8)-ub(s#=m^Ycr6dnCW1NoXgp6m8JSbYrUxN29T(UJ2d)Yb`7S z2YGAtXEs-z;WVjiEX6gI()`CPdMHMZ8hX%|jm zmVHlgF0=B<>V1f@1e^OE6zzcNnRW3A&@29)7va!Mxo_%#kAq@{ z@Of~2R7HSXS~~w@M0KNs$YIS*g$;05uBxLRV>i1b2?#8-*!)A?()swbE zqkYNW)jF;FD2)kinz{Ob$y_%aZN|rlO|8lEr7oeqhK4T&_oil6aVjJz&^5{Xz^Xm3 z`8p{E%#xoY0I3**P$J>pIJ)ZsfJb5hJ?9SWH5^bxz-QGT-^npb;t8LOE)RKFD13Eb vV7!?9?@;h;;IEq3b|3FtLOO(^?V9U2H3M}pDXqIpw!<18eeGe diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/FEEPERL2GAS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/FEEPERL2GAS.png index 6dff4ec7c46ed24e487bb96be2914a919b789c5f..59730758771dffd11ed9475058bd3652fe42e9f0 100644 GIT binary patch literal 2337 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 kZ&#K7c?JBx)`##V6Jm2@c&-?6GoE&Xsk;+H_ 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 UzxF444=$U=&f3wc$kHe7Z+!udG5`Po literal 4364 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 HJv{w4V-`1= literal 3193 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 literal 4140 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 aVPc5W5q4$Lg(@Y}`@cVIPyN>W{NDkWN&+DO diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/L1GAS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/L1GAS.png index e3236ec81c5d1690a825d539e08e0b4b79aef26c..dfc9dbd9e2eefb39d8917e7594ab08d245cfa9a5 100644 GIT binary patch literal 2370 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/L1L2MSGLOAD.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/L1L2MSGLOAD.png index cd1607fbc8225b88d5711cfe24db1b436c82c804..7f5ac537f0a77e0cdc4de9e3c1dc86fc3d081ea0 100644 GIT binary patch literal 5575 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 ZHPOt{{iQ22O9tY diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/L2GAS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/L2GAS.png index c102ee0b00c02bf79814d91f97ad94ea0bfff3a4..cb460efa407b270fb4b10f5ff5ab589e0436fe96 100644 GIT binary patch literal 2337 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/LT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/LT.png index 296fee5bffd382dc6e7f163425965304cecc682d..db48190b8805434c1060121b49ff46905bdd03fe 100644 GIT binary patch literal 3992 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 literal 5253 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/LTE.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/LTE.png index e5d827599fc381b026560b0527f07d6e4b02be26..255981e03437aaed55907873b8c262a0430e14dd 100644 GIT binary patch literal 4004 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 literal 5265 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 literal 4359 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/NOTESROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/NOTESROOT.png index b6617e00135a3924d9cd0841707c8bc9e559a25d..c0fe1337d631f7e92b004ff05e19ab936275fc1d 100644 GIT binary patch literal 3167 zcmdT`X;f2L5`GB@L|TchfQqs;9N8hV83ZJ)vWP-Zc3GkwMKp@a7HpOz3fc%LLPP=> zu%iefLBW7wGom1im}wBAfC-2gB?Q>dg z=|0}>t5mgA0RULF+hf;$0DyDAbq4|pju{`62LNE@=H0t~^h+rE^7d^W!&qJUZ|Dla z(zP2IdmA>9(C)8{>m~lg&XV%|dd1{0fkYS71Ns+ZW+95j&|3$_g>tQ5qPT%9K~$F?n7n_uOd0Ak+|SIi8gbN)dOr-scRaSojn>oAE4 zSNf|YAC#6)q-K%*6&TjqIrm1g$a3Ei(`>|@e{p8p)d%tP7hL1~^@6I6-WqnukSxMR zAu_~)G>nI-PCk4MV9G@G3oC4jyuYqa{m^&W^p{L|6?cFBJM$m#;WKDbdyJfO9e^KH z!mE_oyI|{?G1ETX9Xsg*7o3Y+P^(MCZlmp?i5ULCo1Vql(b1a@ZFHZLWrsC|$Q@4x z&c2iB<5TD#J!T@H>iqWhotJM*IGZzYF)sD{TnR(n@zrrqA(|=6;}>jXNs8H zVW5g$e=KZDIIe`o^pXH(UtIUmUqI9=G8srUaZ;H4XI~W9zi{(U6vZV_7g+VNenNVs zd9uoR4M;so{r)e5^Cv9`c4UDyl5UU7;Ie2Zd|yY4=4ee=`|pYybIsQR{Lk5K$x{}6 zZ^_eO=UD4jBJ<|O&0OB|;aZC*@|E{!TcH{YQOq;j3X(j5SKJborSU?bpRohIbvu-i&4Tt4YP8na$^bmGLo?EN#m zI5)TwN6%rlRF=o8yzuGDN=gPf6$>%b+ z7_5U<6wq!1y?vG!pFG5dl5aWM77*$%06AL`fIAKL&cQ{P*oznyKz;g?8-bIcB9vXgH@%H61}I!3M2vDozHb->|G{P5xjMBreS!cngSp`D94 z1`zUA6ci4W_!H98r#1tp(FS1a8o=LQ0m$+dVqX?6Z=pRmZleR7-7w=ihCm50{A3Ss zxcMzgU~2qjVGXayX#Y7=HxW$&B@i1Z%N3Z=f>1|_83%ZAFLi+e#v-)DwGz3s72F%l z^8dzVLt<_R$N_O-l0|ocgx1~GdCDPR8a-&Yw5lq(N0tW^y_Z+!M8Jc<4hU3^*GFwB zE_j?TSVQLZ+yjodl??H2$(;?kI@e7+RoYbRV5Fovl&>#qOqx!g3I?Knz_E@8kQoS{ ziAW1B-*=CtvaooG*GRa^-ljFz9(ts%x~BFGThtn;dBsSe-&`vidZw#gV$pHezXrOg zOPxMw@+!Tr?@0CD?^m3@IX+;8BbJW={GA~A5$Oqa4u=hVa=alUxXIzcb&g`g}L zQVUjCsp^~O@2{QdqwU3#@m@cp9BrPrrY-XF+)S;){9d<;CwzE|1MaDSrH1*;F9 zTLL?2?b)84C&8biz>JB3W!t_ZMs0nYpeU&(d&4xOhcj$ z6)Ru#tIX=T$1$L_#1I6YHth93hOH_jL1=6G~J zv%57mLa5U<*(r(DJykhMC@{qI&;zE=vMM6r1radMnf`#op}sfhpBrze6&>pJ2dmmc zp0{fca5N#@_jWMFXbW_#|LbEllaq~3{y`Bg)|MmL1`y^ocAmfYb~LM+$9I$Y2_C~W$x&|; zdT{f6d|T%)rZa(&%#BfSvK*p@my<%>UvboG12Q2{$}DewDF0uPZoux6_bLn1rJ*@ zu@jir2iQ7A4_DJRb`junj60V$>oS#Bn%0|-gv?23s@Ov>kUN5HOm6*}dhWXh@|}49 zxRaE?@<@}Hkyz0s=SvZAoi+q@&?Je*w)ebF$As%QmL-nL+!HN3yp)1c;=fFmFM6|P zwpLBU!bRDtrypeR?I_R~J`JTh9w^eFB}K}T&U;BK<^3vFe#EBKUiyr4t26Jjd^hH( z-@3l0_lx$)MJ$1=e@E>mJxp$n2Hv$Wr~H7O8RtQKWk;-v6P}K2a(Lk#D#w|FawRe_xA2g2cbC V`(zVCa#sXmx2yLq=8l8s{s622jC=q9 literal 4361 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/NULLIFIERSROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/NULLIFIERSROOT.png index 6838aab58716e5a38955aa1e591fd1b30b17981d..8b8a1ca1860b4cad7ff51dd5b8f738140c7e2731 100644 GIT binary patch literal 3145 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 Svyg9PC_5fKWnXjzbM4;|nt56P diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/OR.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/OR.png index e5e7f27c121013428338a0e2fdc06da9296f9c42..cee90ceb4c0d76e571c47294aa90d6f895ee8300 100644 GIT binary patch literal 3992 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 literal 5246 zcmeHLc~p~067K*bf(MEsc!4`yA|iMocY-T|0RsvdQ4onnh9e>Z3PK3^bR3lj!VDq` z0mQ4amusI*z1lmJ>Lki64X<& z9@?yy0h2zuyuHfs_xr>&W+}=whK%e{15|xtpv6SFHF{w-Yy}3khRVB>IEv%!cAdd* z0Q(=c2wJ^ zI-+p$Bc7A)VTYiE5ouuklD05&6k!1BnI1`axubyU=^5Kj(pmu~xg+~p)MvaUJ~w2t zOPnLW0@UBjGPZf63=F=VKmtpCnVERY7qD|q0bV|T9}R#&iK;&*C`*CRyp!Xkg}FO{ zmfneJjl~;&cd9c+$I`Yg|5^I|JwJS_4W-6~y9yDY8x6ySJMc&Kq#OnJ{_f;fQw_z^ ztcm`F9N0oK9x7eA%x%J2IcQ-w^YeaYX$fzCtj9clUV74DTiJU7d%Ee>I*{w@HuugV ziZw0UpEP3dkf8ukona$qC32_T6nNtMa+sdngy%R`37)|PzW}+xNfDREt74^YUx*-ye78e3)n?PD*;fsZe(Hb z(4&x6p@$Oy~4JN0g01&V+dZsHQFD)o$6feU%_CX5QNeU*|eT-!FjXUYP*rc zb-NLAyJ5$LZNa)1Hg~tPrd$yAiZTZKM4pmz!SH$jEVp+KvT$*t3s^$e6NY^v7RNh-aott|B{-unn`u>IMsRuAlJ{=M9u!4I+0qbZP3b4HXsH|hi zw@9CsjSoKj-T3ldyyNW0Qb9ouX_VkT*G6`lD>#Bewl#kxF_{8FWO!Kq*Y4(U@@VrW z(XN!EHXKN8O7_x8o#YfNEMsa}>YaE?@214r{R}Wp!+R_@=xFw; z;ViSoOG73#QhynCKP{!WJY&bMe}BYJPifi?xj5R2=aCqvw~v5lbzLi+KT|R_J#X?= z4udU9Ea0^(HJ{R6AY4AoqU`^CuEj$#)C7;KIgHe84`MP_FCT2XAjFs=vBLc;BbMo( z^*JpSu!B&QI{ICEtLxd(W2ukYM{@*$z7*a2Hvj`>n6zzb8Xtzu z;YKjrY>H_>q3pE0VBXYZFMd_cUI~*j#hj44Uw*0dV{hV;2a-XRj z+;2fN&8S=!qA9na0;11!WglC25d-b!7@M7Ne4OH}$>UP$JQLHJ+#oGS zTQ=(LzJ<*RaBdT2Jum&W`hN1GAND_+Jq|s+DhmnibV$fW;nL<%Lx+dMCHPBa+F|5m=((=ppmVo6Qym(TLd>_b-#Lkm@?t0u@f{(3r#2IeS8#NkyWKAEM5_x5k>!akFM!XwB{5oADhrwc>;8%+H-j0GvO zTCT)-yUq3sCKmvl&=9-w=fecrF9Nj1kB@DcJ*WdF(ers2ST0c|y)Kec7(sznYCyR| z)tKiO9Ge>E@Liqa-fD4ot-x7|Q6e(;QTG&U#?+mlCg<_h4aGvDFPGOGIwmeQRkce( zd2*wBXL>!^HD62&*(^09Y{G`(o4bhuwhZ3*1_Y= zA9A}^t!*yMnqt0cxOAzYcrYTG*fo}Z)tnjQ-Z4Ol!F!vOf2s}Ha_IALeZnYsOpi5Q z1?r_?4`G?~Xh9D(pz+%b`C|F7#Wn4==2cfQ77QfzK*Rz6pa zbQ9%pgBTeJ*cQ`P?{E>y^rNI%m zHD3CRHFd^wWOpPV^SbH8m&#V?OGa~?W1EQnI4H%ACQkErs=7b^kiw!(rR6sk`JB_= zdv(-=NS3~qx3Zb5XQ+GA8o39sO5Y1ZU`QvcY)y6m9e22p^K(s3yfFlkq6N{G(W@ z+x-KNLk}o*GpWo)fLVNr}I=F z6kK?*vpkVRkbCDavZ1>sG$p;QSU?u{o2~(qlJK)TLZQiI58&)Zpp}S5XJ;K}#V&-T zI4@y!+X%sK9WP7stZmr@VYH~4EI2hZe$BjJi(P1*?I|D`eF`S1(FcrJ4c7Fvn1;!^ zy5Dw|!)bXWys1wqsyz=p1DarrvkT-+9h?yXPr@H;5yyBGhDVUh_g>4Y9@r2N^Da5}TDgYBpb_0*l4>G-VH@q(5pZ+ zntD=cT{Vy-w~oi-SN3v4dWzy($|-XpG(W#^-(cZs0#p5rLhUQ|Nqpf2io=x0&Arl5 z!{dwMq9-_~W`DhJd#iIE${cgUa{lile|$T|9RN!zU=?-F;AC2)Rb?1J zjs@&z`_Vg`QR&Qk)&5t>jsCQ@<261<{5l*ylb8jHr!t4m&5w@apYFHN z`sh3_%QiY#tJ_8MjWqD!vSoYJU@vdPPJ~lju{(q_Jz8*>yc7>zXgI6%B-0MXvoH!K zTZR!+gFX!p1+V}k)9stw0<)@8HAZj|=OC!J&LU2`^7!!0aL~0@G+k>kUmcjuo6z&W zUL=QeO-%D1bZB*g?Q=a9R4_U@A$M-8-48t m(BR*@YXARL>A&Y~Oe`JT7pNXYeY<#3LLafW%Kj(r#=ig*8$ad% diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ORIGIN.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ORIGIN.png index 2bb544c40ad17c1fbec19c2aae9bcc2b1071cdcb..c054ec7132b9b60c032c82e18719c348080cf206 100644 GIT binary patch literal 2336 zcmd5;X;c$d7Jgw1&vC<+Hsbm_~ zmMsMd$SO-hz$3~|2>Tj}Kw`i!5E4j8GV$O1U`|iZnR90TeCM5e-uvFY_q^}BFU!~a zB1~0J6#xM9xPokR?Crwo|#G06g9vnQ#Dr7V~FU2zYq({}+UUcZSnsPP@QNNbO4W ziOAi58P4sqD7358u*zTSOSsVe2EE;>bhU!r&xnL3U|*<714|$5zqAgS@L#Q>+Q>C*h4e{9{FDZ5}7Ni5rh%Q9P*+fz&BN%nC}YW(jY_$ zlo=c{bs+5qdv3KhOp|W;!@F@aI#7BXI>3a%z)T z*g*5#RHrDSu`Y-jl%q1gWb_KnH!c_mNP^-ou<>gNAvUJZtXxhWq$Uo|Y@S|9<7YOm z)ahwNOpWEEFkLf-)79N;FkZH;0oDWndRA~$k7bt zK8dx3XyT_h?|A!@Qmcby!^A(?<{R&=g`~9opm-KrY_YvGd)dm~W8vPTEpz))6;Fa_ zyktFq>P^~C9us1gV*SRqnrF3Wb0q(?!Mo3rY1~nW*IbfkClRfqWi8PQMAtQ#?PSVs z-*l@jrci_uB`7zRe(v2S_zZ8ioPTqUnc%j)+L zE2ihEA;Eg^$5+wa2>=AKYZd}C)y;i>~%-sKXY7~X?pb#K9RpDU;X*B^oE zzr(o38TYRW)MW|+$FF>N93(`7>jE=lsGV$q0}a4ZAOaoX%;NJTx>m=Q~A@jm5wE+RiPLKIR(#5C4vYP@b8GID{-YYzOKIK|YkFiuPo_!tlK0PlyL*O!&Q>{i zIHXwad{tOtexPSKdObyFRSbX575R0zzgL*l>qS{9OrHZ3!i?gtKB=iN?cWGz@TMlW zVK@hac=oF23Ls3kG&yyM$DRmz#-SN&O~`27_?K!r5~Y5`Xbcv^jLm1pR6jPn=mO6l z?&q~lj@_zu9c1Z#)?t$V#{KegYgM%r)%fc2{x|wZUAbgm`;R#6&@O%JfG^J*ko|Ey zC$6p2+eQ~|onkOrMKZZ~zHwV9h}Pmq1)W=d5H&=;lj>wXz!_%5@iCU1*Yo`Mp+RHl z*23bhgkCgsatsnZx6$gCCW=2thmz0QKT6q&DhWIJ!wqaT@b!T3!s^6xj7pmq5#n5p5fO?uaP&ZaJXBv~l-856i-X~&d3157 zj{*z7IL_)R6Ibxd^Tc1z=@p%zO5>=6rH9lt4R*G>MuIE%7W=oM8Q6`Fo;SqmJ66DF z1M~KC+M{C9=(Ziz0qMW=h#`}bqCGR44_v`*YB^M+@MHf7uq(|+%uljL$w_@4HbP4M z*+Sy+K*u)>2&Kr~VR_@z`x4|l!|3(e#&HMktHfyfbkb{ME%h@W;}_{0*SwzEPzvtW z@6>+nu$O#Q5Ll2VE+d9ntlpeJ5cB(^GoH=3eg1vOdihfKFyq~R+?u*B)sd+&GSg1xnj z^j>KI0A$XeJM9Dja1_}8O;Q|e5A3qG1;4}2pZ@M*9Emf%m{r-SB>uc}j4OKbp690> zNe^rq9FM~r+`s4K0!>%;vog68L0b?5m&%PdGk1UpgquPnx5uRb90W-R0186-K>z~6 zfC2$*fp=0UuqCX(H9$bcLFGWuu=p!1d&uhDQ(lluAKeg=+B85r3E|A4KJE;&Fgv4W z{Xv+Q3}_0V`N@h=vgsZ-{3ivPXr0Xw*LN*AcHR-MNsud4B7Ug54Y9*Pjd1QUDE>3s zc%Hb%R1b4bzPvruo%_7F$y@6veaeSBHxan1eV4ZxJ#D(t5&*u7Djz3p#dsDB~tN+f#*!z$Kpt(^rN?9r$kqT z6e-QAU{>&ySmyGEtq`aBn){d(vSd`qy|%pMA3n0bir>ayAUmYeuz&MhFHJW$ zx2O2+CuUzm0M6mF#U73A++2D#Wwe2uM9e{Bu}973e9Lf;WdPzMjJcb%U6d}8IOZz4 zVoq37{^QXlZzwE9A;IWYBMh|x)12&v&+?9k7D&&Z5t9T^ShQja+B7Xn?ujiKPt1`) zX!DYke#t8H&@Wk_SQ_Ot7DG;*=9*B)hNcX$hPo*1_p%>}FFboXEaj##svRX57ZcU%{MOKHcJAA#j^ndc=DpDl7SI)93H#y-j3^ap$ zC$f|x_j@c?EH0H4$vs0bbh4R5zNBwK2ov{?MQ^5|v7i*;(|>uqWFZFVMB6M-S&=lg zf^^43N}&T+&?XR#z6RBf-h;x47@I)jH{+kEVAvX zvx2CoQlPD?t(jT$lNF*|Mo~jyJYnG1399;v!9g8KD1LJVBvk(vxN$ZlhvY;#3B-alE3YaCbJ&IsK{-~|bqK@o~K)c7v_pu2bc z$1~@pW?!s@`UoQYRgkP=C#SP}pL=?B@p=q(@XQ`^eUz#d4?`%-<&Rm{w3yl@S@dsS zB)}=LShoX4pJaD1FtNgjWGZ)lwH41x>ro30YoDr$kqv({omBnhmi(%| zx4kX`@-vp)a?J|y_5{d|3>k4DEbnTzNvFhR|J*G{^<5Xv0?_a_Oxg<)F9pfkc?Ys} z%#&K1EpcL0%Lr6dd_C(y<}XesFZ6cX8BC*bxtwo6yDCz@>~xJYZ9(Q2y{I(RH0Z*| zFGMgpZ!8M=B+GX<_i}K7#p|CZim4_$SG++61Q!Xme`MjFam5a5aV-@{A(k1lhhUOH zCnmEzJ4`vMZy!3Y(;V{^-s*tX#@=hKBwMu39=L=q;L+9|l`3UF@agI65ubwei&p0q zRzCotQYh^Q?XZUjP$ycAk*WdSYdeEQEH8VQMAmqauQet%z>0;`dg>A!4`{N-OxZJ# z$#AKWZ-b`Y7ng;rwev>jh+en3)H7P=q(Z^X^Jfb5_#c3|`v4^FL8Iy_)W{^s0_CNP z0uWciG?w%=`a8jCPAxcn2nRrZrw_r%HBk853MOuoA^sap8k&h#-}Sr{NIw(Py|RyD zP54v36TY46zMh%7q}WgWo)C)#qa)-LfDjMr24x4FAs;_}Ix?H*MBggR7wiH?0t9R~ z@b3PH^tByzR}yuqUN5dDyeIY0Qo>Xc4j%-76>nV>!LIDx<2kN_@o)r~J(IvgD5p#B z!J1g>0oH9wueeErbRlGAm!d|0_2_qFITG%b`ZygI17HTN6DpVs7U?Ca11V0Bfu^bw zc8LU$#k&<}WM1Uhmj>P?0e7ge!PwQK+G%&(Nr+^WY(3326lMSgj7D;t)0_-!El6w~}o4}Fuw`+Y(Ir!d$iED4p7Enwo^R6CDO z)7iBz()t>WNwJNiLeVIV_uJxbWmc@{$A{4Eppr6i5++i)_|UiKo2-3i?j8xxgsi@~ z4%2773q0@2oe1=)%*wK`^q8sc_4?Tj!dzYSjVFu^wB90(Zx-xVxtCY}!2?~t7S!ZG zz`!*^Ja_0YVluhZ6m^Zfbal6`*mGT;I0|F3zff>h`;WR7k{h#QRRulUML{fwymYH` z6I8dDJ}auYOMnkLc|yi3<(EdrYYWVE6|^ z?1>5rV@%uNHf57smjz+#H3FYw$np)*{yqzzgA8zi8E;-l4%LA9=NfSYF2j+X|nwFQ5ysuM#|;7sarJ(sCvSCEtZ!B}}rleMzxH37b}4$A@30G>y!R%p?WVgtd;8GSD$Qed}!= z}osr!9xc$O>kwCM&bsgKq}Q@)@&N z12B#Gyj9PzSUhgb206o6zrVUB=u7J%O*aLT70ao66$zGg;?~Ns{GEDd-I4vI?S~K{ z7bOTe$0_-t8P;B?CZn;OAaZmla^S=x+vV@Mtx6j8nG5HtDk2sZtrrRyh-mzKypbX7 z>|1$d*U*w*4dZ|MJQ>`q>|YMiH;?exC&yxLC2|Ox!^eb}$e2xX_RO+AjFL0tUM7bF>rU?>01CYffuifZt4T1b@u diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/PORTAL.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/PORTAL.png index ec89242e8aa77963b77452e7b3454b0f8f9e8d5b..ec7cf77068c4e7a7495849d4bffe63eccf77abb6 100644 GIT binary patch literal 2354 zcmdUxdo&wZ9>;HxMoh?3l$P7;*rRjJ!g0S*qw9coZUZm|M{HXx%d3;@1EcJ z{=WBq>*e8kQ0uT30N|k8xij7XsFU{NVNJDtDwjqb0nprbJ9El6rF3O(HlKzvf_lY7 z@2MyyFbkUl>c%G5^PWuk)MY_E`qx&?dcqIgfdNpZNRUAQkOpaZ0Z{orj6K#4*tBAt zP}%DAwYj=vkC`T=d6ch>*_G8kviB538eMpDY$D9wkJ@yiF$p_Zv%E!wM&ET7`EGBQ!H|%1oj_eLR_q`&WQ~a%gs%w%F{Ee zBsHwnv3i?=Ah*CV{owkg60Y>Q#ncnjQ$=V+(Wr`JKE)9XDWXoC&3i;JQQYs{=Eegk zpno2VQ`Z96gkS7GRgca_-!dCB&9x=&A2$EZ)Pm=Gh!G&QYtjKY1OLxKEcE{Feb%ee zH*u0tRLP&lZ#6M0__-%r#}JX^j5rC zlva^3FW#aJXw0-FR`V;wvhc=gO9(%73D=cr5uN5zwT(i!BZ_GCo>GvB3kmw3dVSd?kpT423b9S{qaq?gG*#0*04BE z{-AsOni6wwWY=w3&VE&0yB5=CMXGUQ;7jH%$weM9Z_bCp-E3GYSgSF^1iV|&l zXtE^6Guj+V$kdG*I!|U2u3VFUMt&zJjNHX$vlG3$aoo=9c|N)aI^Yod$ad0Eoph@r z*0IZR=qh=|rz>-=Q2Tdj77{6uw%JsLB_exWSGo?U8mzl{a~sp(q$8_5JxqdKPQ*gC zDrMJ|P(p#OB@nh1qGV3^IY|f{FQd(kzY1*)J%WNYieX>H+Lm@Di`vUA(m0M7 z8|@6Nn_Z(W8Eb31){4W3$)GgjH_UutM}PM~@U__TuKjJMgT|LI$VNzn zN!6Xul!<+^-b&8iMVdU4jH#@7sWPVAi`Erq9S6Z%>6~O7=bD? z-=a|qyQej_6@49v5SLJe@qh0EL9w#mG|>F3&x6EIV`w!FWgzlG82Wu+3GU+fQO}Uk}==B zrbk=V-jwG8#3YTHXx_)zoMEZg+zmD(NbxkM!mp{xuLEMDZs{(vkk;Q%#7Qr8Sk|rE zr7Y`RubXzt^WCn>_Nfe2npX*Jw2LHBZ?-{@>Y`%gAOuZ++#Uk6sL*%EUEYZP5Shc= z*uJOLhq&OeLZygNsh-5#*-kd~qvz-$E`(K9l=Sp?;0H1?^4Z?)`qCSlD{Q{BJ$znd zNa5Lc@ZGr++Qvk{k+MJ8tnen|ePVI3(*Y-v{baUPbmJZwvkMf>W3%zAs3&N=d< z*P8EPB;&TdZN@Kp-#`4&R}c5&QV{QN)9|pp;_A;&53*Ms=$n(&{y!lzeH;8^aEV?A SasMv_+&=d>)8z8yt-k`wz0a-y literal 3401 zcmdT`c{H2p8vjD9Q%k9~YKhT7?Nvn$B04QobVDy{%UpvZs3MFs%S^SWy+uu1Ob|;W zwMI&XYD6+^k5Woev9xv(V@nlDC6nZSX3n{P%{g<=+;i?Z^UwQxzjt}Q_xZiQ=Xsx7 z=gxSksUA=T06^{3*C+e{0Ez(n-O7q!dr-s67aZ3-b;2VcqhxhrxuN*j9>q6Lmc;H? zh%i!brTM-{)V0=;ySV{dUrf*MkAyqs6-1q~1-BB|xc3tv0t61!2n0lioF)iHt`KDq zG)n;}2+C&xIS{hU00;=rv_FFW{i zlf*mMt3;2IFa|p=8GnLvNRpt8SHF2}>|-t|qCT7JdK=M+iroj!uNxRF_hnkSrUAxk z@*qjI{pFDh7<~Kb?Fx_>quQuoTss~vm_n`@FhdlEf`tI|M#1_+-(uYht^|9pDzUXMdV z8A1skmsD)jM3yq?VeG|@{#3jmc@Ey&-KlTpVw6W* z6dpFybM;*iTirBpe;nj8lz>5+Vw~h}+?>SXlCoRF*r5Rgc9#CU9hr(t!Wcaz!xQz4 zYMC9>sploAPdn88SK>U%5w*=0ByHQ>R;g$GA;i+v3jsp&AK>GqVNbhQjb?@|qj4--VdfZl%Ok!`LPfLQ_Cr3>4efK*0c>yUbH>A83fz2EAeG+4kL{a>5q{gSVE36XI6Gza*oo0Oppu4rmYjlgi5C zLIq_cdtvfs^ZXi@vRa?4J;LWYW1i_ai2BDJx3*K7aoGLSZQycA4M6<*cFb#-f|&{5 zO}k{p?Ye293e;g`A1&v4T{Um|iiL}J&%t>3@s?(i^@x&Jrt35G zvS{r9N(qoLB7Ki`%5RzgME0cmqmzWZ$M)`e(V^SBLRju`Rk!4w1){*d<-U5JxT-RY zJ}$305Ee-WFF*slfCro$`b8E$_h0Jwvf73}iG|fr^NJ+-l93eYmFsqf)2=#3fJRF? zIUMMW&Q@CV0oC-};B*#A0lL2sGy&V0=I$~=go1Z21^IM+E3Tj7d@&a6K}gn}gNU>V zk6xYGSNdF_tohseLiTSO{KI$0$pib{F5Q$N8IcG^(P0hH_D;UAK!h8*ceeX^i`<6> zWe~zxZ@8pZ?tgjH_`C@NMFl5@$d;tH1L zJjKlymJt`j5_khgyg3mYV&|euh4tdEdsvdmBi08fTB079^@Etsx(k%BO*Za}#1$}D^9g?q{@rV7P zP282y6!p;l6;~g1QRz|0489G|;*Yq+Hl@9VrI_7k!iU6-w?f=wniEs*oZFLOnvYDQ zchC;7y8;M#QFTpoy_gUtZk5^R_vRu$?p~>9@wA{e7qVnY1%53EQQ?Trt8p@ z!@20?PBP}sO6m7}1!S=g^3sFN#I^X9>N2XpBf0L{%7LEOZI0Mgt?Y|u>&EP7bs2QN ziO`g4lLiT=P0e+QdGC57v%sw+Rgi9y2X;0WOeUUhW-$_Y$c0D)H>uPiag?!eXcHrf zS&jw8zPeQl)l2A07GRQRRc`t!DC3=V8if&*#jj_~c7&^57OQY@VqODj#=bh^Yv5z#pva_?!L3eyG`t{v=k zTH9sm`3XmGRso|RMKe`^>KZ1^a3aUzTJB-nASddCyv)JOIGVU7-zfdU9bhhAx4q!T zD+&!36>359H?a2q0C6SxAV-_i_cG>nKVoQZnb>ZRw4TAt^4z;UvxE%q1xVn6x--q0 z(O1>$+|XCkaJ6%H2Mn1Q8(dHmLo}yED1IBwwX1kf?W80Ha;P$Sz%HR;crr! h|9KVsSIZ!chT-TRFDt8Vf@A=vPM$f@a2)x=zX3I7Xv6>j diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/PUBLICDATAROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/PUBLICDATAROOT.png index 18a258a7ed55ec991c9cb9acba16c3c4f7a118c0..181ce07c88baf618c0f190a64b17f7465a811d52 100644 GIT binary patch literal 3162 zcmdT`c~H|?5`KXM7zR;100Ds^atR73$RJll91f8%+(H0nxR(JG5Tbwtml;<we$s z8*Z)+J7iU40RTIk9PQl!Kv1B4kBkJgX0oLw0Fe8_$^N7#_U_V~$$}b9Ma0n1{cTa< z()ABLjqQ!CNy8QugHHQRy<|f^^Ci^_Ava*mwe`^uZzyj*a}!GmiM`N@!vO>&G&NB$ zNXW?ikxiQcseqI3-XWSNEl(iD_n}^$qT99`ac^BMi@gNzT_4}t3RoAZLl#P1LV&p= zTF^kaH}(mEh^|=rsWfBz_z8KpENjRaHz~Mfx{#J;B*G+Nq6h~nO-uYBH6_YS5YVyo z$%hHA8fMOozH4rWBJ!lrSKzdV3xBt$J>Wq)0Eg>|1q>!GCJKcUS8&&^N@)G3DV;5e z-wv)y507u}PJYIiw#IOI>UBZf0qIYk4nnd3FjYF=wQxvLIT`E}boqAiOoCSMveo{I zuZ@Q~gVrs*URfEAHALUFHJsf{&r#588x4^JKf3pBWbn&e1-mk+W7&uPlC@kx^DKI6 zs1=M^{W9%k{5GW!AkM>rrG2AQ%JJ@Zt!mk2L}zZN-E;cox0_!CrxAz;6WR7l7r(pItW)#0*)8TLWa^W!JI5{C95~}-h2MkrSJYQ* zr*w-A94vZ?@fOL%$vOAzIDGtFa_W&;JqL>y|4^)2{a+pgzMfNW^TSzZeIJca%@B3s z+6GkO#GwxwxTyS*lpkaO7|Qrr8dcOK`I~0>^+vz#qklDtLq?$VXN5V?an`$`K+iIM zA20N@#U%H}@t{1~ll|X$ypCH~D{kL;{PT*oJi|SJ@m(P`b>(mk8TJuMOezayfz}VD zU+igfznt3K-?NmLT#+&p!q4o511j5ZBqg|ndptxX6;#^c;&QLZHPzo1s0!EdE6G!g zV1G{;&`5eiuNspAxh~Td{zu1s3A4J^@YX;!tH10tc{>{8Y;s5$T+Q`}U5qVG7LpjJ z*~$Q?fpi<>amwVb95%4KdDYHjdm%8H8+)$8-r7e8xV8G+CswKLFbAyt=_74XWSeCS z3^j5uAw)OEqOc=-OM(4j^M{ zU=(mW$^L2+LD$$9K0xAv+ad7Y{p^CM0otkhhSd^GtZnD|zRZcWDNdpyP>UYgvr$a< z<;a1_{poQ}Q`SS{`iPITi5HchxY*1-biFPIa_gf_&0d4X?-lfPA7`2LF{> zI-t=K2{HUcaN}p-Zoe3hwUie{S;2dQ(SWHbfu9`a!a#0MOgiAP^xoD>s&SF1hJjhkv^XtF)Lf0)DRqyfpD?|C_Idm-G<^2-WzNEr;<-#RG!H z*w;QQUrw5B@1UiQY!(1D)^=TP7@{Z`E(_`oRk^S|W|UU_C3t=%`zi-z@IsYWon+SQ zt)m7A=h5l!54FP49sWhNk5yK->}eZ@!2C{wpP2zA5U!VGS{NStSX=kctLTrVBiYH< z%{f7qXX!;G-WA%oXNC5Gw^8K5vzx=PiQHPTONYxevCO&b8HvA^YJnih&!*aJ)N+?W{^ zdLL^&crw)S8&T)h(PLc1Vq#~?N{wb+axWT7`6w6KEL+{VAslAacdIWwTPvM>9&VE= zuY~m@NO*3=629ev974>W`dMrKCAjyhP;TxIcyv!~p>o?u!->2Fr?`hG_p666%>)V4ku^RHQSN|?OUkcqiJMCt9+(qI z>Ds1BmQPRY%d}Zg#hl^7mzQnYyEpIn8pvu!7FIv`x?~^rpa(W)$v;v@3F+(8o$bND zm>`isO=nX>?G?}dGRW1-gI?eJ$wxtK>R1`IbFo+2DaL|d|JP)Wf3|3uvnJ0|=IDI) zv%xg7+Iv9ub~xO5Qpf-PCU4K!k$2xVQic}e*!2TF31Ktp9B%UuA842t>s=<(Ao}%) zvrR+dSS@Na3l+(r-^_|%TyUCId{3QRpeQH?MkoL3i3XphskGB+zSYH6=dWndkdEh#Z?&i^=nK^uQSc)4eW-oEDljjkM61d53OL6@8H5hvsK9 zhKH^DST7fQ`yW&Vw|Lc2&V*Ex+aI*D{J$BHZM>$S*XrFMEq&OYOqFeO8c5w09JypRrVq1 z7gu|=NW6<0EpbU|ym(GOaF8#F$|M8=OI=jw;x% oej2nW!!FZ*{Bicbn#DzkYuc?FCr;WKiV4{1w5xr+-T7;O14bU7Q2+n{ literal 4376 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/REFUNDEE.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/REFUNDEE.png index 5d64c008157e023c174d7ed1d2510168582582ce..57760fa2de5be3984f346f3a465520f3db4a6e77 100644 GIT binary patch literal 2339 zcmdUxYd9NN8pls0M5R(w9c556+a(4?ORJT*)Mbn^snS;6qIz>{wn{Rx>XL4!bjB1T zRfdohonULDvQ*b4$h4})B&}#>5O+c%O;AFRO#0o-e%TK@Uw+Sd&hwu4{NMNdpXWVa z2Vwp6^*+)A0OS}4YHQ#p(09~=a&+*eFs#G|9zv_sAb`YgVt-id( zbHX9_HW?&&l4Oi(IAUb~%h(e-+1JgY0Vr7F4#ENGO#Q$U0`Bbo|AkT^hQ_(<0rXbi@dfjN{BTtC^gH&JEI>scsYx+T$fWnxvTnnXrM?)L;EDB$W zl`yNT_+~=8!Doe|sD2|!Ae&VqL)L_!G!2lO1su3Qc?KRBooa4@sZ~|Bd2z)ZXgc8K z_SW@H2N&*hf(gWFvxH5lVIpoJM#cLlO{_tE7&x`$qdcClTl9_H{M0Mhu1 zR88yW@_-)jytfTbDP7M`g#fC=CF3{hz!fH7*0d z=adfQM160CS_e9gSQ#a=V7s>O#&)&v4J*F-@z>G(2s!U#aNfiG_tZve(^fkwH+v?D zGZegD#NUJ+S7em_%=V@BBO*hj{yt87Odl2rbokr>)`5X0?3z*}=U}m?ImL zh`l{y&Q?5TlT*9u64N2^u5Knsu2DB<)o?&La2>Ip;Bq zcJ_OO3x2&0S80>~v}LIyULd=h6Vs5OBdm>dbzonT&fo``v&Q7Nb7ZSWZvHi&OlMfN zt<&~3DYysvqF;xb8j`ZBuwu6;c9sNoaz-YqSJ$FR7)`CJmLnPVnUHbh zP2;0fpw}rO5|x_=RV(Wpw3%^|U4UHJx|(c(xFpBKPP6Na5|%89g2UaM_xDA;4N zmWWOCH4Tf*Q^ZA^jYAg3az{Z0 z|AbyT)SOq~mCwqIs$H+}Te;zJDUj}mD(5fD2+jJ*FS>xsC*)Z>BVPGUX3(#Rg)={R zm#Wk8GItw#h^V}6N{t_CE!5&(+~Hm)MX&kc{~nw=5DUfhPOMCS+YW6XfM}2V%rI11 zWB%|x=t${+?5WfzAVFY)lj|8u*@{-4B7-5{W)kiCz_CqFYA{yY~vfgp}kjf z*{)T`Ebwt4d=DVkpa`DA@mp6ojwK#|z);Mff7dd9Z2Ahh9SQj^v-uIKn$s^-UoH3e zXPPuf@&s0KT%-AxKF5)JkNJ=u#sQELrDc z7!MsTfiKh+=HAUIeu)^XZ+z8KOXiFCiH7x7wvjJ(Z%X$hTu6C}xfnPe;Jmj$88{!^ zEyoi)uSpr!GVYzJqu8MjlTi(Wv4N+($!;*-jj+gqw4NS8kJsjqcEfGUdaioQEM=ez zgvLh<;YKp?{u!#mQm@C&m$ypv;gM_l_t>6e4XNWv_s6f*6_}$u*6qrR=2_3H|04Oa zvq^limtt=-78bl(ljWBy;M+zgd27uHKRgi|W@mr%=nm(MnA;&LXXLagL|ftX zR81l&Bkn9tJ$g0Jq518}HN+aL0*nIbE zZb<90biZ`ta)N7AmoG${g($Zoop=u1#*Im0K_~|W- zId8bO?Qrn0&W*UN?lZ_^8%FT>7KrFgF)dbPUd(rHDFA7Hxnl`+ZS%tPTjj0xYO@zL z7#CCQMCth-;}{1C&p_r2qf` literal 3397 zcmdT{YgAKL7QT4_B9c($p(4EZtps@n0kwsKRw$q} zpfspN0wPI(7zo;$Dqw)&p*#|w#0Vh>CJ`{nTxR}u*36ojHEZ?H`OZ0OpMB1^?|1gu z_q#)ZKI?Qh=>h<-&d+y04gla@VE>Vh7T8)MeFDIFJ-_{XgEMNRQ!}MC?M7MyspZPN z*NUa>htq5f9f&186Y+lNuO-vC^6k@6Fl%v5B)AmFS9N9~Ry&NZ00;>8*HczUFV=X0 zEoB~V0fJWs6a|8X8$<^L6cvDjpo0aVAQW2t8I~zm<_z2YF%q##R&&<^WI;(5io0Zs z!fHX$jpddk+G-d9gY4RwC%N0)qW{k960JNphCcsvhx}m`S_*Qt=xR!v3IiADd;M}8 zG~X}Zc&hKyY#H0ybLZ-?B26tltO8Z=fa$1<+Lu$->U}!+w#N=*MJd(ZAKZzUUQAkM7$zGVT7cq0hkQc2>kau?I1bJo z4@}Rf>QjcGv~y$boT5#rc>x$C?A!%mLf0@KJn=RgFXFzyg{r}D4%-to6}p*?M1|Z+ zh*vsTxq5(n|2^FqbC$U;r<2r<0!>_flKJ8;jnyCa^3wlLn#MhGnc{v%##pN+x%wcD z0q-Yg#`j$ik(+tzU)RVY5$#`N{8mWewICy~ZBW_tH zauIJHD-6nJRbyp}yNVS-H+a9Peh3{0ZaHrI>@xr@P@nSt{8S}wk9wd zydWjs2pwLx8y^M$FF&Jz2LfJnAY%UF|7MwHD?REmk^9 zhz*zS0&Y)i+BK}8gVwoliyrAZXn22?>|UJNS7&0*IQ?~_+Wx&P$> zm-)_p`>X?4*ZlJqf*I=O9#nbL2p+?#1sS-ZPe(p8pav zZrS4}LGR4k=rwR(m_E$mo)7{2ABM=KtyBOD`fYcw*us2s34QEy0*8v$*XW`s+P3aD zjVX5|U^HJP*HwEy+5uGIAHPKc??cBTy&q1t<;66pU_c)zUeFdr)xB6bR<^yl{6~eL ztt}5AI^V^2H~v=-)=G|27Z6n9GP#k>_$N!FZ<3lGOwFtT0JlnARNY(0?2n(6e=PxH z5AfWBDGqJi3J5A+*O=%WRJItuS2aqy{j)wL?~ zF5YzukcWfZZ=e;ttFWpP^%iIBaJ>@LRS-0~oHV$jh^48@=^##o@&Sz7W=bDc1T8yL(%=@e3m(rSE9S&C#?93BD-P5q z+3lUXBd#bKos(m_m?J^;+Br1a8hnC4DJ$Ey_-MkwL`2qna}VmE1<}c~KANx5vk~TT zHk8h~goQ0%m1$NYh1I9U&kk&K8$D-|d3#Pay#&ibfJO_I3E zv6pv8Ll>EoRDf(iIn-u^yS>Fkq|xM@4PKvX$_#aXPRxp++Y;gvp8KxsPL1DREO&D} zDsddOOG|K#c-9~YZa&!`6;DNbTSC^9&{)v?f3iTV?!l$lvv+`{d{60gA)d;ekacN`1)%uz$Wp2ycXVTUU z=So_e^7q6e&CuM|EG^br-X1nD`MdEO9eJq~Gw+$pFX@4;gg&x>EAeL&+cF6UA6>xD z{>17Po^R_ML1b{%5+9+bC}z&`q%kGh#%pVM=h^XB@Q{!1BkfpWB*V)H-r6KgD#N0fPajZ}FL&Qr6^*EM3y&*Uuo5cNtpDwkqqGJC7Xc z>^!!~^dy@8L7~mKn~qKC%@>aED7B-HWp+i*BqYu>hD%9y3ALfMNi(kPj|X>1jS>*; z$BK1%u8mqgCTWu!LrYq6R_m=JZQ?K9z8$&9(LWbhIDYHQmXuzJGIJ<3+|*zM$BF0})~|OLwb}`fU9j$t1FThVFIHEK6{fP?_wqv$f>*SGm_^w~ z5?BG8@Z1e3ac>}i7nTZv^3ZYSU#$fIC-4oK#0-G5$i)1AUXYueU0$#`Fx{YXbd;I{ wL^Esg$q(9K$}5~UG6CUFT&n+1{wGw(P(%OX*VVldU@!o`uLJip_7Tti4XJQf3jhEB diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/RETURN.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/RETURN.png index b99c0eb1e5f36e9e0f44085b39cb1e09888b5478..b3061dd310d8092c5e019d6b2ecf04cc8af2927f 100644 GIT binary patch literal 2867 zcmdTGc~H}5_DcwcD}YJ?DHs*YSxm)1)I<`Mihz-*$RSF&u&Fq8*;Juap_JoO-ffNPi5a_ zLfaa->_b9qN(?Lx4rWjMx_Jw6&v@OWCdAnEP<1>51|0z1nxy_}A#Bu87En_+7_!v> z0&WEDOcGNq%211<#=&7~O-LL5x0$BtbDA<=k25MaL9!rF8`AizH;hCE>RAI$nf&aH zPX0&Y$Ay8^d6fo4dQwm&-8cSfy1=K#j19qnJSJWL-3!CEC_L##g`KExWP|zFc!_$ zL))Vkomuo0{lBkEJ;bRtt- zT0-_iq5u4jMNn-N(Uvntkd@C+_>s-lv*Cg63PlU+aVcDN179y9<%6Ni`jbcW^SI zaVOy#ISeMzD?>~71!O6$ntf9B3(CuWz%+JuF@pAM>UiDya9O;MCmHvQ9gf4$O#7|3 zi_g2~hS=wsuwFA#9**D;4{xs~oa5vFvD~CA`e&b-xh<*&R#=sVJaV*MZay5xz{n%r z@B@jpyh2({S@G1<-T_a%sH1&qH5&@ze>eMgLv=V2Gr!+|wd(_q@9p2_UNs zB*!>d)AX9eyxxFbO2dc9USD$2R! zzav5V-svRT!kE=?L}&#F!i{+gvH%)JqXz?k>7lHIlEW=YgNJ8YTBOyd+SgOhD1^B7 z$Gi$M2#Sufs$?CI7NVT;TmW|uGvUWM(-5kq^tAbMxi>?>_l>=71_Lzy^>eKvK>DI~ z`bMRr;BC^--8uxlu}z4lI~UgxpX8U?nS#`U+WvdI@NxNqkBO52fLU+$jhocs93Kb# zo(sWywk~y*wYv}!maHZ?&M;=O8@Y&86Z&oyGu4h#M3;BI#P|ZrxPIP9r`HBRx&^sF zBCR5OMV#JHx0kH}Q0joE3oJ@6OtJ(%ZaVKH7@l$S!<-hyfQ_;Bv$n%(T+HS?nGUFg+l(G)_sNg z^Ogq+IMeJLUofy854f(HI)IcHQJcUU@&FQTZ^+P^XxpuaPQ$^uBUy0pdi@J45bvli zA^91>)dQhMkF3G;7x4Vv2a_;h=kE-fqWYezyX3#@|CzyS{d3>{u~umS-MFH&@?1zv z>?nk$T(O5Ogl*f(fW0p5`CWAslKda3sl^k}yVd7y8$RnHNJg*M2K4EYr>#CsR(2F% zYR@^a?TX+yu1kfrX?K*4ap!A-k`=#W&kvn-SHSNuEHO>r#LyWCX4zh|
mkdSU^p;BI=HZ@S-{rfFv7#pdHlRNPBm~iHsBvcJNvf7-m@YuU58)( za@IV#7!X=6y^2h2RsJHKQcmc9*JP2R!zcf+s&9P0m*;3+QP`OmY+M~`gH!I6Mz9JJ zk7f8Tg{D?D9t5Ifx#eIhb=nY~UmvjU%*k!}9cUC)SajBOb`W=O>R!^IP@0Q1hjHJD zqMk2m@&}De0@8Ay7Not*jAHs^!ik~te+kqM{G%~#&TUI^h63JmzZ$LmvDkuX?Z=Ag z8U2M!eo=d16eB_2Aw~7ZuD)>FLZgwBAI$kiZtkhum7-w@ymv;gsn8CAlt4iBh3gAZ zgmYI-{`@e=HC4AM&f3U&vNy?i9%V;~t6Ufznz744UUIb97eNjY1!6{C)Z`z7}lwYyMNV<$C+f-@rszHk3fpNSpTPfr}T`}*4SGiF4-)obZOCR zCdEi#F#GDxhofkh_Z{CONi|r1^X=!a=1O)TZ0Oi}TT)vaz8VQy^^HcqoOiA~URZ*E z{OF2oH8%KjU` CvgiT; literal 4060 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 E4f*TRCIA2c diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/REVERT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/REVERT.png index 0ae2c7b02fd10c5fc61d1e240ca9fc555da3f4ac..09d84ce33b3f58523ea6c2d52aa9fe7d72b26afa 100644 GIT binary patch literal 2906 zcmdT`do+|=8{cLO#wEIt)#R3Qm}7*bRBjV8$9-xjq|(VDx5!jD!l0HU5=HKVQ!ZcO zAa};-xD1&ocgBoqxpi~NU^t99@3hWZ-#=%q`p);y_x-W=e)hB8y`Q~*@9(#tCm!#B zlabsb2>_6>{?YOj0Ekw|rb)n{K4C^|3;-!LYs=$Kq1kgRT4mue1q7aORUk+&iN+xB zUP(~ScwwcR?UKCii40VUe;UA)h1LP?7LkV#8pb(5II7B#g)>puE~qDANy5$LB=ABX zOhgzPtBMtY1_@EL&=>u`y@)!&+Ffz3-(W&;nYqfw2oK)T5ICR5PUqQB=)-Q&OZ?fb zt+PBql<+e5`)cM?P2N*ZCAh(b*C$J!V_8rX3yxhENBcTL4$f~4HmO@Y-b~&`nO{N! z{Gkm21Gz(=+faIjmB^3@+{q;dYwJ#p0lLtniK=T7GfTMs1;rp4+fd;bUx#r}9L?{v zfm3>CmDn%;YK5ze@Rct=pmlU>z6I3b(j#gD!WSOla{_1I^Y*ghcM$oW#33`xTBKAU?uWqw@n zAF?-*cyJnT)ao@E*=LYQf9Z8hcKY7oPx%5Yj?{))Q73Xmre}V!LJ;|ug8bj>^6DPU^opXJ9&}qIP0vR=Yfu0x!R2uMt)h)Wqp~~Q_i!kaxM2R) zq*bP2RlGKEzqojb<$=LZc)Hj!@?VEme}0k-@xpI`V+c+Zr#k19)Vz-V_ zKRej{vdb@{X~aVCwzqUbt}EASQQ36i-|a;d+nFrH_gknd;6|j>->5Fk(X1stEaEp; z7b?wV&-z5^&RxbC&4!Il*cy$!p)YLz<_(2`|B)7s_t(s^hAV9Q4MHvmwU+FxbbON) zAtGM<%AaM<=0_bkv_S*X!#GWWPngq$t;@B=IS<77Gp zpqFo16X!MMfa)m-gP?}+{!|*m(oy0XAn$|TJrdDGt@N_sJ!S2d6rAMd(ne?wuk~{V z(qNk2r8~q%N*_L6wO|Bxor(^=T|ej6Gpwe&z;&yeh+H2v^!H^(mFHCfj(@CCG<}Nd z) zan(q$oMYgV#4{Kj>QdVc2WF0>;2aw2VNP^=TMofmzw$#$M>!*h^;{81XB!@^5d;p7 z+K&P}eMhcs0CRG#SlzKy=js9ie7`NPoN>em=;08O0Q*RzHkdMP12{5HWB>+ybq<^i zgn>8$1Or~BT>}IikcXc2mGz;=_b%;vp$UR^h;&cZEr;2D{WclI{U4MjPK~!Col1D3ZI=$@s-#+)J~HCV*k_e-Dm zVcwX102W0jGJ5ctg3;ex zPV2i?E?vnrkze7Ro`id!WxM(W$Bs}j#F8uHM|=k9Hn?+|puF;;{vMU8n~O`04lJr% zC=3eftH(*|oS-cw*Ngs|*RCx+Z56iWoQhe~!RTP3>=@0%NNn?b#CO^2Qs>P{OV^~- z7ut4Y(OQ3YHr0=8$O=VhU0+~ZO&3*&?*z;uOOf=VLw#h*AskeUmJk!o1Ig;x61K;cBa?pdC9si8 z`ci56Ac&kgv*$hXwKtMsAv4so_Ecn(MD4(&O2JvVunHW_y{c%mR~(pO5#3d<=2#|S zt=?Wav%k4+sL8-WGML({mAH{z3MX~_eH&|}naPO7!?^t;qk3nQk3@+uieS@k(mKbf zk4-~iSFI6~ZO`<=nmm6awZ%if5x zg<~t@AEhi_ms$T3S9y#gpUg&GVbRl7nxtAP`=yGbd;J%AUsLCsB5NXCY94^$7>d JGINiZKLMLy2Ot0d literal 4096 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SENDL1TOL2MSG.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SENDL1TOL2MSG.png index f3a2d7a1aa8870ef20920673bd4abaec84bf4bc1..e4409c7da197e2f34e1aad5b60ed519ca39457a4 100644 GIT binary patch literal 5572 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SHL.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SHL.png index 19879901d91fae9e5973494f1a8c96e534af1a20..1856e5f89a044d156069c05d9db95ba921708964 100644 GIT binary patch literal 3986 zcmeHKdo+~m8h?k;NTISB+dV3xA=y!`W7p(TE*T8Dhf;2B+jU&#lTr~whLVaMvZY+g zEeumqJDY|`NsMAMx!)P)a%RSEpLPD&XRWi>{^P8(&hy8&e(QO^=Uu<|xxMdm#n#$P zR76Gu03d2%e%KBGVG0+&5*FZo(IH3s0T6e#IBaSkd26!2?`FQ*Hyb)mHsU$BaLs+0 zKSYbDi`=Lxt-~fdq1s5pffD3^M~JEPLT}oLhz0LBj=x=5-cFuO=3Zw;Fu6N*u4pa z{EP&{bh3M>;_soe?FpWgfb<7?r}u6Sqh6S5(5Kdp(yfP`##QGPgd~Qj8sz$<^h@Ly z`6=vX_f_#r#V2o7ymx5JW%$iS5f+olBV-KclfQHPbG;J{utcJr<-FMZl=aA#nC}$B zH=7PivzdFyqD9DbZ{s<-$#56pK(L{UE@4;KNu2gvnzte0jv+fAIr}Q6+MC_1C!qwJ z@SGIB)V^k6X)*d~@9j%5M`T}j5Y#@i!gClp*;4gMTd%n7BAbuG4xpjudNKqb3jBPG zKY1tX2_uG{T4g4;q~H@HaGl( z16&FA`E9pv)ba&4Db>6e%GIdGwI%lP6rH;|^PNYi+iA6&8|K&x+bVMeFh`}?l!=C? zUdi<}<41=dyKF*S)eFuhNI(iL?n%hgbd!mFT3&TqvO^^`PqN$0=4W4Cey%sp9!JC` zDE~89wp!qq&S-MEz+bAu0!{&`GGBhu&&)tPsEE`Pr^SOGI<0%dEze9Yzex?}t&#%& zbqTNf-%#O7qRqBza@H2R-x>??a~~=$Rk=a?plXYLhlJ|v#*7aYDzo@y;ncMz@JBWM zUEPRV|1kYDJ3PxvIhXIQ;Ahwbx-@;+E{6kAV9nMN9Z$joUpzCD4?Oxj7jMcCzU=MIl?Iv=Pi}C zb@J?mRM$=i0P>tKjaJ-i1;8)?H8GWyJwBm7ry8A{FsX}-DD7K(Go66740o&TW(r6$ z5Y&%R-hmm-Oik9TCjhmkBk;(z-TpRu4jVw8zoSyW*CdK9xV`pQVl$G!7Bp4op3pqJ$WUxFAlh-9-;j8!&*aP{T@;+CO}Oik?D(%O5g+!(jt zH*n@tu;QNI$2;XXyAhtDB5pD}rhBGm$)T^l`31u`4+#UdotUoUywlw=g+g;%WTA}s z_7}G;toK!plSYVT6F;KZ2;0b&9n3tPP;kOc;1~}0zmmM zJQj%Zi`-c7ty;Yu?*! zyfqIu&x{TBOy*D$;> z!q>B(e}7M_Bd=}S%q(ZR!9LJ1Vmh6H2#{k|6uYGecBH0=hIea$pdSPLYg>k>_Js@y z2YpX1m|gy^X4--2Y{N%VoHj%UF|c&jC@f6=SGN)J=l895q73S@49j8}J)f}!mK}L1 z+s@TKAnBJd5*YbucQ?!!W@r-vD{)Prw!1;WSAh{XGwfIP1}4P9uEAG4y)V<8bSsy; zL{+I5vH}Sm-knBe?Aao;!A*4-L-p~pqbPLg%vqj!qiK3)BUWAB@S3E#RZf}qYUIo- zUGV@1xVQf1g_6jPzj!>W^{*IWI%kXqDIWB=9yRe6=4YGku)>Yw%RNE0bF-yq>or}q zKa_-`jWyC%vz|n`rC*1L1!gmQV>6+udJ;@F~mnz&eV7WecU8uTDy1EP>Nmru`d_r(}>dD}Ee^FU`gnqK2)zaOxj7GCfBcA-ilD~uZ# zN`K5DC<)Oqy`6(l+y3MXgDgSRRU*|y8j@-YCh<}sLr38Hhvc0c4U)b7Akav=S#2a{ zt^Pc+s56DA?$c8qtJ<0};?g>h^}NjkKR1?)2+%vgE=fh8=)R3{U!r7E0iI-nFYy4b zUUNOJud!mA`%{`87rlAf%5mYRq^j zq}t?|s#V14ezX-C7K&L=1o(nDSceMNi3*GEO%KolQ>QAn^7;&VCvd(ZR#04-XAyZ`_I literal 5242 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SHR.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SHR.png index 386b94cffcf940ebbe4f57c251110ef0077c5d36..5f9c0562d37ee5ee3a0e512e15dcc1eaf0a199da 100644 GIT binary patch literal 3991 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 a%G~Q%`=EAWrk%zqjFGEcsPH~tCDB8Q*= literal 5240 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 QEfFftPVSC%4*s|P4DFIOy8r+H literal 4152 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SSTORE.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SSTORE.png index fa07fbf2d95bc18f90a582adf2a362a5a98d604f..c252bde0af385e700ca6e34b56d9a518668e4e62 100644 GIT binary patch literal 3000 zcmdT`XIPV27QUf`CS^om6am*6%F>4tbburXRt6JRia-z)93_MzkrKfqhzz0>8Hxx3 z0Ym{Y(h_2NXrIJxP3i$4b=Z zPLm!*V(P7$Il|Do=6e3et56F7MiUK#8gUUVK`#=BLUx}VP0$e$ z+67rEnkqO+P8=&36M_jYg5LMPy=Wnn3nTQIbaGJx%m(f;=*HBtxy;RnTz13TC(8^v zdVQ;=i88armxZQS_5)0n`e{t^eLZ(W+{JKKJWGBq)W0qBh^Et~68{3buXv>pzW#%u|zz$62D6JN!PrDV?Nb)uBiWZ#u> zu6Ne%Hzx7+>88(UZpf;?;QeNkVJ1&oIO3!lq+228boYx;iDDUHX=nCa&fJ0h+QxLm z6&dyhuN875%DaH-7FKKR)5qwm$!GN}V-Ahs$7~JQD{7M!LeXaBOSe1WO{^)~5;ood zG3lXspiw?q^|>qDfb*IXRxuqQ{we#&g6cowGbH)7Y09QFVvPC{LMoR(g(NIhb{DA3 zUYxMNY~lvqB!qM=|80Q#U&wR;59hr43w$!_WCiqlS)8zMYYs^jcHp6?;ih)0yZ1vZ zQ^0$G(VeQ${J%#+*8H3>O~|e%f}ig<7@jBsZRCGe^p6Of-9lu{#UebCyBWI)6{YNf zSz8XWUl&PwSZW8tDy-q$wkkq4TvrVMLr>B6U?{&ZxD#hw!mgHgw#`a$k?SwoIL-_S z5Z4)hpB?41UYYCtS_~+PWA)4TS`&P|*W-C3Dec@w$_r-kH^6hbn)I?z8te*^=zb?j zjCXV+-@L=puR2I#cNM#bDx2APIU0h?k_HVfkYO&f(-6i+E9&=X*#?kqUW4-Yb2!4AOgdTH>!O9XCaMH~qQ zTHd1V3giBLu4I*^rK@M8=Bqp!xzc8g*`~g37ZAvN`V-B#rtHmbz^M>oA6m6=(p844fWn3LGA5$p-RpbpOO{%yyaEV_q$z!kB#+BaQwC5KzKqrVV3X42(?Cl6rx0T0dr_V9rc6sXInJ?ZW@2ZpT>J*e7t!|lAZ?_gB3QXx@5b0WsZu4;h513HkXPkWU~0Ng8q z+eSoRdYqR)^jO~urL_Jq4+D~S5uo|}KanumVc33?Hr5WX2l z_%Pa!FAMnvspu14)8K^ho!PA}S`>4gv5&Q;6>FKo!96lUmrZmN`f zMuRg-g$k}jW!9g-uwqomPEMCYl*k;942*E^OOf*HR?^z%MceZkd|ds=mgS=zu#(1gTBWX>eVL@^8{? zhdm7^N9;oGoy8y+hWB30x|Rxs9t@B%`4B{MsctSxKAdbz%_lr6Ty(#%YdiZCv=S?B zV?SnR2xBVNOAIJu*?E_Xvt&aZ3}N&ioCCP82%7w&`=!dgR7(*pj0p+mJ-R&Fstg!| z7OQccip+XacI`-UHXGYMlG2Z&-;6AqCfht?DYRpMSg9O`$cK* Wb=A#@%nlQQyd6J$(uRJ>^V;uAc{+3e literal 4208 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SUB.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SUB.png index c92598d92433605da0dad0483a878616237119d3..b4c8a7c3299b5f4a09e939feed23e54750447ffe 100644 GIT binary patch literal 3983 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 dZ#Pt-5JtUrU2k}vDyr&%?Jk;r?tn zuG0O=2s^%Lc-VL!MMU6@IMiHcE&8EGl8LGS;J?G+K>>i-10ex`&%Xa%$nr&6YtCgX zmM1y+X>Qock2^yd<)cE^?BF9Q-;UoAA5?Li74YueZ>-1hbT2oMxjPo%Jox2@gh{5R@)1aYo@~-)Q$q>>u(Q8xY zSd15lWY7_LcfRp3A_3C&O7wT`_S*hbw8{Cs_K6o<`Lgb6seyxbH4Wl0M=6H6R(V3z z!T}&}R_vlEeU2ZX0+-7E*zX6Sz@jv~R7Dl(UcgYNQO9{Gy}|coBdvpqV*S z6HV~cqgdCbcRXg#@l%(u-SaeShBZx@jtShb?7M)ejAMXEr(H=dEO?*69I>`V`V5|s zC3%6d?Q4hck?o5Lk3qR2wR~)Bvt{6bCWK_ZYM;R{TeU6VADr!%Y-AEbN&xB`EUFe6 ziNF7=a&1(lhI6{h8QX}~@>tYW#^&6_Em~G*it6G+l^0 z+i?Z#rBP%EuLjfy>`>JnFmgW{_hzsR#CfdDpr+c2fAvxo3vWq#x{%|cNX*$o3pcfr z2B+B`B92Szxg%$;B9djjf+t6LqAvP@fuR;8;(&7$f{9tdlcCQn(BmC9qK@wwM&5{? zrwIQHa?a*^w>AvePJ%RJxmj}*YknUmLe^XB@XchsEp%4E$yqo4K&S>8nd6uBG*+Gu z^dRR`e`1r*=E--adnJ$Xp;!U4dM|UP*V^)uX9crm#aMz2LIjms8Q&Uy$!-sa@ihL{)p+X80h`{gnyddDEfvj|;Rq90S7Iol$oMh|hq z&_SGO@l0w(WK5l3$L-F`vC=C;pT3XSt=SDb<38ozp>K2;-<{Ezqwlz~7ESTgLDZcV z>F^5AuM#E-`*Hd!)fU@iL}>zBBsh`_r}sa1l9s)HF+yWuv5Py#YWcEzk|h}{FfVIN zEWE4dnpC8f#3*H)Dz#idZagDGDbybt-Sgf(1bZQ%lj~IUgYTNU2kgGWqzNJm|Io~z zRDn*CLvUxQhrD1*W5Z>}fHS+W7GkJ8Y24I*Tz^|-*b~*;_LW%TgSXf|HE!dMOetzj z;9Q3lRAp-TK3v`(>ria7g73b_eLwzQb!adkV%ll}IbMgI`;;TIY+z^={9K#F-UI$9 z4Er^l?!<}_YX38g#P&g;}!&G6^WPkef%Y?*bUMk^^h>M@hu z3SsL0VnQGG&RxJ~ua5O|n9#d=!B1`j^an(aAvO)Yd*5{Z11n_FIelv*+G!{Oyg&}? z%z1mewIprcJHGrRr=f?*OcqJuLN&apXiwJoZ%5ic$J{K`beLPVs`w@VuNVf#UIiez iRWL!obzQIjQ|xM!8%mNvWfu(q#R~8Z^=Ug1U;Ga}m7{I| literal 3356 zcmdT{c~nzZ8h;5(AhJy@2(m@3>`;)pumn&L6e!59>`D=kRRP&FJOQh%Y|7%sCN%6J z2!;d@g5p3$Bos72f`qsL0wG{XV!$Nxn9iTm(>Z76%sKt%{@(Y_ckj3T?)~ol>4ck; zJaQ)z008;p#~eHXK++ESel8;oje8WGTmeAt-EoJ*-l=7*H%s|tBo*n=3&s4*_dLP* z+Or1ACIgcoapIQ$&tosKdSSzZ(w-w0J(ssJP*kZ}j#5aj6o6{hhwSCmOE&L8K6?6P(g6a|U()^Z&%HeEgV0MR~a2}`m@RpSCeZNzgl0(_+!E(xGou|Jcs*A83C{-8rc z4?kB>EE4o0-}X_AN?VfX+IOB)`@vn+DfbzR?^rubcPOJwcj=}LN8;YlwXetF^XQ1{ z=bB=p`KG#7Hc-I-8S%=w7(7XEUp&lV$F8%&M04Wz0{(#wo>?X*^V63M^~;-g$O79m zQTzXi=(jJ7d|W9Zc|qh`Nrs{T4d0j58RvYy%tu-u9uchgfC0Z0Kgz7d3MGK{<57zn z2x1?k2CV%#KmP3w++s!5?cy=Ac*KH1(#d_>{_;{fv68^Z6hS0kbv3X9KVpjy^ylFi z(0&h70=JAYp+euGr6dnhaYhWXmm0LQ-<^QLR~0F1kjJEdodR)J?*8i8DWWQ~+v6YC zmx~tCO}wzo8i6 z&st_9S}rE5BW6jZ!X`+?A9CavOWkPXv7owEvOOs+fY?)ZYLF7;`^qoJsz5sD(#Mm^+Y^dMf>7>({2F?14H+7{I zSo0waGJ()!FLl|vZ@)Jv*}-2OrDZs}Xgm0G)<4m>F>6W_Y(Z!GQ#E56Wz2>vXeVBZ zRh{izhdlFw?YpVPzQ@?+cCHrvRas2W)!Jg1q;YXaO%we-Pd;H<@AACflI-f&26kD7 z4a@b$1u+8T6pg#wX+4?vcf**86?WVc46s^hwc!AnCrF~UPg(*z86{_hIj8L2u^YgN6Ef6VQS5)Zp>B7i&B zkiT~c1iR}Q8 zYNCwltEH?mIShC6p>)UwA0p79XkBt6T(umzBlG}P8LVm0Y*Kv(l-0m*mP1~%Yl7C062m9^5U=+I?g?}3k$X%c;k8GK)D2ur5ObM;W{_>WhIQkeLN76d zH_prTsY;^0gfAg4jR^1)c_vr)?A0}laCciFS-RQQ$Z18}=Z;Yh9M$eQ;AGG2j^hOLf{idGq0K zLFwKGjm;9fS9b>fT%s}Q;ubieP+<{)p!PYF>DYv2ecqAlW3Ue;@gB4di)y|lu|ix# zlW+Zg@5ul(u`X62*G)?1DAm9!-<3|&^c!Td7S9zK<{juGi2F(B3;}Y9Z&nccVtr6> z6So;xXoySrPDR2Is`p&}^akAeg&uRzm+(@r6870^327IWAD;2x*PBQu@V9#4!3}K2 zX-#XUzk369G2AdF8E-j!l>4OZ9%~=%AuuZglQ}AL~uJ6Ld zCBuU8Vy&u`*b|v;K|pB(aC&@9*&8v^$^9%M<9!Jy2b5Xs!~60d&k#RcaLH?{ENH8+ z%k=Zf$~$ntvMb2@I&iZAV1Aq7E}Ge(v&m{vU|*M^w7qfZ+Iy}B^E4(!EulH2-Vj7aMBn z`5#XC;pUeJGiUiNjju5SIM(vw7}e-Mqdp2=ZJ3?B!c zR^KYBs`0bekQ?;dX}5l__f=8pc>0t(PO`HpT~alKVs<39K5&y?v+fd&??Q9Xs!Omv z3ESkFI$F+5JhsQM;;*E|miS9>Ce;r%m$z2lou6T71kHIpEik8tvpb%(bEHWDLl*An zAy<9jLgC$#iJS|>TaZQd*CH4=^~GFtw?pX+O;Mq*$2$!G682I6*sKacu}BI4cS1Ml zxV;MiFpG@4^2hgVt*nht299&JLUVJLHV~?%KOeJ>fDXN!ITck1{=zr#|H(5!s91v6 Ws#^Zh+a5{=aQvv7L(7rStbYK=HBO`e diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ULOG.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ULOG.png index 5a872ebc8931fee683cdeef1e13c30c147c7a4c1..c934434f80c88478f8bd0008447e47110cc8867d 100644 GIT binary patch literal 2882 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 IzV*5MceQHY`v3p{ diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/VERSION.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/VERSION.png index b96b8ee5a83780fe9ec7f82f7924db2524130752..43cf46bb77d172076560dc251601624ec6955827 100644 GIT binary patch literal 2315 zcmdUxX;c$d7RO%}3IT))t))na4q{MND^wutM?}bB7b8Rhs0@l@#Il7g22nbK7OH?0 z0izPYDu`i~8WIpigh)(MDo7G2WeH0NO9+Gjji2Vj*fTTd%!l^N@4R!*yZ4^|eed1- zt_JvdZP7H;1ORODK723;02oEJ?$&^+xGwH-06>H5ebD^~sdQHG{>Ht-pQ!~D7jJGx zkGB)EzR&GGck}95=fq>hClbFIO4O@BW#5GXO2I{m5CQ->7ia>vf-)xi%LrKEuZh*S7!Fa*1vMUrpq(5|ACUdzPR$E80zTrL?shy+KXBiuaO<2 zguDkY`anlzv=`!DrxbVKi$nNQ&zesHDEP_nC+`!=mom;T)ZuwIt42&$YT2*+w`50= zn&~Aj6a>D+(%1U(_Z9MPVtrzzAe5h^exxP_g_V|KEl=DW0C%@NAtoU<*6(AMC-a*y zRKUr}3%Qkt^$zR(bm*b@2cC2Q-T%zKLm73akhjS;?Pn8S4cQr+ygJ6zY&#pbVQb_D z0jC4sPf(zMV+8pOP|QAp>Ty^#-Yf3%>hrDRx?aVuMsF3$GcF%owtZyx$0GbE+frWJ z-1Wt*(NbEIJi4^kKIXw}#+T^*Z$e|!B3^c1<2nAH@~8w>lMS+el8@xK&CLnb0HvYQ zWaz`;B1$%NhY1-Xr6>|8sr}pIiiRQJpL(kD{5MGLD9djdTuag-8p45573`00^TT1D z5LdwLCEzxmuwNJ9o2^r1dF(dAD#3nt05dqJZzeeD)&m(57}8)RJo$PR$+@}q33!xikrw0~%-qHPLC*L90eaMLf6 z>}oLi?Yh2jsVat{Aoa*@HWa;tmybNkQoOR))N;zxIlU;cWIO6hZS0Kr#7(U{l~@)^ zUfDOG4`MYsSz>qqXq8BoR=-l(k?XRNus6|&wiG!*axzo9d?H8L+!&NmS|MpYL^42f zF4KB4UiZa^G5xBgsoVve=t3ZW<>}z(tR62~>TSU>8AWs#R+1z&pZAf3H_+#Qsdh{& zTz5nnNNwcCd>>6E6v@diG>%zqE?xuU7^H5ns^lZSaKg~m?&t+C`FYxT+nceMZ4E5Mt$>Ze#&h+ z!41;FQG{R26ji81HWuksk3wpU5-?lqMA9e3?pPs?*n5$ zM;BDHO33h$RdGXnSUZfr`mlrGv%%4SVS&2@wMpf%+*6V21iu&7Wjxu*;JIPp(|as7f00_Qy*W{ z83`7yEs`xcj#z0(+UM+!X;GhZNP?*V>b<7ZD@&XZ+jn6~#!gDoWRK0o^?1L&h}K^j zFua)3bZ(h9*{ORY_z=wR!f&i}Vdk>}uk%hJz^n>3_-x+Prz}=0Aza?MOc=q?Ps4mU zkeWg1F9Hm-Au7x&Y!f;>!7!ofyP;T~)2w$hs9IlKw#vfNOQ*S5IR(XL*0{Xc>Po_h z40D3IG4xaL4*`0(FK*XwPtZbpK8@FN3hK^G>0d}#-BW>6Z|g{ISXc-6i)hUq@JY(i za||7Fx<{|j=1fMlY^%$!d!4S#z?aKGZ` zU=yQ0Ft1jMze6s|617wewO@yG3=4<4Ca0kT5~i3*PPWa*ks>AbWb7reM4CEOncT3{ zxD&5FK+j?sfBVM!aeF&&YW2dnF0hPUU&N~a!F2dnZ?8rVy@{Ta(Tf)h7pdd-@%$^@zOmJ9}oFKL7v# literal 3362 zcmdT{YgCfi8vX!pX$0k1mWr-sx{M=su`=&umSb7jMJ+8g86zccsi`1{so9y*azwI5 z!NxR?hMM99mBMbOrCsSUL4PWG)aX6<{bbBEC z5=atKfa7nG)wm3n%=5w7Nbk7etjpNLXo_(Mt;DNv$5H>4!xuOlg zjyO{*cql>yIqM{DUR}@SGSW~lgU7V^Q%iAiLcrc03fciZ%sVTVjG-4^HQG`8CzMAO`|W z>JdnRk4QLv`rw5mkgb8g(5;(v$AN-im0fB`ig zp`%LOdhX(|ssHfmEi@9f3v;Qjk~N)n;)eBC-`8{`5$YMW;$$@(046;xF%(HLb;sjO zrWlkV7D-v$>>XQMC$B#~u2smi5dL`e8P2Fegpq||FX8di zK8?$?ienpg??7NR-Cx#!w9&CtI_iHmOlk|<6Pegj<>kr*3R%md#S9J&>rjm}??bIm z3`tz~dbK0pe`3cnZsK;8FUb)T2s-kk#KfwidG5D6TC$Ppx(Fh>I*akTgi6iUVF`Ww z$UW;qc*Ob(x#N#kzW7-^0>tx;uI3&EP_hce@{V5B}b)G+^K^ zjb3ciPSyv*^4evN;AiMx=gLtiKLT&0OE;V5$Z3vs!aF{hC6X)XQF}7wHLOD<^=EXT ziB5twNIa%1@UsS7V!dICC^AlOlpx^u(z)w(rUG7TAqwLhVzRg4JxZ|pY zLBg7yQBQnS_S5k=nrz`{bwI69*W$M(~v5QoG z9i(&2j?8v7M?}%}krZ7K!D|zMeccM1DTZpjeJ9s>Q~`xv-4AYh4g8#OUK?rgM??T> zlq84@zy7(*g4-}N1uQJV9RE;gz&o9+b@}Uf{~%DQ|DqOU6h3Iabd?>ddFiRr1@bcV zf3H+V7Mm)~u>s$&lQKd>H30YAnM$%Ze0*r%%1d;8Qy_cj1LFZ<3fC=)yN{No0A zf;~j9Twbw_<=DXf1p=^+Z58&G@e?>%PNgd8$j&fo)ze}}K)5Hrx$9*@($O(lvZefdFIqwteL}dbLy9agO z_(0O%ew)RaIFFBN*d{d;oeYiZKGhP8_V?ZCAI?)u@T_HRqUFZoculY=Y_kqTFS)l7 z%7{@9#TD&;_dGi%_tu6DMbwPy2x<#9^m6o!ER%l$f61U&tlB8m-dQ0;ul0X@!$(*k zi4i{AyPf7cR73NT3Et3w_~n$UPzh$%?4s3zMzQ48VBx2j{+iTGx;Lz*G%f_sgy)Bv z<03Lk@6&xtM9Qn{UYryyL+f7mE%TLsx^K(7bvxS`cy@$f^{{Bg=a;=B)@Vy3Zy{uP z0^B;o%&yAZF8Y*1!l(RAF6jls_R0b4bnKz~t6WXZyyQt&UI}@tnLTXzJfk~;5^mWt z8pd`Cj|qyk#O(ZuSv~ZURh#Pr$G|z|2MBAzH4<+#Shw%kaWZSgz4(w*lIbueE;Rj3 zmwu~*r4gh8ltCOWf)slHCGADZ$lfI`b!Fju=azCO!pvV}YSX0YYjKvQkiA9FwDq*{ z^tj2i2lOLMLAy`yXh2-vmC@9Yb)pa!7Q$T(MK0TtM-k_a8y4l~DachL0%`R(m#$Vb zQ?}v}r~yKVV(Gb6l(>kL+e;$P+;o>t)b`k5_nES7Ns^UU{UXczw!T-_vQA|=-w`ma zxnr{$ST_eg8eeC?-D+fU&ad&}DA%rjrC6g7l&yI&(si)XYUt${32&_^JuH_U78;(d z^j+6`7F$#!+LNw_ys3{=S1CSBFdr_ce+_`8Z9q7#9ob@BcK_;z%3(c(tO?8apH`09 z$aJ1X%a0E>uDCbDUK_7)@(qk5mpq#KOn|&Opskl->U0(jUrDPNXQ100?F0KyG~I3Z zgozAajiU+hPJxxPJL==TnKL#K;S4`UM8_8nqsvC9cs#(^)eiJ_$@m5QR7{rJj8&a{(p z4&>V?gQewl6~Q-}cax=&mHqz0jj7A?x_th=ee<Yrt^pR@m&&D`7VOcoa3jJLru4Z>gJ&HcaoF-V4Wc5Em_aBR>Z P8Gy&0gKibBK^Ol4Y932f diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/XOR.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/XOR.png index d6d4e80c525500ff7a75b8ec8cfedf4960d026b5..0cc2d832ec3b6f042a090a35c9ff920f81c7c0d1 100644 GIT binary patch literal 4018 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 literal 5264 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 diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSetMarkdownGen.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSetMarkdownGen.js index 310efe12f20b..154088fc6416 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSetMarkdownGen.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSetMarkdownGen.js @@ -105,7 +105,7 @@ function markdownInstructionSetSection(pathToGenDir) { } const bitFormatPath = `./images/bit-formats/${name.replace(/`/g, '')}.png`; if (fs.existsSync(`${pathToGenDir}/${bitFormatPath}`)) { - subsection += `\n![](${bitFormatPath})`; + subsection += `\n[![](${bitFormatPath})](${bitFormatPath})`; } markdown += `\n${subsection}\n`; } From a691f75163db29170ab59f4d4e274054e7563c04 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 21:42:01 +0000 Subject: [PATCH 04/10] link fix and new link --- yellow-paper/docs/public-vm/gen/_InstructionSet.mdx | 4 ++-- yellow-paper/src/preprocess/InstructionSet/InstructionSet.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx index f5eec62c00e0..c269b3457c35 100644 --- a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx +++ b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx @@ -682,7 +682,7 @@ Set a memory word from a constant in the bytecode. - **Category**: memory - **Flags**: - - **in-tag**: The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET. + - **in-tag**: The [type/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET. - **Args**: - **const**: a constant value from the bytecode to store in memory (any type except `field`) - **dstOffset**: memory offset specifying where to store the constant @@ -738,7 +738,7 @@ Type cast - **aOffset**: memory offset of word to cast - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = cast(M[aOffset])` -- **Details**: Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. +- **Details**: Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. See [here](./tagged-memory#cast-and-tag-conversions) for more details. - **Tag updates**: `T[dstOffset] = dst-tag` - **Bit-size**: 72 diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js index c62d731c4dd0..e74c2f67b2d2 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js @@ -255,7 +255,7 @@ const INSTRUCTION_SET_RAW = [ "Name": "`SET`", "Category": "memory", "Flags": [ - {"name": "in-tag", "description": "The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET."}, + {"name": "in-tag", "description": "The [type/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET."}, ], "#memreads": "0", "#memwrites": "1", @@ -320,7 +320,7 @@ const INSTRUCTION_SET_RAW = [ ], "Expression": "`M[dstOffset] = cast(M[aOffset])`", "Summary": "Type cast", - "Details": "Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type.", + "Details": "Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. See [here](./tagged-memory#cast-and-tag-conversions) for more details.", "Tag checks": "", "Tag updates": "`T[dstOffset] = dst-tag`", }, From 7a086087868fd5dca8359292ce4622873cebffd1 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 21:48:31 +0000 Subject: [PATCH 05/10] move tagged memory into state model doc --- .../docs/public-vm/gen/_InstructionSet.mdx | 30 ++-- yellow-paper/docs/public-vm/state-model.md | 132 +++++++++++++++++- yellow-paper/docs/public-vm/tagged-memory.md | 127 ----------------- .../InstructionSet/InstructionSet.js | 8 +- 4 files changed, 149 insertions(+), 148 deletions(-) delete mode 100644 yellow-paper/docs/public-vm/tagged-memory.md diff --git a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx index c269b3457c35..5d223839401c 100644 --- a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx +++ b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx @@ -455,7 +455,7 @@ Addition (a + b) - **Category**: arithmetic - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -474,7 +474,7 @@ Subtraction (a - b) - **Category**: arithmetic - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -493,7 +493,7 @@ Unsigned division (a / b) - **Category**: arithmetic - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -512,7 +512,7 @@ Equality check (a == b) - **Category**: conditional - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -531,7 +531,7 @@ Less-than check (a < b) - **Category**: conditional - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -550,7 +550,7 @@ Less-than-or-equals check (a <= b) - **Category**: conditional - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -569,7 +569,7 @@ Bitwise AND (a & b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -588,7 +588,7 @@ Bitwise OR (a | b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -607,7 +607,7 @@ Bitwise XOR (a ^ b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -626,7 +626,7 @@ Bitwise NOT (inversion) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's input - **dstOffset**: memory offset specifying where to store operation's result @@ -644,7 +644,7 @@ Bitwise leftward shift (a << b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -663,7 +663,7 @@ Bitwise rightward shift (a >> b) - **Category**: bitwise - **Flags**: - - **in-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. + - **in-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. - **Args**: - **aOffset**: memory offset of the operation's left input - **bOffset**: memory offset of the operation's right input @@ -682,7 +682,7 @@ Set a memory word from a constant in the bytecode. - **Category**: memory - **Flags**: - - **in-tag**: The [type/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET. + - **in-tag**: The [type/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET. - **Args**: - **const**: a constant value from the bytecode to store in memory (any type except `field`) - **dstOffset**: memory offset specifying where to store the constant @@ -733,12 +733,12 @@ Type cast - **Category**: types - **Flags**: - - **dst-tag**: The [tag/size](./tagged-memory#tags-and-tagged-memory) to tag the destination with but not to check inputs against. + - **dst-tag**: The [tag/size](./state-model#tags-and-tagged-memory) to tag the destination with but not to check inputs against. - **Args**: - **aOffset**: memory offset of word to cast - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = cast(M[aOffset])` -- **Details**: Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. See [here](./tagged-memory#cast-and-tag-conversions) for more details. +- **Details**: Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. See [here](./state-model#cast-and-tag-conversions) for more details. - **Tag updates**: `T[dstOffset] = dst-tag` - **Bit-size**: 72 diff --git a/yellow-paper/docs/public-vm/state-model.md b/yellow-paper/docs/public-vm/state-model.md index 0ea7fbccf289..50258a5b1c0e 100644 --- a/yellow-paper/docs/public-vm/state-model.md +++ b/yellow-paper/docs/public-vm/state-model.md @@ -1,8 +1,8 @@ -# The Aztec VM State Model +# State Model The goal of this note is to describe the VM state model and to specify "internal" VM abstractions that can be mapped to circuit designs. -# A memory-only state model +## A memory-only state model The AVM possesses three distinct data regions, accessed via distinct VM instructions: memory, calldata and returndata @@ -46,3 +46,131 @@ Indirect memory addressing is required in order to support read/writes into dyna Memory addresses must be tagged to be a `u32` type. See [here](./tagged-memory) for more information on types and the VM's tagged memory model. + +## Types and Tagged Memory + +### Terminology/legend +- `M[X]`: main memory cell at offset `X` +- `tag`: a value referring to a memory cell's type (its maximum potential value) +- `T[X]`: the tag associated with memory cell at offset `X` +- `in-tag`: an instruction's tag to check input operands against. Present for many but not all instructions. +- `dst-tag`: the target type of a `CAST` instruction, also used to tag the destination memory cell +- `ADD`: shorthand for an `ADD` instruction with `in-tag = X` +- `ADD aOffset bOffset dstOffset`: an full `ADD` instruction with `in-tag = X`. See [here](./InstructionSet#isa-section-add) for more details. +- `CAST`: a `CAST` instruction with `dst-tag`: `X`. `CAST` is the only instruction with a `dst-tag`. See [here](./InstructionSet#isa-section-cast) for more details. + +### Tags and tagged memory + +A `tag` refers to the maximum potential value of a cell of main memory. The following tags are supported: + +| tag value | maximum memory cell value | shorthand | +| --------- | ------------------------- | ------------- | +| 0 | 0 | uninitialized | +| 1 | $2^8 - 1$ | `u8` | +| 2 | $2^{16} - 1$ | `u16` | +| 3 | $2^{24} - 1$ | `u24` | +| 4 | $2^{32} - 1$ | `u32` | +| 5 | $2^{64} - 1$ | `u64` | +| 6 | $2^{128} - 1$ | `u128` | +| 7 | $p - 1$ | `field` | + +> Note: $p$ describes the modulus of the finite field that the AVM circuit is defined over (i.e. number of points on the BN254 curve). +> Note: `u24` is used for offsets into the VM's 24-bit addressable main memory + +The purpose of a tag is to inform the VM of the maximum possible length of an operand value that has been loaded from memory. + +#### Checking input operand tags + +Many AVM instructions explicitly operate over range-constrained input parameters (e.g. `ADD`). The maximum allowable value for an instruction's input parameters is defined via an `in-tag` (instruction/input tag). Two potential scenarios result: + +1. A VM instruction's tag value matches the input parameter tag values +2. A VM instruction's tag value does _not_ match the input parameter tag values + +If case 2 is triggered, an error flag is raised and the current call's execution reverts. + +#### Writing into memory + +It is required that all VM instructions that write into main memory explicitly define the tag of the destination value and ensure the value is appropriately constrained to be consistent with the assigned tag. You can see an instruction's "**Tag updates**" in its section of the instruction set document (see [here for `ADD`](./InstructionSet#isa-section-add) and [here for `CAST`](./InstructionSet#isa-section-cast)). + +#### Standard tagging example: `ADD` + +``` +# ADD aOffset bOffset dstOffset +assert T[aOffset] == T[bOffset] == u32 // check inputs against in-tag, revert on mismatch +T[dstOffset] = u32 // tag destination with in-tag +M[dstOffset] = M[aOffset] + M[bOffset] // perform the addition +``` + +#### `MOV` and tag preservation + +The `MOV` instruction copies data from one memory cell to another, preserving tags. In other words, the destination cell's tag will adopt the value of the source: +``` +# MOV srcOffset dstOffset +T[dstOffset] = T[srcOffset] // preserve tag +M[dstOffset] = M[srcOffset] // perform the move +``` + +Note that `MOV` does not have an `in-tag` and therefore does not need to make any assertions regarding the source memory cell's type. + +#### `CAST` and tag conversions + +The only VM instruction that can be used to cast between tags is `CAST`. Two potential scenarios result: + +1. The destination tag describes a maximum value that is _less than_ the source tag +2. The destination tag describes a maximum value that is _greater than or equal to_ the source tag + +For Case 1, range constraints must be applied to ensure the destination value is consistent with the source value after tag truncations have been applied. + +Case 2 is trivial as no additional consistency checks must be performed between source and destination values. + +``` +# CAST srcOffset dstOffset +T[dstOffset] = u64 // tag destination with dst-tag +M[dstOffset] = cast(M[srcOffset]) // perform cast +``` + +#### Indirect `MOV` and extra tag checks + +A `MOV` instruction may flag its source and/or destination offsets as "indirect". An indirect memory access performs `M[M[offset]]` instead of the standard `M[offset]`. Memory offsets must be `u24`s since main memory is a 24-bit addressable space, and so indirect memory accesses include additional checks. + +Additional checks for a `MOV` with an indirect source offset: +``` +# MOV srcOffset dstOffset // with indirect source +assert T[srcOffset] == u24 // enforce that `M[srcOffset]` is itself a valid memory offset +T[dstOffset] = T[T[srcOffset]] // tag destination to match indirect source tag +M[dstOffset] = M[M[srcOffset]] // perform move from indirect source +``` + +Additional checks for a `MOV` with an indirect destination offset: +``` +# MOV srcOffset dstOffset // with indirect destination +assert T[dstOffset] == u24 // enforce that `M[dstOffset]` is itself a valid memory offset +T[T[dstOffset]] = T[srcOffset] // tag indirect destination to match source tag +M[M[dstOffset]] = M[srcOffset] // perform move to indirect destination +``` + +Additional checks for a `MOV` with both indirect source and destination offsets: +``` +# MOV srcOffset dstOffset // with indirect source and destination +assert T[srcOffset] == T[dstOffset] == u24 // enforce that `M[*Offset]` are valid memory offsets +T[T[dstOffset]] = T[T[srcOffset]] // tag indirect destination to match indirect source tag +M[M[dstOffset]] = M[M[srcOffset]] // perform move to indirect destination +``` + +#### Calldata/returndata and tag conversions + +All elements in calldata/returndata are implicitly tagged as field elements (i.e. maximum value is $p - 1$). To perform a tag conversion, calldata/returndata must be copied into main memory (via [`CALLDATACOPY`](./InstructionSet#isa-section-calldatacopy) or [`RETURN`'s `offset` and `size`](./InstructionSet#isa-section-return)), followed by an appropriate `CAST` instruction. +``` +# Copy calldata to memory and cast a word to u64 +CALLDATACOPY cdOffset size offsetA // copy calldata to memory at offsetA +CAST offsetA dstOffset // cast first copied word to a u64 +``` +This would perform the following: +``` +# CALLDATACOPY cdOffset size offsetA +T[offsetA:offsetA+size] = field // CALLDATACOPY assigns the field tag +M[offsetA:offsetA+size] = calldata[cdOffset:cdOffset+size] // copy calldata to memory +# CAST offsetA dstOffset +T[offsetA] = u64 // CAST assigns a new tag +M[dstOffset] = cast(offsetA) // perform the cast operation +``` \ No newline at end of file diff --git a/yellow-paper/docs/public-vm/tagged-memory.md b/yellow-paper/docs/public-vm/tagged-memory.md deleted file mode 100644 index c984a553c652..000000000000 --- a/yellow-paper/docs/public-vm/tagged-memory.md +++ /dev/null @@ -1,127 +0,0 @@ -# Types and Tagged Memory - -## Terminology/legend -- `M[X]`: main memory cell at offset `X` -- `tag`: a value referring to a memory cell's type (its maximum potential value) -- `T[X]`: the tag associated with memory cell at offset `X` -- `in-tag`: an instruction's tag to check input operands against. Present for many but not all instructions. -- `dst-tag`: the target type of a `CAST` instruction, also used to tag the destination memory cell -- `ADD`: shorthand for an `ADD` instruction with `in-tag = X` -- `ADD aOffset bOffset dstOffset`: an full `ADD` instruction with `in-tag = X`. See [here](./InstructionSet#isa-section-add) for more details. -- `CAST`: a `CAST` instruction with `dst-tag`: `X`. `CAST` is the only instruction with a `dst-tag`. See [here](./InstructionSet#isa-section-cast) for more details. - -## Tags and tagged memory - -A `tag` refers to the maximum potential value of a cell of main memory. The following tags are supported: - -| tag value | maximum memory cell value | shorthand | -| --------- | ------------------------- | ------------- | -| 0 | 0 | uninitialized | -| 1 | $2^8 - 1$ | `u8` | -| 2 | $2^{16} - 1$ | `u16` | -| 3 | $2^{24} - 1$ | `u24` | -| 4 | $2^{32} - 1$ | `u32` | -| 5 | $2^{64} - 1$ | `u64` | -| 6 | $2^{128} - 1$ | `u128` | -| 7 | $p - 1$ | `field` | - -> Note: $p$ describes the modulus of the finite field that the AVM circuit is defined over (i.e. number of points on the BN254 curve). -> Note: `u24` is used for offsets into the VM's 24-bit addressable main memory - -The purpose of a tag is to inform the VM of the maximum possible length of an operand value that has been loaded from memory. - -### Checking input operand tags - -Many AVM instructions explicitly operate over range-constrained input parameters (e.g. `ADD`). The maximum allowable value for an instruction's input parameters is defined via an `in-tag` (instruction/input tag). Two potential scenarios result: - -1. A VM instruction's tag value matches the input parameter tag values -2. A VM instruction's tag value does _not_ match the input parameter tag values - -If case 2 is triggered, an error flag is raised and the current call's execution reverts. - -### Writing into memory - -It is required that all VM instructions that write into main memory explicitly define the tag of the destination value and ensure the value is appropriately constrained to be consistent with the assigned tag. You can see an instruction's "**Tag updates**" in its section of the instruction set document (see [here for `ADD`](./InstructionSet#isa-section-add) and [here for `CAST`](./InstructionSet#isa-section-cast)). - -### Standard tagging example: `ADD` - -``` -# ADD aOffset bOffset dstOffset -assert T[aOffset] == T[bOffset] == u32 // check inputs against in-tag, revert on mismatch -T[dstOffset] = u32 // tag destination with in-tag -M[dstOffset] = M[aOffset] + M[bOffset] // perform the addition -``` - -### `MOV` and tag preservation - -The `MOV` instruction copies data from one memory cell to another, preserving tags. In other words, the destination cell's tag will adopt the value of the source: -``` -# MOV srcOffset dstOffset -T[dstOffset] = T[srcOffset] // preserve tag -M[dstOffset] = M[srcOffset] // perform the move -``` - -Note that `MOV` does not have an `in-tag` and therefore does not need to make any assertions regarding the source memory cell's type. - -### `CAST` and tag conversions - -The only VM instruction that can be used to cast between tags is `CAST`. Two potential scenarios result: - -1. The destination tag describes a maximum value that is _less than_ the source tag -2. The destination tag describes a maximum value that is _greater than or equal to_ the source tag - -For Case 1, range constraints must be applied to ensure the destination value is consistent with the source value after tag truncations have been applied. - -Case 2 is trivial as no additional consistency checks must be performed between source and destination values. - -``` -# CAST srcOffset dstOffset -T[dstOffset] = u64 // tag destination with dst-tag -M[dstOffset] = cast(M[srcOffset]) // perform cast -``` - -### Indirect `MOV` and extra tag checks - -A `MOV` instruction may flag its source and/or destination offsets as "indirect". An indirect memory access performs `M[M[offset]]` instead of the standard `M[offset]`. Memory offsets must be `u24`s since main memory is a 24-bit addressable space, and so indirect memory accesses include additional checks. - -Additional checks for a `MOV` with an indirect source offset: -``` -# MOV srcOffset dstOffset // with indirect source -assert T[srcOffset] == u24 // enforce that `M[srcOffset]` is itself a valid memory offset -T[dstOffset] = T[T[srcOffset]] // tag destination to match indirect source tag -M[dstOffset] = M[M[srcOffset]] // perform move from indirect source -``` - -Additional checks for a `MOV` with an indirect destination offset: -``` -# MOV srcOffset dstOffset // with indirect destination -assert T[dstOffset] == u24 // enforce that `M[dstOffset]` is itself a valid memory offset -T[T[dstOffset]] = T[srcOffset] // tag indirect destination to match source tag -M[M[dstOffset]] = M[srcOffset] // perform move to indirect destination -``` - -Additional checks for a `MOV` with both indirect source and destination offsets: -``` -# MOV srcOffset dstOffset // with indirect source and destination -assert T[srcOffset] == T[dstOffset] == u24 // enforce that `M[*Offset]` are valid memory offsets -T[T[dstOffset]] = T[T[srcOffset]] // tag indirect destination to match indirect source tag -M[M[dstOffset]] = M[M[srcOffset]] // perform move to indirect destination -``` - -### Calldata/returndata and tag conversions - -All elements in calldata/returndata are implicitly tagged as field elements (i.e. maximum value is $p - 1$). To perform a tag conversion, calldata/returndata must be copied into main memory (via [`CALLDATACOPY`](./InstructionSet#isa-section-calldatacopy) or [`RETURN`'s `offset` and `size`](./InstructionSet#isa-section-return)), followed by an appropriate `CAST` instruction. -``` -# Copy calldata to memory and cast a word to u64 -CALLDATACOPY cdOffset size offsetA // copy calldata to memory at offsetA -CAST offsetA dstOffset // cast first copied word to a u64 -``` -This would perform the following: -``` -# CALLDATACOPY cdOffset size offsetA -T[offsetA:offsetA+size] = field // CALLDATACOPY assigns the field tag -M[offsetA:offsetA+size] = calldata[cdOffset:cdOffset+size] // copy calldata to memory -# CAST offsetA dstOffset -T[offsetA] = u64 // CAST assigns a new tag -M[dstOffset] = cast(offsetA) // perform the cast operation -``` diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js index e74c2f67b2d2..a00e33060b77 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js @@ -7,8 +7,8 @@ const TOPICS_IN_SECTIONS = [ "Name", "Summary", "Category", "Flags", "Args", "Expression", "Details", "Tag checks", "Tag updates", "Bit-size", ]; -const IN_TAG_DESCRIPTION = "The [tag/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with."; -const DST_TAG_DESCRIPTION = "The [tag/size](./tagged-memory#tags-and-tagged-memory) to tag the destination with but not to check inputs against."; +const IN_TAG_DESCRIPTION = "The [tag/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with."; +const DST_TAG_DESCRIPTION = "The [tag/size](./state-model#tags-and-tagged-memory) to tag the destination with but not to check inputs against."; const INSTRUCTION_SET_RAW = [ { @@ -255,7 +255,7 @@ const INSTRUCTION_SET_RAW = [ "Name": "`SET`", "Category": "memory", "Flags": [ - {"name": "in-tag", "description": "The [type/size](./tagged-memory#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET."}, + {"name": "in-tag", "description": "The [type/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET."}, ], "#memreads": "0", "#memwrites": "1", @@ -320,7 +320,7 @@ const INSTRUCTION_SET_RAW = [ ], "Expression": "`M[dstOffset] = cast(M[aOffset])`", "Summary": "Type cast", - "Details": "Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. See [here](./tagged-memory#cast-and-tag-conversions) for more details.", + "Details": "Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. See [here](./state-model#cast-and-tag-conversions) for more details.", "Tag checks": "", "Tag updates": "`T[dstOffset] = dst-tag`", }, From d1dbdad5a539b038c659cd5130cd137397bfbc0e Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 22:06:58 +0000 Subject: [PATCH 06/10] update links --- yellow-paper/docs/public-vm/alu.md | 2 +- yellow-paper/docs/public-vm/control-flow.md | 2 +- yellow-paper/docs/public-vm/state-model.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/yellow-paper/docs/public-vm/alu.md b/yellow-paper/docs/public-vm/alu.md index bd83dde6a234..d4c0066d936d 100644 --- a/yellow-paper/docs/public-vm/alu.md +++ b/yellow-paper/docs/public-vm/alu.md @@ -6,7 +6,7 @@ This component of the VM circuit evaluates both base-2 arithmetic operations and The following block diagram maps out an draft of the internal components of the "ALU" -![](./gen/images/alu/alu.png) +![](./images/alu.png) Notes: diff --git a/yellow-paper/docs/public-vm/control-flow.md b/yellow-paper/docs/public-vm/control-flow.md index 707e78ecf8b7..836697fa3461 100644 --- a/yellow-paper/docs/public-vm/control-flow.md +++ b/yellow-paper/docs/public-vm/control-flow.md @@ -14,7 +14,7 @@ The intention is for sub-operations to be implementable as independent VM circui # Control flow -![](./gen/images/control-flow/avm-control-flow.png) +![](./images/avm-control-flow.png) > Notation note: whenever the VM "sends a signal" to one or more VM components, this is analogous to defining a boolean column in the execution trace that toggles on/off specific functionality diff --git a/yellow-paper/docs/public-vm/state-model.md b/yellow-paper/docs/public-vm/state-model.md index 50258a5b1c0e..fa68d1ff1366 100644 --- a/yellow-paper/docs/public-vm/state-model.md +++ b/yellow-paper/docs/public-vm/state-model.md @@ -6,7 +6,7 @@ The goal of this note is to describe the VM state model and to specify "internal The AVM possesses three distinct data regions, accessed via distinct VM instructions: memory, calldata and returndata -![](./gen/images/state-model/memory.png) +![](./images/memory.png) All data regions are linear blocks of memory where each memory cell stores a finite field element. From 6611f9bc15e264df259dc48e9a83acc530dbf935 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 22:11:32 +0000 Subject: [PATCH 07/10] fix link --- yellow-paper/src/preprocess/InstructionSet/InstructionSet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js index b0e92d520091..0c9b96882096 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js @@ -289,7 +289,7 @@ const INSTRUCTION_SET_RAW = [ "Category": "memory", "Flags": [ {"name": "indirect", "description": INDIRECT_FLAG_DESCRIPTION}, - {"name": "in-tag", "description": "The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET."}, + {"name": "in-tag", "description": "The [type/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET."}, ], "#memreads": "0", "#memwrites": "1", From 282562a8274bbf5113911ae5c02c8b3743049dd3 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 22:14:25 +0000 Subject: [PATCH 08/10] fix link --- yellow-paper/docs/public-vm/gen/_InstructionSet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx index 8f327fd946b7..9800cf980cb5 100644 --- a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx +++ b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx @@ -724,7 +724,7 @@ Set a memory word from a constant in the bytecode. - **Category**: memory - **Flags**: - **indirect**: Toggles whether each memory-offset argument is an indirect offset. 0th bit corresponds to 0th offset arg, etc. Indirect offsets result in memory accesses like `M[M[offset]]` instead of the more standard `M[offset]`. - - **in-tag**: The [type/size](./Types) to check inputs against and tag the output with. `field` type is NOT supported for SET. + - **in-tag**: The [type/size](./state-model#tags-and-tagged-memory) to check inputs against and tag the destination with. `field` type is NOT supported for SET. - **Args**: - **const**: an N-bit constant value from the bytecode to store in memory (any type except `field`) - **dstOffset**: memory offset specifying where to store the constant From 003907dff9bf9d3fcfdf2b8bdec10cc6d7658aa5 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Fri, 1 Dec 2023 22:17:39 +0000 Subject: [PATCH 09/10] fix link --- yellow-paper/docs/public-vm/state-model.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/yellow-paper/docs/public-vm/state-model.md b/yellow-paper/docs/public-vm/state-model.md index fa68d1ff1366..87e309d4595a 100644 --- a/yellow-paper/docs/public-vm/state-model.md +++ b/yellow-paper/docs/public-vm/state-model.md @@ -45,8 +45,6 @@ Indirect memory addressing is required in order to support read/writes into dyna Memory addresses must be tagged to be a `u32` type. -See [here](./tagged-memory) for more information on types and the VM's tagged memory model. - ## Types and Tagged Memory ### Terminology/legend From 97716e9ab9f5183afc3f0aae6e4a869f560c4968 Mon Sep 17 00:00:00 2001 From: dbanks12 Date: Thu, 7 Dec 2023 11:51:11 -0500 Subject: [PATCH 10/10] offset operands -> 32 bits --- .../docs/public-vm/gen/_InstructionSet.mdx | 272 +++++++++--------- .../public-vm/gen/images/bit-formats/ADD.png | Bin 4364 -> 5422 bytes .../gen/images/bit-formats/ADDRESS.png | Bin 2906 -> 3561 bytes .../public-vm/gen/images/bit-formats/AND.png | Bin 4382 -> 5445 bytes .../images/bit-formats/BLOCKL1GASLIMIT.png | Bin 2877 -> 3541 bytes .../images/bit-formats/BLOCKL2GASLIMIT.png | Bin 2896 -> 3564 bytes .../gen/images/bit-formats/BLOCKNUMBER.png | Bin 2857 -> 3517 bytes .../gen/images/bit-formats/BLOCKSROOT.png | Bin 3683 -> 4449 bytes .../public-vm/gen/images/bit-formats/CALL.png | Bin 7656 -> 8813 bytes .../gen/images/bit-formats/CALLDATACOPY.png | Bin 4018 -> 5315 bytes .../gen/images/bit-formats/CALLDEPTH.png | Bin 2891 -> 3552 bytes .../gen/images/bit-formats/CALLER.png | Bin 2884 -> 3546 bytes .../public-vm/gen/images/bit-formats/CAST.png | Bin 3858 -> 4686 bytes .../gen/images/bit-formats/CHAINID.png | Bin 2861 -> 3521 bytes .../public-vm/gen/images/bit-formats/CMOV.png | Bin 4638 -> 5853 bytes .../gen/images/bit-formats/COINBASE.png | Bin 2880 -> 3542 bytes .../gen/images/bit-formats/CONTRACTSROOT.png | Bin 3701 -> 4467 bytes .../public-vm/gen/images/bit-formats/DIV.png | Bin 4377 -> 5438 bytes .../gen/images/bit-formats/EMITNOTEHASH.png | Bin 3002 -> 3653 bytes .../gen/images/bit-formats/EMITNULLIFIER.png | Bin 2940 -> 3593 bytes .../public-vm/gen/images/bit-formats/EQ.png | Bin 4373 -> 5438 bytes .../gen/images/bit-formats/FEEPERL1GAS.png | Bin 2870 -> 3539 bytes .../gen/images/bit-formats/FEEPERL2GAS.png | Bin 2892 -> 3553 bytes .../gen/images/bit-formats/GLOBALSHASH.png | Bin 3687 -> 4450 bytes .../gen/images/bit-formats/GRANDROOT.png | Bin 3691 -> 4453 bytes .../public-vm/gen/images/bit-formats/JUMP.png | Bin 2151 -> 2873 bytes .../gen/images/bit-formats/JUMPI.png | Bin 3484 -> 4232 bytes .../gen/images/bit-formats/L1GAS.png | Bin 2904 -> 3554 bytes .../gen/images/bit-formats/L2GAS.png | Bin 2906 -> 3565 bytes .../public-vm/gen/images/bit-formats/LT.png | Bin 4370 -> 5422 bytes .../public-vm/gen/images/bit-formats/LTE.png | Bin 4379 -> 5441 bytes .../public-vm/gen/images/bit-formats/MOV.png | Bin 3533 -> 4293 bytes .../gen/images/bit-formats/MSGSROOT.png | Bin 3687 -> 4441 bytes .../public-vm/gen/images/bit-formats/NOT.png | Bin 3824 -> 4670 bytes .../gen/images/bit-formats/NOTESROOT.png | Bin 3713 -> 4464 bytes .../gen/images/bit-formats/NULLIFIERSROOT.png | Bin 3706 -> 4462 bytes .../public-vm/gen/images/bit-formats/OR.png | Bin 4370 -> 5424 bytes .../gen/images/bit-formats/ORIGIN.png | Bin 2882 -> 3550 bytes .../gen/images/bit-formats/PORTAL.png | Bin 2885 -> 3547 bytes .../gen/images/bit-formats/PUBLICDATAROOT.png | Bin 3716 -> 4473 bytes .../gen/images/bit-formats/REFUNDEE.png | Bin 2886 -> 3553 bytes .../gen/images/bit-formats/RETURN.png | Bin 3460 -> 4341 bytes .../gen/images/bit-formats/REVERT.png | Bin 3453 -> 4341 bytes .../gen/images/bit-formats/SENDL2TOL1MSG.png | Bin 2935 -> 3591 bytes .../public-vm/gen/images/bit-formats/SET.png | Bin 5919 -> 6614 bytes .../public-vm/gen/images/bit-formats/SHL.png | Bin 4363 -> 5419 bytes .../public-vm/gen/images/bit-formats/SHR.png | Bin 4372 -> 5425 bytes .../gen/images/bit-formats/SLOAD.png | Bin 3533 -> 4292 bytes .../gen/images/bit-formats/SSTORE.png | Bin 3564 -> 4329 bytes .../gen/images/bit-formats/STATICCALL.png | Bin 7663 -> 8813 bytes .../public-vm/gen/images/bit-formats/SUB.png | Bin 4363 -> 5414 bytes .../gen/images/bit-formats/TIMESTAMP.png | Bin 2896 -> 3552 bytes .../public-vm/gen/images/bit-formats/ULOG.png | Bin 3429 -> 4435 bytes .../gen/images/bit-formats/VERSION.png | Bin 2870 -> 3530 bytes .../public-vm/gen/images/bit-formats/XOR.png | Bin 4390 -> 5451 bytes yellow-paper/docs/public-vm/state-model.md | 20 +- .../InstructionSet/InstructionSet.js | 54 ++-- .../InstructionSet/InstructionSize.js | 8 +- .../InstructionSet/genBitFormats.js | 1 + ...uctionSetMarkdownGen.js => genMarkdown.js} | 2 +- yellow-paper/src/preprocess/index.js | 2 +- 61 files changed, 180 insertions(+), 179 deletions(-) rename yellow-paper/src/preprocess/InstructionSet/{InstructionSetMarkdownGen.js => genMarkdown.js} (97%) diff --git a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx index 9800cf980cb5..681c5e816277 100644 --- a/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx +++ b/yellow-paper/docs/public-vm/gen/_InstructionSet.mdx @@ -1,7 +1,7 @@ [comment]: # (THIS IS A GENERATED FILE! DO NOT EDIT!) [comment]: # (Generated via `yarn preprocess`) -[comment]: # (Generated by InstructionSetMarkdownGen.tsx and InstructionSet.js) +[comment]: # (Generated by genMarkdown.js, InstructionSet.js, InstructionSize.js) import Markdown from 'react-markdown' import CodeBlock from '@theme/CodeBlock' @@ -16,7 +16,7 @@ Click on an instruction name to jump to its section. 0x00 [`ADD`](#isa-section-add) Addition (a + b) - 96 + 128 { `M[dstOffset] = M[aOffset] + M[bOffset] mod 2^k` } @@ -24,7 +24,7 @@ Click on an instruction name to jump to its section. 0x01 [`SUB`](#isa-section-sub) Subtraction (a - b) - 96 + 128 { `M[dstOffset] = M[aOffset] - M[bOffset] mod 2^k` } @@ -32,7 +32,7 @@ Click on an instruction name to jump to its section. 0x02 [`DIV`](#isa-section-div) Unsigned division (a / b) - 96 + 128 { `M[dstOffset] = M[aOffset] / M[bOffset]` } @@ -40,7 +40,7 @@ Click on an instruction name to jump to its section. 0x03 [`EQ`](#isa-section-eq) Equality check (a == b) - 96 + 128 { `M[dstOffset] = M[aOffset] == M[bOffset] ? 1 : 0` } @@ -48,7 +48,7 @@ Click on an instruction name to jump to its section. 0x04 [`LT`](#isa-section-lt) Less-than check (a < b) - 96 + 128 { `M[dstOffset] = M[aOffset] < M[bOffset] ? 1 : 0` } @@ -56,7 +56,7 @@ Click on an instruction name to jump to its section. 0x05 [`LTE`](#isa-section-lte) Less-than-or-equals check (a <= b) - 96 + 128 { `M[dstOffset] = M[aOffset] <= M[bOffset] ? 1 : 0` } @@ -64,7 +64,7 @@ Click on an instruction name to jump to its section. 0x06 [`AND`](#isa-section-and) Bitwise AND (a & b) - 96 + 128 { `M[dstOffset] = M[aOffset] AND M[bOffset]` } @@ -72,7 +72,7 @@ Click on an instruction name to jump to its section. 0x07 [`OR`](#isa-section-or) Bitwise OR (a | b) - 96 + 128 { `M[dstOffset] = M[aOffset] OR M[bOffset]` } @@ -80,7 +80,7 @@ Click on an instruction name to jump to its section. 0x08 [`XOR`](#isa-section-xor) Bitwise XOR (a ^ b) - 96 + 128 { `M[dstOffset] = M[aOffset] XOR M[bOffset]` } @@ -88,7 +88,7 @@ Click on an instruction name to jump to its section. 0x09 [`NOT`](#isa-section-not) Bitwise NOT (inversion) - 72 + 96 { `M[dstOffset] = NOT M[aOffset]` } @@ -96,7 +96,7 @@ Click on an instruction name to jump to its section. 0x0a [`SHL`](#isa-section-shl) Bitwise leftward shift (a << b) - 96 + 128 { `M[dstOffset] = M[aOffset] << M[bOffset]` } @@ -104,7 +104,7 @@ Click on an instruction name to jump to its section. 0x0b [`SHR`](#isa-section-shr) Bitwise rightward shift (a >> b) - 96 + 128 { `M[dstOffset] = M[aOffset] >> M[bOffset]` } @@ -112,7 +112,7 @@ Click on an instruction name to jump to its section. 0x0c [`CAST`](#isa-section-cast) Type cast - 72 + 96 { `M[dstOffset] = cast(M[aOffset])` } @@ -120,7 +120,7 @@ Click on an instruction name to jump to its section. 0x0d [`SET`](#isa-section-set) Set a memory word from a constant in the bytecode. - 48+N + 64+N { `M[dstOffset] = const` } @@ -128,7 +128,7 @@ Click on an instruction name to jump to its section. 0x0e [`MOV`](#isa-section-mov) Move a word from source memory location to destination`. - 64 + 88 { `M[dstOffset] = M[srcOffset]` } @@ -136,7 +136,7 @@ Click on an instruction name to jump to its section. 0x0f [`CMOV`](#isa-section-cmov) Move a word (conditionally chosen) from one memory location to another (`d = cond > 0 ? a : b`). - 112 + 152 { `M[dstOffset] = M[condOffset] > 0 ? M[aOffset] : M[bOffset]` } @@ -144,15 +144,15 @@ Click on an instruction name to jump to its section. 0x10 [`CALLDATACOPY`](#isa-section-calldatacopy) Copy calldata into memory. - 88 + 120 { - `M[dstOffset:dstOffset+size] = calldata[cdOffset:cdOffset+size]` + `M[dstOffset:dstOffset+copySize] = calldata[cdOffset:cdOffset+copySize]` } 0x11 [`SLOAD`](#isa-section-sload) Load a word from storage. - 64 + 88 { `M[dstOffset] = storage[M[slotOffset]]` } @@ -160,7 +160,7 @@ Click on an instruction name to jump to its section. 0x12 [`SSTORE`](#isa-section-sstore) Write a word to storage. - 64 + 88 { `storage[M[slotOffset]] = M[srcOffset]` } @@ -168,25 +168,25 @@ Click on an instruction name to jump to its section. 0x13 [`EMITNOTEHASH`](#isa-section-emitnotehash) Emit a new note hash to be inserted into the notes tree - 40 + 56 emitNoteHash(M[contentOffset]) 0x14 [`EMITNULLIFIER`](#isa-section-emitnullifier) Emit a new nullifier to be inserted into the nullifier tree - 40 + 56 emitNullifier(M[nullifierOffset]) 0x15 [`SENDL2TOL1MSG`](#isa-section-sendl2tol1msg) Send an L2-to-L1 message - 40 + 56 sendL2ToL1Message(M[contentOffset]) 0x16 [`JUMP`](#isa-section-jump) Jump to a location in the bytecode. - 32 + 48 { `PC = loc` } @@ -194,7 +194,7 @@ Click on an instruction name to jump to its section. 0x17 [`JUMPI`](#isa-section-jumpi) Conditionally jump to a location in the bytecode. - 64 + 88 { `PC = M[condOffset] > 0 ? loc : PC` } @@ -202,26 +202,26 @@ Click on an instruction name to jump to its section. 0x18 [`RETURN`](#isa-section-return) Halt execution with `success`, optionally returning some data. - 64 + 88 { - `return(M[offset:offset+size])` + `return(M[retOffset:retOffset+retSize])` } 0x19 [`REVERT`](#isa-section-revert) Halt execution with `failure`, reverting state changes and optionally returning some data. - 64 + 88 { - `revert(M[offset:offset+size])` + `revert(M[retOffset:retOffset+retSize])` } 0x1a [`CALL`](#isa-section-call) Call into another contract. - 208 + 248 {`M[successOffset] = call( - M[l1GasOffset], M[l2GasOffset], M[addrOffset], + M[gasOffset], M[gasOffset+1], M[addrOffset], M[argsOffset], M[argsSize], M[retOffset], M[retSize])`} @@ -229,10 +229,10 @@ Click on an instruction name to jump to its section. 0x1b [`STATICCALL`](#isa-section-staticcall) Call into another contract, disallowing persistent state modifications. - 208 + 248 {`M[successOffset] = staticcall( - M[l1GasOffset], M[l2GasOffset], M[addrOffset], + M[gasOffset], M[gasOffset+1], M[addrOffset], M[argsOffset], M[argsSize], M[retOffset], M[retSize])`} @@ -240,15 +240,15 @@ Click on an instruction name to jump to its section. 0x1c [`ULOG`](#isa-section-ulog) Emit an unencrypted log with data from the `field` memory page - 64 + 88 { - `ulog(M[offset:offset+size])` + `ulog(M[logOffset:logOffset+logSize])` } 0x1d [`CHAINID`](#isa-section-chainid) Get this rollup's L1 chain ID - 40 + 56 { `M[dstOffset] = Globals.chainId` } @@ -256,7 +256,7 @@ Click on an instruction name to jump to its section. 0x1e [`VERSION`](#isa-section-version) Get this rollup's L2 version ID - 40 + 56 { `M[dstOffset] = Globals.version` } @@ -264,7 +264,7 @@ Click on an instruction name to jump to its section. 0x1f [`BLOCKNUMBER`](#isa-section-blocknumber) Get this block's number - 40 + 56 { `M[dstOffset] = Globals.blocknumber` } @@ -272,7 +272,7 @@ Click on an instruction name to jump to its section. 0x20 [`TIMESTAMP`](#isa-section-timestamp) Get this L2 block's timestamp - 40 + 56 { `M[dstOffset] = Globals.timestamp` } @@ -280,7 +280,7 @@ Click on an instruction name to jump to its section. 0x21 [`COINBASE`](#isa-section-coinbase) Get the block's beneficiary address - 40 + 56 { `M[dstOffset] = Globals.coinbase` } @@ -288,7 +288,7 @@ Click on an instruction name to jump to its section. 0x22 [`BLOCKL1GASLIMIT`](#isa-section-blockl1gaslimit) Total amount of "L1 gas" that a block can consume - 40 + 56 { `M[dstOffset] = Globals.l1GasLimit` } @@ -296,7 +296,7 @@ Click on an instruction name to jump to its section. 0x23 [`BLOCKL2GASLIMIT`](#isa-section-blockl2gaslimit) Total amount of "L2 gas" that a block can consume - 40 + 56 { `M[dstOffset] = Globals.l2GasLimit` } @@ -304,7 +304,7 @@ Click on an instruction name to jump to its section. 0x24 [`NOTESROOT`](#isa-section-notesroot) Get the historical note-hash tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].note_hash_tree_root` } @@ -312,7 +312,7 @@ Click on an instruction name to jump to its section. 0x25 [`NULLIFIERSROOT`](#isa-section-nullroot) Get the historical nullifier tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].nullifier_tree_root` } @@ -320,7 +320,7 @@ Click on an instruction name to jump to its section. 0x26 [`CONTRACTSROOT`](#isa-section-contractsroot) Get the historical contracts tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].contracts_tree_root` } @@ -328,7 +328,7 @@ Click on an instruction name to jump to its section. 0x27 [`MSGSROOT`](#isa-section-msgsroot) Get the historical l1-to-l2 messages tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].l1_to_l2_messages_tree_root` } @@ -336,7 +336,7 @@ Click on an instruction name to jump to its section. 0x28 [`NOTESROOT`](#isa-section-notesroot) Get the historical note-hash tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].note_hash_tree_root` } @@ -344,7 +344,7 @@ Click on an instruction name to jump to its section. 0x29 [`PUBLICDATAROOT`](#isa-section-publicdataroot) Get the historical public data tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].public_data_tree_root` } @@ -352,7 +352,7 @@ Click on an instruction name to jump to its section. 0x2a [`GLOBALSHASH`](#isa-section-globalshash) Get the historical global variables hash as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].global_variables_hash` } @@ -360,7 +360,7 @@ Click on an instruction name to jump to its section. 0x2b [`BLOCKSROOT`](#isa-section-blocksroot) Get the historical blocks tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].blocks_tree_root` } @@ -368,7 +368,7 @@ Click on an instruction name to jump to its section. 0x2c [`GRANDROOT`](#isa-section-grandroot) Get the historical grandfather tree root as of the specified block number. - 64 + 88 { `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].grandfather_tree_root` } @@ -376,7 +376,7 @@ Click on an instruction name to jump to its section. 0x2d [`ORIGIN`](#isa-section-origin) Get the transaction's origination address - 40 + 56 { `M[dstOffset] = TxContext.origin` } @@ -384,7 +384,7 @@ Click on an instruction name to jump to its section. 0x2e [`REFUNDEE`](#isa-section-refundee) The recipient of fee refunds for this transaction - 40 + 56 { `M[dstOffset] = TxContext.refundee` } @@ -392,7 +392,7 @@ Click on an instruction name to jump to its section. 0x2f [`FEEPERL1GAS`](#isa-section-feeperl1gas) The fee to be paid per "L1 gas" - set by the transaction's original caller - 40 + 56 { `M[dstOffset] = TxContext.feePerL1Gas` } @@ -400,7 +400,7 @@ Click on an instruction name to jump to its section. 0x30 [`FEEPERL2GAS`](#isa-section-feeperl2gas) The fee to be paid per "L2 gas" - set by the transaction's original caller - 40 + 56 { `M[dstOffset] = TxContext.feePerL2Gas` } @@ -408,7 +408,7 @@ Click on an instruction name to jump to its section. 0x31 [`CALLER`](#isa-section-caller) Get the address of the sender (the caller's context) - 40 + 56 { `M[dstOffset] = CallContext.sender` } @@ -416,7 +416,7 @@ Click on an instruction name to jump to its section. 0x32 [`ADDRESS`](#isa-section-address) Get the address of the currently executing l2 contract - 40 + 56 { `M[dstOffset] = CallContext.storageContractAddress` } @@ -424,7 +424,7 @@ Click on an instruction name to jump to its section. 0x33 [`PORTAL`](#isa-section-portal) Get the address of the l1 portal contract - 40 + 56 { `M[dstOffset] = CallContext.portalAddress` } @@ -432,7 +432,7 @@ Click on an instruction name to jump to its section. 0x34 [`CALLDEPTH`](#isa-section-calldepth) Get how many calls deep the current call context is - 40 + 56 { `M[dstOffset] = CallContext.calldepth` } @@ -440,7 +440,7 @@ Click on an instruction name to jump to its section. 0x35 [`L1GAS`](#isa-section-l1gas) Remaining "L1 gas" for this call (after this instruction). - 40 + 56 { `M[dstOffset] = LatestContext.l1Gas` } @@ -448,7 +448,7 @@ Click on an instruction name to jump to its section. 0x36 [`L2GAS`](#isa-section-l2gas) Remaining "L2 gas" for this call (after this instruction). - 40 + 56 { `M[dstOffset] = LatestContext.l2Gas` } @@ -474,7 +474,7 @@ Addition (a + b) - **Expression**: `M[dstOffset] = M[aOffset] + M[bOffset] mod 2^k` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/ADD.png)](./images/bit-formats/ADD.png) @@ -494,7 +494,7 @@ Subtraction (a - b) - **Expression**: `M[dstOffset] = M[aOffset] - M[bOffset] mod 2^k` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/SUB.png)](./images/bit-formats/SUB.png) @@ -514,7 +514,7 @@ Unsigned division (a / b) - **Expression**: `M[dstOffset] = M[aOffset] / M[bOffset]` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/DIV.png)](./images/bit-formats/DIV.png) @@ -534,7 +534,7 @@ Equality check (a == b) - **Expression**: `M[dstOffset] = M[aOffset] == M[bOffset] ? 1 : 0` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/EQ.png)](./images/bit-formats/EQ.png) @@ -554,7 +554,7 @@ Less-than check (a < b) - **Expression**: `M[dstOffset] = M[aOffset] < M[bOffset] ? 1 : 0` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/LT.png)](./images/bit-formats/LT.png) @@ -574,7 +574,7 @@ Less-than-or-equals check (a <= b) - **Expression**: `M[dstOffset] = M[aOffset] <= M[bOffset] ? 1 : 0` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/LTE.png)](./images/bit-formats/LTE.png) @@ -594,7 +594,7 @@ Bitwise AND (a & b) - **Expression**: `M[dstOffset] = M[aOffset] AND M[bOffset]` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/AND.png)](./images/bit-formats/AND.png) @@ -614,7 +614,7 @@ Bitwise OR (a | b) - **Expression**: `M[dstOffset] = M[aOffset] OR M[bOffset]` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/OR.png)](./images/bit-formats/OR.png) @@ -634,7 +634,7 @@ Bitwise XOR (a ^ b) - **Expression**: `M[dstOffset] = M[aOffset] XOR M[bOffset]` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/XOR.png)](./images/bit-formats/XOR.png) @@ -653,7 +653,7 @@ Bitwise NOT (inversion) - **Expression**: `M[dstOffset] = NOT M[aOffset]` - **Tag checks**: `T[aOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 72 +- **Bit-size**: 96 [![](./images/bit-formats/NOT.png)](./images/bit-formats/NOT.png) @@ -673,7 +673,7 @@ Bitwise leftward shift (a << b) - **Expression**: `M[dstOffset] = M[aOffset] << M[bOffset]` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/SHL.png)](./images/bit-formats/SHL.png) @@ -693,7 +693,7 @@ Bitwise rightward shift (a >> b) - **Expression**: `M[dstOffset] = M[aOffset] >> M[bOffset]` - **Tag checks**: `T[aOffset] == T[bOffset] == in-tag` - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 96 +- **Bit-size**: 128 [![](./images/bit-formats/SHR.png)](./images/bit-formats/SHR.png) @@ -712,7 +712,7 @@ Type cast - **Expression**: `M[dstOffset] = cast(M[aOffset])` - **Details**: Cast a word in memory based on the `dst-tag` specified in the bytecode. Truncates when casting to a smaller type, left-zero-pads when casting to a larger type. See [here](./state-model#cast-and-tag-conversions) for more details. - **Tag updates**: `T[dstOffset] = dst-tag` -- **Bit-size**: 72 +- **Bit-size**: 96 [![](./images/bit-formats/CAST.png)](./images/bit-formats/CAST.png) @@ -731,7 +731,7 @@ Set a memory word from a constant in the bytecode. - **Expression**: `M[dstOffset] = const` - **Details**: Set memory word at `dstOffset` to `const`'s immediate value. `const`'s bit-size (N) can be 8, 16, 32, 64, or 128 based on `in-tag`. It _cannot be 254 (`field` type)_! - **Tag updates**: `T[dstOffset] = in-tag` -- **Bit-size**: 48+N +- **Bit-size**: 64+N [![](./images/bit-formats/SET.png)](./images/bit-formats/SET.png) @@ -748,7 +748,7 @@ Move a word from source memory location to destination`. - **dstOffset**: memory offset specifying where to store that word - **Expression**: `M[dstOffset] = M[srcOffset]` - **Tag updates**: `T[dstOffset] = T[srcOffset]` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/MOV.png)](./images/bit-formats/MOV.png) @@ -768,7 +768,7 @@ Move a word (conditionally chosen) from one memory location to another (`d = con - **Expression**: `M[dstOffset] = M[condOffset] > 0 ? M[aOffset] : M[bOffset]` - **Details**: One of two source memory locations is chosen based on the condition. `T[condOffset]` is not checked because the greater-than-zero suboperation is the same regardless of type. - **Tag updates**: `T[dstOffset] = M[condOffset] > 0 ? T[aOffset] : T[bOffset]` -- **Bit-size**: 112 +- **Bit-size**: 152 [![](./images/bit-formats/CMOV.png)](./images/bit-formats/CMOV.png) @@ -782,12 +782,12 @@ Copy calldata into memory. - **indirect**: Toggles whether each memory-offset argument is an indirect offset. 0th bit corresponds to 0th offset arg, etc. Indirect offsets result in memory accesses like `M[M[offset]]` instead of the more standard `M[offset]`. - **Args**: - **cdOffset**: offset into calldata to copy from - - **size**: number of words to copy + - **copySize**: number of words to copy - **dstOffset**: memory offset specifying where to copy the first word to -- **Expression**: `M[dstOffset:dstOffset+size] = calldata[cdOffset:cdOffset+size]` +- **Expression**: `M[dstOffset:dstOffset+copySize] = calldata[cdOffset:cdOffset+copySize]` - **Details**: Calldata is read-only and cannot be directly operated on by other instructions. This instruction moves words from calldata into memory so they can be operated on normally. -- **Tag updates**: `T[dstOffset:dstOffset+size] = field` -- **Bit-size**: 88 +- **Tag updates**: `T[dstOffset:dstOffset+copySize] = field` +- **Bit-size**: 120 [![](./images/bit-formats/CALLDATACOPY.png)](./images/bit-formats/CALLDATACOPY.png) @@ -805,7 +805,7 @@ Load a word from storage. - **Expression**: `M[dstOffset] = storage[M[slotOffset]]` - **Details**: Load a word from this contract's persistent public storage into memory. - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/SLOAD.png)](./images/bit-formats/SLOAD.png) @@ -822,7 +822,7 @@ Write a word to storage. - **slotOffset**: memory offset containing the storage slot to store to - **Expression**: `storage[M[slotOffset]] = M[srcOffset]` - **Details**: Store a word from memory into this contract's persistent public storage. -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/SSTORE.png)](./images/bit-formats/SSTORE.png) @@ -837,7 +837,7 @@ Emit a new note hash to be inserted into the notes tree - **Args**: - **noteHashOffset**: memory offset of the note hash - **Expression**: emitNoteHash(M[contentOffset]) -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/EMITNOTEHASH.png)](./images/bit-formats/EMITNOTEHASH.png) @@ -852,7 +852,7 @@ Emit a new nullifier to be inserted into the nullifier tree - **Args**: - **nullifierOffset**: memory offset of nullifier - **Expression**: emitNullifier(M[nullifierOffset]) -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/EMITNULLIFIER.png)](./images/bit-formats/EMITNULLIFIER.png) @@ -867,7 +867,7 @@ Send an L2-to-L1 message - **Args**: - **contentOffset**: memory offset of the message content - **Expression**: sendL2ToL1Message(M[contentOffset]) -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/SENDL2TOL1MSG.png)](./images/bit-formats/SENDL2TOL1MSG.png) @@ -881,7 +881,7 @@ Jump to a location in the bytecode. - **loc**: target location to jump to - **Expression**: `PC = loc` - **Details**: Target location is an immediate value (a constant in the bytecode). -- **Bit-size**: 32 +- **Bit-size**: 48 [![](./images/bit-formats/JUMP.png)](./images/bit-formats/JUMP.png) @@ -898,7 +898,7 @@ Conditionally jump to a location in the bytecode. - **condOffset**: memory offset of the operations 'conditional' input - **Expression**: `PC = M[condOffset] > 0 ? loc : PC` - **Details**: Target location is an immediate value (a constant in the bytecode). `T[condOffset]` is not checked because the greater-than-zero suboperation is the same regardless of type. -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/JUMPI.png)](./images/bit-formats/JUMPI.png) @@ -911,11 +911,11 @@ Halt execution with `success`, optionally returning some data. - **Flags**: - **indirect**: Toggles whether each memory-offset argument is an indirect offset. 0th bit corresponds to 0th offset arg, etc. Indirect offsets result in memory accesses like `M[M[offset]]` instead of the more standard `M[offset]`. - **Args**: - - **offset**: memory offset of first word to return - - **size**: number of words to return -- **Expression**: `return(M[offset:offset+size])` + - **retOffset**: memory offset of first word to return + - **retSize**: number of words to return +- **Expression**: `return(M[retOffset:retOffset+retSize])` - **Details**: Return control flow to the calling context/contract. -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/RETURN.png)](./images/bit-formats/RETURN.png) @@ -928,11 +928,11 @@ Halt execution with `failure`, reverting state changes and optionally returning - **Flags**: - **indirect**: Toggles whether each memory-offset argument is an indirect offset. 0th bit corresponds to 0th offset arg, etc. Indirect offsets result in memory accesses like `M[M[offset]]` instead of the more standard `M[offset]`. - **Args**: - - **offset**: memory offset of first word to return - - **size**: number of words to return -- **Expression**: `revert(M[offset:offset+size])` + - **retOffset**: memory offset of first word to return + - **retSize**: number of words to return +- **Expression**: `revert(M[retOffset:retOffset+retSize])` - **Details**: Return control flow to the calling context/contract. -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/REVERT.png)](./images/bit-formats/REVERT.png) @@ -945,8 +945,7 @@ Call into another contract. - **Flags**: - **indirect**: Toggles whether each memory-offset argument is an indirect offset. 0th bit corresponds to 0th offset arg, etc. Indirect offsets result in memory accesses like `M[M[offset]]` instead of the more standard `M[offset]`. - **Args**: - - **l1GasOffset**: amount of L1 gas to provide to the callee - - **l2GasOffset**: amount of L2 gas to provide to the callee + - **gasOffset**: offset to two words containing `{l1Gas, l2Gas}`: amount of L1 and L2 gas to provide to the callee - **addrOffset**: address of the contract to call - **argsOffset**: memory offset to args (will become the callee's calldata) - **argsSize**: number of words to pass via callee's calldata @@ -956,20 +955,20 @@ Call into another contract. - **Expression**: {`M[successOffset] = call( - M[l1GasOffset], M[l2GasOffset], M[addrOffset], + M[gasOffset], M[gasOffset+1], M[addrOffset], M[argsOffset], M[argsSize], M[retOffset], M[retSize])`} - **Details**: Creates a new CallContext, triggers execution of the corresponding contract code, and then resumes execution in the current CallContext. A non-existent contract or one with no code will return success. Nested call has an incremented `CallContext.calldepth`. -- **Tag checks**: `T[l1GasOffset] == T[l2GasOffset] == u32` +- **Tag checks**: `T[gasOffset] == T[gasOffset+1] == u32` - **Tag updates**: {`T[successOffset] = u8 T[retOffset:retOffset+retSize] = field`} -- **Bit-size**: 208 +- **Bit-size**: 248 [![](./images/bit-formats/CALL.png)](./images/bit-formats/CALL.png) @@ -982,8 +981,7 @@ Call into another contract, disallowing persistent state modifications. - **Flags**: - **indirect**: Toggles whether each memory-offset argument is an indirect offset. 0th bit corresponds to 0th offset arg, etc. Indirect offsets result in memory accesses like `M[M[offset]]` instead of the more standard `M[offset]`. - **Args**: - - **l1GasOffset**: amount of L1 gas to provide to the callee - - **l2GasOffset**: amount of L2 gas to provide to the callee + - **gasOffset**: offset to two words containing `{l1Gas, l2Gas}`: amount of L1 and L2 gas to provide to the callee - **addrOffset**: address of the contract to call - **argsOffset**: memory offset to args (will become the callee's calldata) - **argsSize**: number of words to pass via callee's calldata @@ -993,18 +991,18 @@ Call into another contract, disallowing persistent state modifications. - **Expression**: {`M[successOffset] = staticcall( - M[l1GasOffset], M[l2GasOffset], M[addrOffset], + M[gasOffset], M[gasOffset+1], M[addrOffset], M[argsOffset], M[argsSize], M[retOffset], M[retSize])`} - **Details**: Same as `CALL`, but the callee is cannot modify persistent state. Disallowed instructions are `SSTORE`, `ULOG`, `CALL`. -- **Tag checks**: `T[l1GasOffset] == T[l2GasOffset] == u32` +- **Tag checks**: `T[gasOffset] == T[gasOffset+1] == u32` - **Tag updates**: {`T[successOffset] = u8 T[retOffset:retOffset+retSize] = field`} -- **Bit-size**: 208 +- **Bit-size**: 248 [![](./images/bit-formats/STATICCALL.png)](./images/bit-formats/STATICCALL.png) @@ -1017,10 +1015,10 @@ Emit an unencrypted log with data from the `field` memory page - **Flags**: - **indirect**: Toggles whether each memory-offset argument is an indirect offset. 0th bit corresponds to 0th offset arg, etc. Indirect offsets result in memory accesses like `M[M[offset]]` instead of the more standard `M[offset]`. - **Args**: - - **offset**: memory offset of the data to log - - **size**: number of words to log -- **Expression**: `ulog(M[offset:offset+size])` -- **Bit-size**: 64 + - **logOffset**: memory offset of the data to log + - **logSize**: number of words to log +- **Expression**: `ulog(M[logOffset:logOffset+logSize])` +- **Bit-size**: 88 [![](./images/bit-formats/ULOG.png)](./images/bit-formats/ULOG.png) @@ -1036,7 +1034,7 @@ Get this rollup's L1 chain ID - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = Globals.chainId` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/CHAINID.png)](./images/bit-formats/CHAINID.png) @@ -1052,7 +1050,7 @@ Get this rollup's L2 version ID - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = Globals.version` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/VERSION.png)](./images/bit-formats/VERSION.png) @@ -1068,7 +1066,7 @@ Get this block's number - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = Globals.blocknumber` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/BLOCKNUMBER.png)](./images/bit-formats/BLOCKNUMBER.png) @@ -1084,7 +1082,7 @@ Get this L2 block's timestamp - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = Globals.timestamp` - **Tag updates**: `T[dstOffset] = u64` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/TIMESTAMP.png)](./images/bit-formats/TIMESTAMP.png) @@ -1100,7 +1098,7 @@ Get the block's beneficiary address - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = Globals.coinbase` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/COINBASE.png)](./images/bit-formats/COINBASE.png) @@ -1116,7 +1114,7 @@ Total amount of "L1 gas" that a block can consume - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = Globals.l1GasLimit` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/BLOCKL1GASLIMIT.png)](./images/bit-formats/BLOCKL1GASLIMIT.png) @@ -1132,7 +1130,7 @@ Total amount of "L2 gas" that a block can consume - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = Globals.l2GasLimit` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/BLOCKL2GASLIMIT.png)](./images/bit-formats/BLOCKL2GASLIMIT.png) @@ -1149,7 +1147,7 @@ Get the historical note-hash tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].note_hash_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/NOTESROOT.png)](./images/bit-formats/NOTESROOT.png) @@ -1166,7 +1164,7 @@ Get the historical nullifier tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].nullifier_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/NULLIFIERSROOT.png)](./images/bit-formats/NULLIFIERSROOT.png) @@ -1183,7 +1181,7 @@ Get the historical contracts tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].contracts_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/CONTRACTSROOT.png)](./images/bit-formats/CONTRACTSROOT.png) @@ -1200,7 +1198,7 @@ Get the historical l1-to-l2 messages tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].l1_to_l2_messages_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/MSGSROOT.png)](./images/bit-formats/MSGSROOT.png) @@ -1217,7 +1215,7 @@ Get the historical note-hash tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].note_hash_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/NOTESROOT.png)](./images/bit-formats/NOTESROOT.png) @@ -1234,7 +1232,7 @@ Get the historical public data tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].public_data_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/PUBLICDATAROOT.png)](./images/bit-formats/PUBLICDATAROOT.png) @@ -1251,7 +1249,7 @@ Get the historical global variables hash as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].global_variables_hash` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/GLOBALSHASH.png)](./images/bit-formats/GLOBALSHASH.png) @@ -1268,7 +1266,7 @@ Get the historical blocks tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].blocks_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/BLOCKSROOT.png)](./images/bit-formats/BLOCKSROOT.png) @@ -1285,7 +1283,7 @@ Get the historical grandfather tree root as of the specified block number. - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = HistoricalBlockData[M[blockNumOffset]].grandfather_tree_root` - **Tag updates**: `T[dstOffset] = field` -- **Bit-size**: 64 +- **Bit-size**: 88 [![](./images/bit-formats/GRANDROOT.png)](./images/bit-formats/GRANDROOT.png) @@ -1301,7 +1299,7 @@ Get the transaction's origination address - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = TxContext.origin` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/ORIGIN.png)](./images/bit-formats/ORIGIN.png) @@ -1317,7 +1315,7 @@ The recipient of fee refunds for this transaction - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = TxContext.refundee` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/REFUNDEE.png)](./images/bit-formats/REFUNDEE.png) @@ -1333,7 +1331,7 @@ The fee to be paid per "L1 gas" - set by the transaction's original caller - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = TxContext.feePerL1Gas` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/FEEPERL1GAS.png)](./images/bit-formats/FEEPERL1GAS.png) @@ -1349,7 +1347,7 @@ The fee to be paid per "L2 gas" - set by the transaction's original caller - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = TxContext.feePerL2Gas` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/FEEPERL2GAS.png)](./images/bit-formats/FEEPERL2GAS.png) @@ -1365,7 +1363,7 @@ Get the address of the sender (the caller's context) - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = CallContext.sender` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/CALLER.png)](./images/bit-formats/CALLER.png) @@ -1381,7 +1379,7 @@ Get the address of the currently executing l2 contract - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = CallContext.storageContractAddress` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/ADDRESS.png)](./images/bit-formats/ADDRESS.png) @@ -1397,7 +1395,7 @@ Get the address of the l1 portal contract - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = CallContext.portalAddress` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/PORTAL.png)](./images/bit-formats/PORTAL.png) @@ -1414,7 +1412,7 @@ Get how many calls deep the current call context is - **Expression**: `M[dstOffset] = CallContext.calldepth` - **Details**: Note: security issues with EVM's tx.origin can be resolved by asserting the `calldepth == 0`. - **Tag updates**: `T[dstOffset] = u8` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/CALLDEPTH.png)](./images/bit-formats/CALLDEPTH.png) @@ -1430,7 +1428,7 @@ Remaining "L1 gas" for this call (after this instruction). - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = LatestContext.l1Gas` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/L1GAS.png)](./images/bit-formats/L1GAS.png) @@ -1446,6 +1444,6 @@ Remaining "L2 gas" for this call (after this instruction). - **dstOffset**: memory offset specifying where to store operation's result - **Expression**: `M[dstOffset] = LatestContext.l2Gas` - **Tag updates**: `T[dstOffset] = u32` -- **Bit-size**: 40 +- **Bit-size**: 56 [![](./images/bit-formats/L2GAS.png)](./images/bit-formats/L2GAS.png) diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ADD.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ADD.png index 48f9e36645457f7089b47635284549ea36da693e..ee1a32d95b71b328c86e10fcddb325013c8d6472 100644 GIT binary patch literal 5422 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 literal 4364 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 T{bsn@0O0T;2dk0;KHvTeOo=AR diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ADDRESS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ADDRESS.png index 296d97808867f31a42051de2be9f51b004014286..4314acef2a15e859191d557429db52a4884c1a74 100644 GIT binary patch literal 3561 zcmdT{dpMNq7XQYe$ZZ$7glV_slEfGp!m!g##n4SIgH5?-+|7iUVY?Jj7!|q9Cg~#A z$+egga*1urC}KuLh#50!Ok+5op3Xkce$IZLy`OXbIp>e}UGKBjde`@TzqQ`qdcVu| zc88@URU`obkhVE;-~<4O(ZF@*MiFpMof01g^_4aUemsTCn;#v?d{AF4W*_D$T+m(s+&rt3$U)p<0kD2Bna1UCY7A!F2ReZdYFkp~5d1c-rR`*te`C^l}i z2WLR!|Jt;+Fcx?19V*_rS1K4yYj5k^_kvm#+lQbZvqt5~ zb*$M})atE zGsR6o$%|ekaZy}+GK>9f_zJmWF<+g7Yl%@T;H}pSl%TmK3hmp=U@Bi#ZM}TuQHUYT z!2rJ69Hg{sm#jvyDM0kEHQQ)%af@f7Jf*+^03ZUZT#S z@07V+UMtspR%kGYBu#uu#{L4zuCW|}yX(!qRytgnyaoKxNOrKCGHu6 z<$5hh3?}WUsVB%u(%UaDTDQmKnPg0Li)zPYjkuDm*vZczm1 z`g=`YL#kWa-R2u2GsH-`$D7M;y_I~GE#;zYs`2tcTB;l83QP$BP1HB!Uh~hwvajr{ ztsYL5oQR0$n!%MF0^c*+)Z1m<=_}H4ZwEFuw@$15K8lz6nw0+v*xxbdSQ62OLsto( zxRZo*4t1ymCj2mMj*iBB>Ay2Q8?|42>F3p0jX!3Bd-CM*6252?WKIQ{mwwfBP<~^EQCjWiyx*& zoH$)yXgBe>`?*_mqgn#vEIs>qC7jl+u_=)6NGD))#E(=bOiKpb&{p`q&E%JxYjX}R zu)5uSKcAh;^2(kTXtE6mC_p z)74@LmZiQFv&|_|TwU0ES(+1o+`wR*m_&;`tZ{$J=5RN$%JQWA+w!Zt~4WM7! zH#@0A37PK^0&)jo^H!uG;dSdW1Zcjqq@dwV0bT#uX8txq{h>L1+r?bJI?(ojt(DNy z%tFr-FKqF_s!>eeSMx<%)n(|Bdl{RVn?O48eI4v?X4w%dq(ffcpKEMOu~_@5c_%IE zW*o;gYhs}HF>y|DF%r75YE-^3?6dzDQk2e?Z)ZCT2l)2)pr#0;VMT> z;R|-_qs0B(>(l@otkvvHUjJsmWbmD-I*?qGFzvKe>v%fW6kc}oY?DNrvuu`hnjmjm zoqpYI)2xHYM8rdcb11nDeV%X8RVV8cgdP1dT%jSTAYcLzBU$-SjX}LMr@%se*YTM* zE4QnP`cl+-73XJ%WP%kD_UitjxU?l)Y)if-49D3aC|iaEx+;K)I9cU;O*!Uo^`rb2@d z*0cq2Fyz%Rfs}77_PlhVb4dn2&l1!CEN_XvVm;J{+i!8iTYJlGoRLmxr*YPOzMWOG zch+`~HF(2Q^d@Trb&xxg9uyDOx^E%XROyL5P z5AvG}zstvRg8{CDqxI#w*>KtETYQ-pA4#QeP8u^DJLnwpwi_xC)ix>e)O?*n{1g8w5Su6%KLPY(VyRdI1^-M zAwp_sYAj2OHWV7~}?>a?X{v8RLXyo#1*r~W0GKnY+s0ZtEp$8L5MwFke_+V=W> zSG=|%Z!)$kss)`+oxNUZLtrcUSru#YDo31N2ATV*o^#7ck$y~4*6yp04CAzkw`5m( zh1m4QxV(q$d-3Eqc5M=irL5QRTfvqOLM?`Zg}k~4JZB4m84+J$6KAban1DO-va|4h zeypoqb5RVwFA&a9VoG^a%$@lraMSp7mZlle$d8i|I(`SEfz&b|Q99JU9+NN0?v0jhaZWsjf}Pp8F5ZP&fhPRHb2Q7`1nxXLv|wB;tK4u0RbRY z_z73Q76Y=!-@kfLg>q92)=FxKwqNP8(PXA8^ aTqXv_UznSjZ(Lr7#^#{if%5$x@&5n_D}9gv literal 2906 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 T^`>TN$I2Ja>uKbxTi*L8V(gm4 literal 4382 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKL2GASLIMIT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKL2GASLIMIT.png index e3b0b3b09dc924fab6b02844d18ed6895ca91b46..f952f689f04028de22ba6d466fdd24efb78d99ca 100644 GIT binary patch literal 3564 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKNUMBER.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKNUMBER.png index 2a4ec52f69d673e1b09bc3d0eac48a35bc08c49a..c7217f8452a30efc43a5cc98b2bc743226fa969f 100644 GIT binary patch literal 3517 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 literal 2857 zcmd5;XH*l|621Ych9WD1f+(_r5~MC55_$<`4blW@0UrX=5h|%l%#97~BJ-9fma{_5#JL7?M(DAwuE7i9rX06K-;0lezeob43<=KyzGQA8c9D9uy*i>&tLTmXn&y9Mz50xd+L8Geg+RFfUBvIg7(sh5rv zI7lS9k|Kg}D)r>a>3qiv0RG7(kA9u>enI7k#76)Gr$x9tXlKnkgde2twGlhH|1~_C zU@4&7(UKDQ>No(?l4QA|hUQ`(02&*HrPx$V$Ne)xI(c&Fy~Z=#b>1t+7!s0w{n)0{ z!*k%L72{L|>Zt8o)2@{Y>M>!}B;(}r@JB3Ff23Ng+g_l&yih8RCtmJEf#NfI$*s~# zO1A)MA}`NqZKU!0IfLQF{Z5n&jI2 z!jDS?O+Dw+gNj_wwvXVr#fLaU3ud2|`0lCF=;b|D$@nT4H1%#5Ln&8oFiUsd-_?>c z@aB@4H42h(V)`x!eZ&xd6(~zPRnZ!T8HB^|x9b{lGP(R~!Y?RT8_tKv4Z{gcgy98r zq}>fM#tuA5rsvoNrcTIc7`| ze&w*lrZYc6e|Wo%qB}8z-!lxlZE4>$NDbty3zhZ6<>mU{VCuv)shr3F%UYN-J#<`S zqM??zu?Qx4G~-00j*c>MKjk9hT#9_t+iQZastBxl8_tjHF|@C>Vm7s}UJFhiPY^e+y&skj(2 zOiEsPr=r*O+ExFmR1#f7J@zt(BO9B@#sO_cdWq<`3wc+} zUtliO7ZyD{6kRUcR&4(AttQx1DEO8e@C?1l8cY z5uSSH(6jq*KJhANZ#ic)phzLbyjViKN{2PyXG3gL*7byKOxj1k;5OeSh^lk*FdofF za9JF)q;BibXo|Ueerk@*8|A5X{jr<$Az2S4O1zgSzG_P4HFqY}AfOBGP!Sw$?X)`) zHy6qO#Uwi8b%?q`!OZ28h4I(SJTCtfCUS+go$rcXTk^Kai}ckIi&k>4XVwG{7`3%a z4X4=dColDi4P=4PFg08#Nj^+v?Y^Sbz?P$P?A4!M7mUe&_Zj56Z#4QXswIlf+EqyF z7p}2nUC7O(udGJi`_5Fl*b*1k@uugi&u4g|YcL9t^wN=8az5#Wla_OUh{kiJ!$!2Z z(v;6Cl!c~1G751=6fc>rWWraeFZ45kq2>_i9|IHP5ta&A3f6Uld=Tw#z$uIe>E*vy z6G&)=Y;F)cB_?P0Z33FGGR?QKY7u1;ZmV%14E-Bl^ zJY}xi*LE@=#D%fr7>hc&bI}mGN;-vd%#D4V?S~YrroN*OawFZCOV^^K2WU%LoUr$A z4Mv{M^kaNDtTU#g(C&(OQoi^Lx#`^S@nD$Oh$p#VmLLD+2K^dS1fP3zY-LoUFsI_2 zfe}Zas3>Cos%~8j9C9RFGI4ivIS8TDwr=cA;=^p>E&8R4Oy}DPmYZdH%Uas2LuYDz z>_yM|oZS<2(uCCB+v+&>hwf5QX!n0>Ju}@hDnhx9vNxQ=CJ5~I!7mC=koNo&Z*u?j bLb=bOFDsoaQQ?nf4=Z49f;6r)bieaE^MHrP diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKSROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/BLOCKSROOT.png index 7de4ce8f4c22d44f40be4ada3cd927ccb067d396..d844d63bb4fd303052f1180b1fd0681458f01ad3 100644 GIT binary patch literal 4449 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CALL.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CALL.png index bd310a8aa9e1b1afd2f5e1dc6e0f90274375732b..a017035166606fa48e490cb10ce37b273e3cbf42 100644 GIT binary patch literal 8813 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 HWPkUc3%&Mu diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLDATACOPY.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLDATACOPY.png index 21c93de00d8f29a1071a2e805444bffbccbc1757..133d86a37d99568ee7df933e198843d1e3a4d192 100644 GIT binary patch literal 5315 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 S4l(N1+09N_8et7D#r_Q@T8{Am literal 4018 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 literal 2891 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 R1)4noc<=S|YV^RK`zJ@!g)smC diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLER.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CALLER.png index 5561bcc04dfbf3c3f6dbc4742efd1dea3a212398..dfb24671c96d0ab2aec10d92d580ae1e5824898a 100644 GIT binary patch literal 3546 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 literal 2884 zcmd5;X;2eL7VZ!*$bGC5Q37}Xicvs0qT!IhMnC}thBFcs1c?Cz14IlY>VSwG8c0w% z6h-AqlobppNk&mY5W=C1fFME$k>SdK;gpH)&#l_2t=+AfKd-yG`gOhU_4~f}(mdU< zs!F;_0032&{Z5Agkav*nn-t|_wt^^F4}h|=i_<>ug#7W3O^kA@zbSaqeO6YQLp-;p zhUzM}UxFrPY3Zz5($G=U63kLoWPbanJjT|@+)cLdW!79C4uC-lfCA8TNVr1@OE z@6Z*Ni=-BFqxfOb z1NmO@MmrP=!sbS2mpN;CQ6_|wC^Q2BFAPu6bQ6c=W{nAZvBjS4eDNu^`B+{o-6i)z$DHet%j=Bld~5n2+aLL`tl$Pg_LSfB(?@E{Qph zjU42ABR{vUhkfZ=MU#-|05J|XmDfbP>VN@rv z9!SZS{qlcC2-!mb($6N$c1)YD=lMwE6AyBU-S^~yqnJiZz;z$Im(!#U0mZ9-FbUIW z(EIRaXbk?>DGbE|IP9@Ci`I@LKtQ3x55B=2<7%?Z(RAOp-F8-G=N7J&@Ra_(#ixZ% z$*^AN^J=tejU(H=BSw*H9Ex#Djl;eL-Eo3A8H9nH2=c3rGB3+MQ&P>xz_txZh z=(L)zTf<05RZdCmCTFsOX9QJUuEm9M+~MN^2G1{H>}wf$t-CnSH!noovhW7NaY zE9+z-NU)BTXA``S>dZ^f#@NitfSJV4tg)FM{fK9@xOv#l4YlUhjSru>Bp1LhdHFdo zcotGp$*P1-XlzQYSIgyWvjd7lyou_W!JOs`S41OC#O+a?$iN^1t+$t8?HfTgv^AUV zVVv--nGkV^bx~oO(ffRDOiV1J6VKwQD|)9T=BTn^r7#qq+cVMas)|kp&?OOP6J| zAAvpPH7<`R9&crJ@wG>3s3u2!H!?47c2{~cliQ50t$mk4RxUqo%lZY$}WIO$u20HKs40f zLqCXr`RI1#<>Zy2{)6NZG)=i@IpIu02kne3Bf9jqsPHNye#TZyejWmTtE2Da#q?YJ z%pBcM7Z7l~rLO}`+r*N;+1897!PBv027Aaqym}aVKnuSEi!=JUMk(K+6k-Q=lxfhv zO8gnI^cDHlMp-wJ(PHL@$WKhcg`@H=fjFIk)h?JGb&%G9H51eRn}+aRwyD0|BzAZC z^*_88M&3w;iR?UiGK;Pn*wub%Vjj>LRN)X4r2p(&A{_ znsv_}O13`YQO0!;O3*sDw?0?Moy>djLSP#g;=DRQ6VD2tIC~hEoBvc}wpvnmo|MU* zT#r!b-BF+aUQx%JbKL!F{TdxoH=_2{VtG|rouia3AF+ad%9*WoC#!WxDKC}; zabkYGkAByiv1>}JJnq0oI+D^QNBocZeNK(HJCLLX_Qq5|zHa0PHHW0mC1$q~vaLrD z2D_|NvlLWCF52{!Zv^a2E}AYHGsw7B(ncwX{`QVXh#YnqY@t1=yX{Z!WKQMyxAX^`(B1eSz#~Pt$qlZCXwOXe=@o^UTON;jPLSWU}(>np~k@pp{_9WRm}4 zuJDORtL0EedD%M5?dQfm6IC9$1CFt0@Fq*nLScDGnot``n&Aia#ON*AII3V5GW9D1 z=NcPpw@$`mM3zLfgz}h1XCARFXRDuO74Gspv{tPQp&H+h(Y{nHFOumVYRhE9gF-x$ z{qU*Y6USaFPib-9rhBmdxDS-~+=kMS8#RlwuZ)dMT?N@7)|q}MMp-|=9`#FiH?6%d z6Z6Q_O3HQHiEj7rwJ2{ZqCTe(nO_ds^v1^ZS3940SGLVn;JT#uI8yF}@^~upu|Ci$ z(dYe>tA9GZUHL85fwziHkO#ok2}_;(-e1wFh9Q5o!R~)CU#`e)AUIx}!pC2fO@YA0 L+1-idh(G@atfzXZ diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CAST.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CAST.png index 571e3647da4b899f40c3fd1c28af51ff2958c2db..d663c342ae7c2522263c5470c0de8a393c0c73e3 100644 GIT binary patch literal 4686 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 C1HKag literal 3858 zcmd^Cc|4SB8-8q!B}-&U2ZfGp>?B*GC|O60oe_!RV1}$?8Br>wPK!zWES0UYl);3U zC}Og7l*u-h$&w{BB+Hm@UY+yr_kHL0JAZxO`^S6V&-*_2{XWn2JlFNS_Z0_wOF@2V zegJ@=)d>qn0AOZpznzzpeb>KHBMpF1zm>%iR7}qN@bL2|B@#P&da7xxyQY$c#%I=2 zN|eQ9=#PyDMXD~CHQMS6wk&e61Hryrmd66*06^g;ZQCP!nC({=L`R|AfcpTM2eQ1@ zcmc?Y+yRo1-KWf<0a-H#PA|yf^Zy4DYzy2Hd5_|E>7PKsrCpN}*WnG!FUI6~Z58pbjt(_sOsbAxbyGc{i z_IKQ7l^C)-V)VFVA6M;fmDCvG`=n1ctTC-BsX%y?_-r8h1dm1-kpwQS4v;^ZjU+Dyg+5jfR#}8>g_wX zx>|gVgeR^Y%qd_wywN;gl~~l{=c+BgfJQayYJrd9r%gl56wMzI9W zB5?BI^<488Sk|+fMf~O>7bTE>*_*J2WPUF|YI)>#E^!aZ#rSyf@-O_ImU~BHREk*u z>xN)J86RTX@kjE!B`RoznkPe-Tw-n#w$|X@eD*i|G;d1=P9x@Y@|w@@=l`Or)yJI3 z^L`~gN{QiJJY&NBLr0b~e&w+2?!EvTB>z2A}5#4gE=^2P5QmUBbG#eH5B4WBQq*~$rz!?~& zRx@@5`O19?HjrxEDSUNJ0k%F9(iYI@4)Ed55?blVXCFB5xDxV9q;;tx%EMDj{cz)_ z$?@+OD;j^ie)B!LnoqbUN-9&1QlBdXFth>d#&{mTQZ7)tYm}xamm(Xi$a>xEsXHH3 zg|T^}jh?=0&Id*v)2RD1jQ~c8;6UHnqz&d-@9Hf zDSrN=`kQI0AEJA6HX!))#fq4@Y5*j>YfGTaI8thJS%x>gsV`H~nd*Vt)t|iO{!FO0 zLyZ&UpqLxY;uS*R>B(dPhmmn6^ZpzkFpJz?LN<5=w+-osygVQV*vJ6Vb$%~=2Pz)` z;Q;nX44l{@{k4n!Tf@hX@PkDF1?h5x9_lk)+?jC(jJ|>ZIH*y;-lqTV%ynF#=H`uT z?uL4e7SHmcc>X+;lggs=FO-X&AFwXnkUuZ|N75m47DvA2q$Y^_u(4-T^`AQA*Mnbj z0WY<}W#$cEse!M2>~T~Q*b>XW@cF3Gqqq^y_Swe@44!+gO-47c$6Vht@!?Hh<^n^O zl}AL`nG!BbsgxAs$Nk&F{F+kmwln3J%;l-&Id6 z$5a6Zd8)oq87KU2( znUy(Z9&ovvTd&Ppg~1~B!*>y{Kk2B?%#A8tlEW;>F+R&7$`18TS|kcb%JM3IK&m)* zp?Fs^z&+f@*mGh5Mlp)wq=L@i-wX`OKNbD**|F^^_f#n}fbaXHVHpgaK+R0A_xLm? zK9OhpnlB8CIPr9+6JQ_Iy<_8!jwnuVZ{lR7+KmWMfv)c>G6o*o*Aj(!f{WL{ojAuFQEmp3v1_UH>T6 z8IXQ%NWXduU0(S^pr>68{gG)~SldHr%;;~{dC*AP4bn_28a~*ro9#pA1o3S+TEk*PG+T~uBQ&?$t;J2KUwAf{0 zT`Qtyq3+3;hMlM<#cuk|SlrsLX|e5Vut^pCY6%XaOUVhIPviO?u96~@5SJ1A}OSi4mtP?vtZT$HM zhqCWF9D9SMx(A9G%Q*m18R3Ox`& zffz<`xO{f$vEBhmq}xz_L+2(vi#pzLl^}1lxb!h$rCDro^*eE}Yqr=aT`5VwUo58h zCDp{Rzu6a8oa-{Q=- zeA(^8*2L*tKTo!D<#y<^ecEdAhnZD3F1C_QvTGZYRFVYSox=X7-S|KMyp#lzo|LYp-@0N)rERJA@D{)hNNxwkYSsk;tC_j4Y!oL72>&iO- diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/CHAINID.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/CHAINID.png index 85b6ff6afa0859f7bc01897a58dfd93643993853..d197552c9dc472b79c773efbb8da8eebb006509f 100644 GIT binary patch literal 3521 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 literal 2880 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 literal 3701 zcmds3XH-+!7QQ#M2ue{95CW)!pcqk5CSZhMLq(9Dk)W~AG&H43%S9QmP%I!8N@k=< zDAIcf&OAg21Q0|*NoJ%O36?-0l;qv4dGpqKYrP*cYv#vW@6SDZpL6#)d+%?5`(R`u+KoNWVu(eA>CU11OhFZ8$rYDHCBqj>5 zxjVe>Wayb#S1lA2`Q7low9Om&B>z$*2pa->M1xUM5`oh#9V8i*j{$O$G4B6f6-5T( z>eKp`t@1B%8};eWn(i>0z8c!#3Qyg;*2PWgkgD2iC3Yl3-fjxrU)6_{kD|a@76`-r;Ghgt(7{>?wwk6Ti#cYeoe|j_J9$riVUwgBY+I zA)_%^u_bgg^C#Kt1Eg;Cp0REob6|^JyU5vr$W>BiIy=M(YKoEpMG4T0W`YA8iNN{w z4?*s`2<*!1kJ?%!o! z$WO}*N31I}!-eP6vEPw(Y=KuBx{QT8R&l0nG?3@-s^yCGeQ(;w`*?V|gdJv0LSVAn z848qV*Jj0``!w|0D_C{1YeI6RzuR)cMueSaWgZL9vovCWhuaG!zx<^hF3T??le(_5!{g|o40b# zMQqO-Nb{dR0v|=$18Pf-ls1u3YctcGtg$E$5&gL53Ov=5tr8TpA>gAdEDwGINxB$> z%cs-`_Q?f>_V@L^a+@^HsTAPbircQ6Jtx(_sm;C~SuwO4c009s)f_pl7+Q3E~v#STx`@}`~LI#c!noVz8a7%4^*0teHja8gI<)i2cUsm6Qo<4MA@ z>bI7}tKw~X1pljA%gb{No$x9ESMEMqSgH-Mb|V5JVot?)2%B>1V%)=D=m6LbHTwoQ zDhCDnB@;Qc;$8J>175pUOp6FH9b8KT&#f#rNoBeJ3IZ^g z=ba3l0D|D`C(k5Z>C~+iS9^ZZdNw>>Ay{DbY8p5CjQ356juv=+M%La zX(Z+pG+sW*?%GU48bnbaP|wDA`3P1CqMaOpuK&#}#oZ4XeMJP2Ya%m$HSF?*EA?1b ze#6K+*qUEPBgqy1Shv71hEC|ygQwjfZW7d374B%Mn~1hCpI9)okOdS!V34!>IFGD> z(v!7_{w+}B!vXMh&f?6zW!K73+pMh3U3_s??PFmW*J8=@r$e3MkyII`>xjiK?Uz~> zgZ-0Nn10$v9h(JjmlP+PNL1u_amYNrtNT<|S+~(tQQx3o9G`xDDYy{F`?PgHiBsZt zd5ZhhrvaMK3N@lT=2Oo0+lL9}JDNhg^8;nHa72OuXl{CwNqjyWY40q0Nf^F19o%|m zV71$9QPHf?<$=(8(q0hbGtTbYOx6Xl9I*%U_0ec$zZFIO9OjLMJPQVGg1 zTcw^L@wFOIm-%KW4Pa^_bHd7Bd4%i0PK*wNW@qv7pB8RG8NjTp;wXOEjv`BU^jb)X zP8lG1iyQ#|kuoIv(*{ri)1W7lpC^cYUtV8)=-ZHR+(8?gmK*%1IxEqEqXm0B1AOMk zD(QpMEdy3*eR9g*6d+3F6kDaG!UepBgMqdG8i?}AY*XXv$>%O_EVT=7_@gDMd=*mP|qx&0E ze$;swaXPZjcDU>Y@xbA3dVGoOLXLBNrABDhjF6TR*G4i9;P$jmjzi107HisKP&Jc*@B;Cu@@>G%2=pa9emx=#FfLkr6cNC$Lu>{a|@WfCEZ-+&64wL xr|P}!QF;6Mx2Eaw_-}Z-{Eg49|FNw^N}Q|K8`rw{=t&ZH{D}SG(u3!&{}V=qoQ41Z diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/DIV.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/DIV.png index 1740eab64241dbaf2467c2f9e3961fdadcb7ead5..58fee0f68533d9140e600fa64632c6e19a644da1 100644 GIT binary patch literal 5438 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 G@B9za=YKx{ literal 4377 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 R>M35+c8}d|`Yz8O{sqOk9X0>} diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/EMITNOTEHASH.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/EMITNOTEHASH.png index 56b62a3cb4482f69b35883910a64118bb633d412..fd31987d317df00d3cc9b984b615a6895d7f5353 100644 GIT binary patch literal 3653 zcmdT{do#?jPsubN1t$wfFg)efCLlarv*qz zHf{Pli&nkrL>7{Kme!h$(pjZaLVq65!y?vC$PB^Eh}PE0m15y$L6h zw3(-4JA-i>fsOp|6W7N?xd;{~37NDWnBZ_^T910)@KD2CK39WJiGG4 z1+YbQR!y9aVA9%rW?%+AWo^D3$hlZxXTIFYnESs#U-!mn^n%IfgW#ra$_5Bt(b9LW zl_Kz>kpl5Bs?Q|+$e86DS*(&d(8!*LgI;QyZfO01UwUg?be4TiDYgwon+_w*oo}z@FooOg`9I3P|_{fcTnj$R&gCexBIjM`J8JxY3K<#lIQFcx(EKnk4Q{t z^`>=p-%}(>;27xw9gxN)TeU_+ari(J_5d5|(w5raGYh z!Yi?8@#cyuR8W2Wxi70Zn$O87A23@gk6gje}|jhyC|C8i&a^ zuk9l3%~9`2{V3z{d7!MrqoK)JtTDHginY~iBq&4PrO~kDF>jGU*Z5k?2mNt(DVZ4q z0aDQ!un?W>^SBIP98@|O*%vg_Zj?@0lr!evEw^4k@(CH)>6v}AH9iux_Sdn`g<}{(&*M=ui1*(*QddCUlqD$y&5&79CpG3k?n6MH36hh{G8E*|-bAan?)_I(Z z(8xaqoywSPJkKv?QNQu+yiwKt(ZN%Oq#3`7O;J^MQGN`skZGhfO<(qqvC?8z?-DB^Dr*rkr^XzaJanl^Hz3;ylOc+EAwHVR>Bmklrws2HC~pO z9PxH52=S38s8h6)j5Z|jEHs`?^dS+6l?y{exLrGW_wG9vbm}ILbYAVIROz_O<5(`K zAlqEL2*G%DEWxYFXXV(m`+FC+ucn?gQ}w|(CgeMgK_jjmVIpT8_DB?;laK};M63tm z+V;E#6vQA^zBS^tcn`@iVfe2u!F9v1R{dU~xNx(VwH&f=LsKlDr!-nB zzrWM~Jm~oH<9~8Tym*T8pFKT)IjttFxahZ6TnIgf~inw(r_7&4`1ss@2iNMAzR_`w`RZLU)!9qN8W3q+HQbj2TxkRleB+ z>~sDPa%p1;T&PF+uu=Ne8|adu0{p5j6p z;?5kiCDbqE(AOyDte(U5Lz&kmqc;?vKX?Q z5~7AXfh-(&UlLR{p)$OF+ijKFlpm<*i{&}+GgCY&#yqCjJ4oIG>+Oo|I8RhxaXPe92P z05R0jfE^>B>AuqJ+D3QuQ!#j#t_-O%Ttj~-8idThkf|1OroP76R7Z&Xsrtw)W2N$g0ubr*za8u_ST?k zpeK}=xS|O4h#)sjTTH8OtqLL9cf-RLy~2McupgN!U}W9vHA|3bs`Xi`X82}ayt4UKQQ@c^!BDsH_Q{J;G@<^^&S!rb%URTEA2`&Y#SEwxe3|88mhm-E|i f3i7|3)zX1c(MP*4(XCJ$4}y)A!_iX9b65TeRl}|L literal 3002 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 XC@%M@4n~6nR!HEi1IC_p+V|!k9M;lJ diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/EMITNULLIFIER.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/EMITNULLIFIER.png index 6e3187b7917753a636f616c1c9b580407b855beb..50c4328012c1dd29285d149ad759b639876ef661 100644 GIT binary patch literal 3593 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 aZ$JXG?{CBXt@fq}2x|*FbHd5XxBdZj@u18A literal 2940 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 XU`nE24P_qO9sy@ZHwU_1(9PcgF}Jrw diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/EQ.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/EQ.png index d0f9f01dde9c4d92b93b7a2e208070d9dfe6b2c5..426d47621b060ebd7ee72baaccf245a42381881e 100644 GIT binary patch literal 5438 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/FEEPERL2GAS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/FEEPERL2GAS.png index 02ee01e0f3e3820ab996c957691c4fa31c45d25d..db94bc190a3f21e2746413298df7350e02a5f7d4 100644 GIT binary patch literal 3553 zcmdT{XIPV27XCst(nL`~DLM>-AYu?fI;(;rN^=+>ARtN=P(v32u^@;P$3R335B%MqoeO-TAls%E7T`Nxh&{_;}-c7{2IsU|8*yP^kHS6@xO7}dOf zt7?Pi3#`k{T=;n8bBY|4NaERo=YTz8+MwlH=VH8s3aC&hKpIp#cGy8cwQij&C;^H8 z>!nmrp53o?T+(V8Pkde|1-_@?>oQ_hKBd*{Ycy$4O^=;A%OfxF=hmJYRn8N;T{ccG z-&`xB2afGFrOavGK<_N1$Dsmeq2LT-=t2dRFH92BV#OY1GeG&kn>9@Qst4GDNZGYB zfbPd_3Mn>ytfsBtfHm%zJ1#QOz^$!d+c#>0>JNDNw`7!Ya*YW;g2dx%{-f2VvhOQ> zha_h)enF9PAZ0X!EgYVO_K6f9OmxGr-Co;t>B`dD?c7*$NvVJ^M0l%eTNCt+(j~9L z3R?t#k~(gM_V9*6jD}7|)=DwWw;)jE7g()Tr&404QZm#P_<3JEDx7}lb!^d# z!w0UVTMgbY%+gv?#_=86yBS|lt>pu+m!kzMzo|#NJYF;~uII{@1cYH#ZO@(Py16Ng zbpqA4{a#`>32RO0nN|vD%y>GgV?|z#>ChY~2y28Py0_Ar5gcfVVLqUNxb>(DH* z;B=!gOZ`s8U}vtMAWKWtSTfDbcMYBwCqUL6oFHzrA_PYMsLic;8*@Tqy= zBmJoIDkx7bG0Ifu9#R<`zmiwMSqIyLe4x7t2eb}fETl$kJCHnp1wGB`1>?Dw1Nl9o z1E91~hv@MT{MS0&@hX1)mycO$qDw`|AaB*HS@whbqkW)yYXnm!MWKEz~u!2B3Kpjl2<{~u0VIf$=IeWf~`f;AQPm=W^Bk7rb2at&2W6ykIDTrbpa>T8> zcy}MLFL#`bOixWp=l*zMXmx+`7p#)bbJq;rN>zB7V4?mE`Hlp^vRoB+RZTBsZ0UAh zxmGE)^UND#5I|$uH}sn9oyNl%b=js;2HE zp}^*IY$Y;AQ3~5D7mH;=ZlT)NS!fDuzt}NO`UN|qD`=U=GTlOCw4Y~ywJrRpo z%099QrcMbs1*f?P^eqBr#gsk;FWU`G3#QiMFP}0w6Spv=lO(~1ABR!kAaFr(Bb*$c7eWBD({58?&W_%{eYdS9V4Wv*y?m>=g~iu9(z3Lg z_N4%*<}jr6O|?IbyVi&V7K=N03|3&hK<~Y03$u4x|)!=&X(p zM_JPr+;QgAwgZ;Ylc#)RMET^~aVcq@4Ohm%oQ+%Gl|^i)R<*NceWq3f+LIZWh+*M! z+S);l@xCgTG4x zmEMe9sx9y$LOa}*$`lmDH6s=?+mIP)O7j_*=^)cO{Zt3h;zaLEqmTbr^tshRUbQc$ ztsipdGp4h*iMF+lPwbd~_@tDUsnNf6=Ce@o;^zIXQQMa z#>U0CI@NiQl-)%gGsV-dqtyl3cNe1v#S#aPks>tbUGK}ej0t#p{w&Ds2^1opqhsn6 z*>*N$Vz)lEb`F?LY3pwE7k$I${5rHK8PTA>!zRY1zxh>CD$7=mAA#XB-cDb0?#XU$ zt{k%vn!%ermb`L9sie;ptG%q}!KRspll5cGq^h82*9lfOM~hTTDLI0m=*O*5oQ$@7 zUVRjI;y88`Ll@MAN(w_{j*s<_lY!v;>X$n44c-=~AIzcW%9(PeM8R?!TA6>cKE=Sh9qN4PbK-Vk4D zF7kP-j`VdVl_e+AB4BLQ@pZvC23&LyW^q-Kx62Y~5+?WsA*!Wk@}s|HW3=Ijifs0% zn}T^FckpzY61;9!4Odedq50EkqdigSyLM!nUNi#@I8TI3Dc{{D$jzHeQk@NBi%*z6 ziFJWWM+M#$7>_wtOpQHgicAiC0%iyX%#dKu?BFfDJqNtP(N+O1_Mt874G0e09XX-i zWOhx%d-pjH&by4-3wS3{@elgj38$ZKnQ=djWqUKh=YVot{|>|NuoCl%TmA0)rmW@X<0P4)7>s=)sAlI~v^ aT#<`4OyrPxdyUsz<7n@Er0!6_)xQFld#Ts} literal 2892 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 literal 3687 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 Bg+l-U diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/GRANDROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/GRANDROOT.png index b3cae1e69b72ca3a63220063d014542ea9b334c8..34d66c5a33146a4177a765465d920ced947428fd 100644 GIT binary patch literal 4453 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 DM@uG1 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/JUMPI.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/JUMPI.png index 3be96ddb4b3956e7930211e6e9755471bc0669d0..326a7971d4a5da91f56ee397e60f2acf72df98ed 100644 GIT binary patch literal 4232 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 KVOV_1De7O=z%|tX diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/L1GAS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/L1GAS.png index f418c7f60c7c2b5d69a557262aa76590e0cd649d..7ec775889c516d20ce5ff8b4f8731c39c6b64599 100644 GIT binary patch literal 3554 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 Y-;cOtln8M}`P2Xowk|fL69LzM2Zfc6_y7O^ diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/L2GAS.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/L2GAS.png index 97a479421058bf6b7b2c21f00e87741b5e849595..fcf79de2f78af1cdca4d3ca7614bc8064285b7dc 100644 GIT binary patch literal 3565 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 literal 2906 zcmdT`X*kqt8~)=Ohfk4QU}U07y`0fT|5e6#zgj z9uNV5I$0!mSmA%LH=a+gVws`Re56bKlwmE$10lKQS{R%n98T$Y3LHEm4lq#-Gy^8 zcV$L)i}5czwW%)$c}1nEq2~#HB!lPjvqr+wjIETX-5~=`Rg~`Npu*W1&-m0?n^+cI zp9BS*Ln&_+8m;!n>KkeIDV8LlHgzf<|5P!)3vnoi_|jHKTSgtX(XALPO6~*!*()pv zk}uas$uxO+$)u3P;}0tN)wv4JUW|C}<9)7V?7159>=M_#O73*h*rj>KjB}gur6U;g zfgS0bth)#5?Cb6F*)yKk|DGk88zBqQk$l5v+LZ&-ho7O^P}&}=z8rqbN(dWGZ;r_^ ze-`oIpxN&N8XWfvtt;|te=+FBlldA9&=aq3{0?DItMrc5V)ssp6Ky7b0pe3Z#{6g0 z$AhsXT;tFDPWt9y5?eeqy{JXQFbhS2;}bV-MEf%3&p6Cl1H_;|an;HmZZ!E3ct}QC z8DDf-3^+j+7rXosqYE(P{uO}MjmaiTwP$M3w8h_C7P^@_Ywm_xF9LExf~z{YImZ{- zA&DrKGWkr5n_KHasb}pLc=XX&c2|YmRPZP2!+vw zRFbF~wy|5B(ZuaS9JOY{T+D%H|5r7UxL%kxIpR$v$s%j(jBIP9E@MN6u2&Vxgv^Z=pY zM+~ms?U&sVFBu>x_129wW6!C5qh1SFZXTR}qDy(pn8dt&qHWAbRn3g%W(0avOrhwQ zDhz6Sn3ac_rlxTi?mCjVF?nUqMa4b*cDV}Dn>)pHfWYnmB0o`djo1xtX1!2D^+(l` z9)`8T@mpz@kE+XzLP}luxF=8O2ZW43o9wkPuwR{fu!wabhmWPWkeAcSFUlw+X1p6v9dv`< zxMOw|<$)fNoM)(9$V(y7{Hs?U*DpA-F68+1#kbq!$QZF=Vu@w*70glW!YGi&oVOwtNhaE++Z0oX)u(GKoixi8)bTw)(>L(bg|P4(#uf}7HgJBz@~DM@Wzra5+3Bp@$fqi<%2M5I00LjTs5*7yey_w|j&S%|_`6 z0}QRs?Uvg%3&J;<6qjVD)a+v37*yT-!J>#|{`~e+{~)~oqGJ5aelN@@=2bCyy-RBp z{xk2oVMlSjAgYef2ONaOLA=E~jHu2t7@vpl3{My?FFJ~6ey^faz|ls{8Nja8|zX8zI!)eC^`7iv8D8;71Iq0^})gPBjUpY@qzN>QkEfHEPcYN zBp?T(?c<-8MS#BEW8J8Sc3ZzIIlcssCt+)s^Va>E=I)=-a;z;%p#8?$lSI>zb{|%zjwYXlw^xt|Dw2roa4*`<{guKN2K^cBKJVB&dPq8< z>`}UERM=B!_Gu4B2_mc}wCUs8VmB3r9dkC#%>kqS`QR)QF*s&BOKtM&-(6Qb*+~*n znZSRQN~brHjwa-abGiiZC+%Uq68VEF48YU*hyMLzWI9V<*iX0xVgwI&&=EowM33qS z?rq@d5(c+^(c7tFbr*9j7D zm|REdVW=|6$+ET8E98{El9&tQbNRkm1A~w3X)elU(G#uZUcFzkRTx^3ivi^CSH{|^ zgN0qvMxw!sWX@BCR=Jp;O{R|I{)+ZX37%Et%8vmi{jq(tx)*_2*d?C+v&>hT9}-0~ zwY8F)N@9Xyuf(O4iUhBwLNI1KalM@3^AqX6o@l;R>oyhq#4V+%U$vZ1(LG#@a0i)R z$FkxbK+^KoW*~poum*jLf7Z!qtg3gEe&8ty0Ys(F?P|vuU}0p>j?k0WB5eR X`so{YDv=ceVgydwI@wT;Bjf%6=+2=q diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/LT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/LT.png index bc0de452e947f939599edd1b0bd49004dd941080..59927272c47fff681b09ffbb1ab3e84fc4a8fe86 100644 GIT binary patch literal 5422 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 P8r(qFR0nqkdFwv_YW;Pe literal 4370 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 Ty#pn-Ry6(Tq+!W1*Xw@+-$5hx diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/LTE.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/LTE.png index d90a22618ab639b7e3b1545dd7dbec7b2123e7df..1b0e35cf2908875181345a8eaf6e7a66497de406 100644 GIT binary patch literal 5441 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 N&CRS16z{`a{6DM4e%Sy3 literal 4379 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 literal 3533 zcmd^Cc~nzZ8oybPMcFEdl}({k0R=G<5iE%n5K)mmC9J242_O(7I}J%u9NMy|4O-Sj zWmA+rKv+}gKm~!QU`h}SDgtrB9yUobFP+Xgb38rM&N=hf%s=n@e)qfIci;WJ@BQw3 z-?+IRS5?`e0sv4w;q2f6z$O~xKT?82*Yq|*5;RUf;c(O|K3_EYq^7)Vn*x^r5XuACbeVWe?tn%VOiyl+A8}xi!S4KDhs^dd zU6Q}cv?MDucRf;hZqMv1ROOK#O%0*vxxiZ6y9;1n-vD*ckeM@-QoG@ZzT$qI^Dq{G z+a4~xDT}7ZJ7WN6PYJd4d56vJ&#`q01@p(Y5YLNCpEqU`27wy$yGnWlH{6n=T6P4h zYigpPNQ{DlTmkb<0&Y1D2`j=DxfvdY2roPl4A z1zukXR0fT9@`YN1161)ZMuMaE*^}mpx{~hwBuejMeu86I+u_pm&){l6kh28?+p(HB z*Q@Hp1h4TvMHP9qBb-`7-x{1h(kNl$k;vg>72!z<>{Wt_88@(kuOyH^Z(7vZmk2ev zXWWxi$0ctgRooxNeNcYMOV{?Si}1SJHho3j?iCg{=wbvL~j zso^_sz?h#ILm8fKUk5&}2ThlZkOxtWuyqR?7mchCq@H^5b412OPbL{zXH|(dQ|ESt zvD{PQKQ$J}DcX4r{K_0$`46D@48R^sMLS7?w^?K zmRoXf1)YDxL)fY;pZ?Ph+m7{jtuXB^t%xb};&Bwwmb?Lt*IBKDy`FAzZTQpMme>1m zGB;>eH5ix{uV6|-h0P`xR{vI#wIap0No&lZ+RRsC%0P}%-%BvE;k ze*_hmw&_ z6?%ZbA08P`IYaSZYhg4}@NrcJ;7E_QYg6Gysu5yz}j-tgm`0jF5bsg3(p61T#)b5Y=7tS2)|>G|P7RMj zB4$~wD7St?M5Yl~H7#o%gjhKVZ;bUh)uOoI*(z& zN=;-yJO$zo_a|*nJ*y3_mOu-iKXp{$*Jgy~>%1OL#uSEu(Dl15y&49?Re z@xFR z_KUIGdBSWN?`_d)gQ#h6Md$h*PX74Gr`o5V4O+>B&9Q

|hc+!HZPvYqg?<4Fuz0BN-#yCn_| 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 literal 4363 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 J?1?1SwafNyj8|X&N+2ks?)8YB2N; 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 literal 4372 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 MddMXAz=@y#0gv7lssI20 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SLOAD.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SLOAD.png index 61326b19e84a635cbb3994c992dd693d2a8c1683..f9c6540667d42534817b11d9f7c9873120712302 100644 GIT binary patch literal 4292 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 JrQcq@_jg7iNbLXs literal 3533 zcmds4X;f3!7Cx6i0w|+H6o~`Xr4?roAs~qZf~XJ~8dL@m8D$7E6Cf!RrPkS?GDxBp z2tq)FFgPWxR+K@60I4Km5CtTJfEXYlklysQf4cg7uYY@g+6+*Q0QB}c?REnINrl%hv^C)O*~h_Tc%Qa+_YRN5e90TZwd6Pzeuo zA{R1Pb6%!k51uxrovVGHsTrDEgoYJ?VIPHMpk9E2{Q#w=-)fT7#L(&A4hJh_koPsW zWK}?JQH`U9l9n)*LtOenTU++^mWo3+4kl4^`}>y3P|TnzQ5olwo`1(;QXU52nY8x% zqLjuq5(aEK^U<$@wdo~ZJIkuV;&B$#8J^Z@Qv2zw2^X@gbb5_^G@)TfZA5fja&se5 z6;_-uJ)cWR-*knE&6MVzYNB}kQ*aAY#sOJXzT%{+1WN1hcxC@`A09|x`VvYYwR(fa$+k9G|*`_6-VYC%E73q=Xpu z7O=)uh6c+k0z09g&(WzX-kzN0xoPN)qB|+Z}qVmb1^cyUj%w( zokJ}G1ZVP!nnhns8a0d*BjI)GpT)Y5aNUPkZ6g*GbjyPKXqP>8Zgxcx zE}`vW0vmhGJ}BK4;%9*C7=%hynv*%@<|wLeGqu!zqglP-$(DKLGS$`Y>6E6vJnAs} zMSv-%IH4yxcnVs=J5K6iF7>QFK zR&+Yb2<}!jGexj%BXEtWvX<<1Ro$tw1&NoJChzyL0m9=tL!;gHBV3K|92=MU(znkn zOj!E)u0D8juXb+p*@Ii+%we)xLicFrUq}7FiOXLq|i@ zs2N7plbK_(U*BlOfJNzWJlD?S#x>NPK4?w+L*|*W2V9fjzuk|}&*X~aQ&?Dn+oy-| zhqI)X{&x28GCZ_vHKRJaee?=mee1YcpZ&nukk1P)2K{X>{zn)6FTxB?7YaOdbFSc@ z$Sry`F&S_4D1ot!p1Wz=ZX>T{@*e+zC><{T{Au>~SDp~LnVRv;-bdO`d>1UmEO&Pf zt=i9`T<5F;^M5SWIG+RYD;#Fllee#=v|ssnF!tvX?c3IZUmkAnj%okL;qE=N8rdGv=G(_VYUKqQf6dro7y8*PU zHQ)g2hU^6V8yUHY78&y%#g#@(btZjA+O>Wt*ue2E2?xTPr5b183`l%v(gy!q+W>Yx z7Ht4Vc%D$9wn%Z$W`(@UX>{v@o_mvkG4SR`QOQgD%+ZbsKi7;ot$5)Q()((PT-u!{ zr@yvV7BMco7#qN3;EpSN(i+Z%3)eP!vj3c4D9HwpzZYPo(LZpWO+z>@^f| zSX~ZbSmrvuPFi=jKWgs*at1ZOVfBKX9Z6xvfi5VDu&ne4(xIpBou6?0;uOipckemQ zJ1Dlm=F@5R4ub`qo{*M~C^> z%Qa)ln|q8$BPprCg~%NKgp!B{6npt;6OZ3pdQ&vHH~b~zYir7NPX!@`qx}~`5=&}g zmmhP+kj{t&He37(S7)9DtrHJNT!~t)$B^FqA`08y5Fqc`^mZ^(ek#=*-PCG6+&cXO z^%@v~&fq>7Q==n%>)W=jOUwpK`;#(fk|;(;b;61l)|L{(7CX)6w=|>90`$5_URQ4e z>vX|}0nZ^x972SDt^UOP<4AA6iKV_(^*@~$C<5*GgX_ladvK@?)g+Sp#4q{s^y1Pg zOusYB^-#hFauv%}Yb1wbJhR?x+_SMF)P~&rb`iBc-`IpdBWd%5(AOb8yANA8xT4=R zz{_vZ>+rQW4!K9~z;tZYz>$1J_GDUpNz1v(mzEibsiE$M_u{A<5mw{oyb`N9x-*Aw zxk18Mf3GE$3OKWc@L4x9zAKd%E=r%D(zn5~^SHFY%phBmnl2$Eu6QjZsu7GmKyi!HXLV9E**HE{ovG-^G@I7*?>7c1y?=}ka_*^K4?^aW> zKr~#uF?jkEeXuHfpyTEp51O+y2xMH)ocCdPJmp?Q-;bg8KbG;g!Wcf_m?N&Ol$Dkp8XQ ZnPox~Ch+I4EK~RRy$&wB%Xc14{|&ykNLT;> diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SSTORE.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SSTORE.png index 59bc2f79f7f3592c7e13b342424b7d2ccc60a10b..5580d4237a774225ed61e8347e0d05d2d8efc1f9 100644 GIT binary patch literal 4329 zcmd^CdpMM9yMG*V2qh7QVv!YJO%y^7GbM*vgGvq|QCW^THfDq|N~NU(C5IWrDu)PT z8Kw|MiA)%W95V-tKIFKZrlA?%4C`Chwf8^!+TZo<>)O}e&mZsgd*1uG-{*er!|#3W zU(Pt#$ZUsf2LQ+*Y)?4?AVJ~dHVI+=6CQ!210Y+0ICa7)Dtngx8U6CL+_tVTYu-kN z$cu<&a_a_X5&0T_ss>cMC2C!bBP^Thdz{K4Ze`~HNKdWn>+mlC43TR>EJ{}vDy zlG_3|faE5KhsTR<0=PO{U;_Z^vg$&cK=%LSXTD#=g7rvGHaodto@l=14c3>!->iC1 zSijUy;l)ki8vhs-+4KM~W*U(F%|G}X{^^^%$7GTGJ({MQQr0C4KM0o_vzAJ(+N)mu zO=Zjf`CTiRw92IlrZ{ec+7hHkx}={V3;5UCxv!QW zPpDH7_!xVEl+jorxb^hJy}yh68EEQS{Tg6FELT6Xxz#o&uknu4{Ak@dAI^V0(7SJ& zW-j}njOY6g?_6@9Kj6J{S=(7>axc93s_R+UQr~18ZbFw#Slz=-95^cSixGh6iE*@C=tB)25q;FXv80btcF@(ha(rE2W#Z zgq&vBns~c=%|MfEb8SJO4Q(_hj%Wcu)a`hnbgo#k2Y>7_vngw8C~M15RFfM|ISlk4HPc<+AfJ(qd-)Z_A#T3`Jd2oGV_ z`x&L2)}7HeHGuMeik6iAzgDMfrw1a3yC0&fp67_aI!C25GWc-stbfr}(}Iy%Y=Dia zKuRV5M^V}C{|$BBwSvX198v9wr1vFm6@^|uN^~h^MM%DDS)5W`Th5VAlj5h-uNwlf znaA{Q??aciD(l}xQ49Rty5h^HdAx2xaR@sd{f^(s<1vb08%N{?yHcbwZ-_1gdJc3H zo+80E`SIdg>HT@;zVA1w(Mby~97UuBSd#)qCU$lp1jHH7uDG=q{5@iG!C&l3kwg2b zlnEKe3~bCCKYMUVWbw1#DlheXU!YAE1#2h%VCppbJ2dwgy39xlz;&#)zZuHV-X;X* zXwvyhD9?-<|2n5I8ZVaIF*KVRlZzd_x}G&GdNC*S&%2` ztDfUyeh0yT84gF(`#Xfx6nAt>r3P0X#w9aQW9_PyE70UBli|2Q?=N$2iAMYO;1ybB z`ji3zc-=KOkNxQch2xs@B80rD>lg}J&O)1CJ!DB8T#odg>Z}`gm$f0AeX9-$-_<4@%GE;Zx^5Q+BiULrofW8G&^ES9_%6GR z(BgVrNR7o#-(q{Jd+vPNNCYOUVBGJ0PMBWy6|9}{(aTD~031GBB7IJvovUoyQAb9h z!yE5@Pt4@6Z?p-;WFe1rz&x1i4Q}BVUNDNzp)2_jLtwNU({2Kgp(i3aSN<^C9&$c67p5QrSTf~hbx-)K`Q#=^_-!7K;Ank#No_?MlrV}+ zOgZfd{Qv~kS=N-xi-OlFp!oVgdS}UM-PC&As`AMLILC(Wdbc=Ea~anM#eo}%0Arg5 z%Ev8>1?OF!N&kMlvsW0q+IFO1mAA4^q4xS8(g~~K<~=e-hJYS8i~=K zApPJFL&D?AO1FslEQY*&rf2=aV@)Bz^4ZKwenn>JSa7a*k-T0JQQ2AKCkp1Yo}Yzt z4FP3La2^7mn?X@Tq7I-03FeT?g85qAZ>Z>5icApz$wmBt`ridp=uaIK6{TqaE+Ta# zK$j?T@V~t9+$>-5b47b%R(=rh0|568_crk@+Qe`HpU8KiZng^83lVj}c7y+K69-W$ zD?7o$u`*(wFW-{Q@fR=ryKh|r6F`{lKqL$X!!liiaRG|e>>cp%cNB~Bkd`G6VL&v5 zD#byHmF2B~7ygE5SH-VMInbfpdJG_ctqnmpKjrB)Y618)z8vAJP9KP z2j<|~0a<){R*}%}Y)H;0kCI-GE5^+-mPR0AW_^W~P#mFQ^;SriSUmZV=N@g1p}c1j zd2+}>dM9;il!d<%&_8PuGeKT7Jo5l*Qa-;fg&Q51+so=eX9PP;0!pfO68O4Ho$g+I zkc6M~9~_$~&r#34^i8$V;A5Lf4j(&6gw)&8XiI1C(F zdLB^9#!s`ehD*;X@edj(t4^m=-F&|6`7}fcVAk{o%ru#C?>-9JU@T3$WVp9LSb30l zz6UKw3e9GsGy#R|R0tAdPD#oezUsl!Ix zpw%{K(%I!TIfOX7A>iYXrTsBetYWS9nYMx3HtFP%Pcs&rrZ8qj&3ygoL`=dlFyg{P zH4;10RGv%i5gd7MJ3R37S{idK`z7m9|Hd=j>(Ban{PoQNUMmb&XHz6D9gfU!IDElb z3}{bB6_cEl%mOqXK9h(N(@!C|hHk&RJb9_`Uc8ptAD%u)+ma&%l6mCcozGcXURbP$ zO-0LsHxHyvDJN;L9`Su!&C5+?uXF5R@0$`7++JYV>7c82$nCMNi9!RXUW9@)ru%(^ z3ekRq2Qmu%K89+UN8hKN(z~u}*8~+}75j#=ueWI>7&T%*lw{GmbfXrliJuzho)=I$ z&89PBmdy@w4={Vtp^{nSrpZsmMyUR?yo4)Gyf2D-9wfBK7+n^D_fpf38wz5gCo*-> z_jKgJWMhI%%)@NW0vp<~*itVT6XFq3s4+&tLrcvJA`Q5WELUO7Eg^9QuiX8x<}ata z()KfB;-Y9XM;ecSunWbGe$izC0fssDM)E&;J<}F8ek+~t;Q`aS?~smV;(Q(Oc+$b5 z&jp@Rl7yw|3Z-ZyzaDysyDMp-T^mlIE@fH`lb zvdJ}i-nUD9W0UknrqC{j>%8Jzw}n}5+gQLDM7A+r&3zh_$PQ(HIOn7H20fxOOV5)5 zG!m-8BH~NnD(>g)B38TL=EC`=1W$ECQWSkg?9C8$E%CWkMBvq$jn_jjSS3``2C*mf zm_^ffJ?Y38Cf8Zi`~4j9fLE41Id+sqj+AAfUWf&Q*9q8y&VkUo9;cV_vkF!q&7iUU zNm`}xNdZwNYA&k*R`4enpnR^nxbYXO{!9Jni2*jZuT?;Vu4-HDEaiOfF1w|Fw!J^Q mz1^|N#Q*R5-v6;?enY%HefrjExsrH+V-Z#kr^-)y-~0zbVL6!q literal 3564 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/STATICCALL.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/STATICCALL.png index a99ec07ddedc003acd1de149d44c21f01086f49d..e433c5063c3509b0ed94ecfeeb326a364b003ce2 100644 GIT binary patch literal 8813 zcmeHNc{tSD|39{?lr>UhPmH~?g^aS5eJQd<%D(Ti&7@mM$kK?E3KQ84BPxw8V~Ij! z9a*k~>|2=me&$}PTlbIeeZJ4{`+L66b3e~KK4<&9&pGe&I2nZ#-gg*T9!+SSilH$)vPz=XS_wlF1TM3j3KP6^nA{l;4guxzA z{g|kt^^eJKKKaL&-+TeU-vALJpSH-l+b^B;alLB#)b~by4@XXV?x)Bup%u7 znu}A?d1s`>9I1aShf64!v={yDVE)H;K@QO$b3w=pi=Rz{Wdjx3AB!TBSl|5APF_J8 z-yaKtQ>Q7oeo8bl`YV&|>~AJ23znG3#og&u{F&NgF|82hl9(4)+97q zT-}uvVNpD2RDpFmyRLH5?Q*UgJWX|sGN}3SiRhD&u*tU0B4Vw3ZoptYBh7FGN4%@% zj^cw)eRPN|d0Dyd7TKz6J3l2h4@W$Pzy+iYp6&rO5KO3kvHPL;{Wz5992`?OG zw-LV6sx%xSKd1WQ0#*!h$Wa#RgWB$e@wbzbhIOe-$X*VIRBX;7mQzuoN9$b1z_xF&FBV#vI01JrRD?WvNl}C?id+V@fFM4Y@#K z^E?mtDGDwmJxXL&hJztRXC!k{p}N*RJVG8rFH^@DamOm?YIu*qVS(aC;TzP9V1HwJ z)VUa@C}|pPKcQXpLoPC54^%b`G7gBBI5wFCxZ~4d=WfKj?bs#Nj8%1pTHbQKN$$q4 zd+fT>bBZ}Q!y_m^oS>gmjhWxvwRY4lcje`18!J9N=R>32zBQNQz;OsOJfpqKqUVIOotWQBKi4I!)hB$hhz3cNn6nCPp`hZxsmeVLiST{Lw#1};-u+F9)9$k0Kz^Z zt0U9;QRK1Qa&gNV;T_Yn4^9X#=UpIMwxNrfhaYiefF82bQ5cH$0I%tGU$ z#vNf>)J6)&JmfXilhF9~EY*Jab)-rC%0@)cwLY{q{ZMX5pA}K3M=H$3G!r3xXkNGl zUSOGL-sF$gzkvG#2b#a*Kx*TWOZ(&d9?xBmtb_X%ktJ0#$r2W5UVbzt2G8fd56-UJ@v3ipvBhsR(pD)7REau*@l+~%3(O8^^Xm%6*B+w0&M{2uXbZa_3oDMpQvhyt zVhck@B^!T)S4Ghgya%H6d5ldZ32^S?Ce z{ntA8-&wK#(;@gbTbWfbv)*+vyWP)flJC!Ofnt|#S5m*Wo}@UyyCjLkR!W4@!#G&r zolNi_N?M-i_REhj7#j%sAp?pQMf^{w@^+}3w^Y6gH)LW6DFqQqe4%fRNFi@};~yuNz9)efXX< zx^QZ>d;?RF+y6UZKn?P=i*S{?6B?brW2<$uIx}5Vfwu}K`PD^HvLP*1%6;Rm>qC#* zs=Tly$V^|FxcFpS@44HrR0&ux|6vde zHL|{0E2|Y9(&3!>?1R;4M8^?jO;m+!JN(nK5(`bV+dIqi`ej++11`%QkHy_CK4FIi zpXr$H{uJf5j;?$6YReAJjz(@@5}{<#|C{M6gOJa5XbXz?v*zqK$xa~>GL%E#dt(>g zDIYW8JL%7!9JO*eX^41m%=>eul2B*MK6}nBb5CP3uoUmVO76DB?jX?V{LD|)D^ax$ z5rvU)tSq>@%mf#32}swrCp??!aM-0DRVk`CQ;s=P{yTL;mQIb+^}$`Yv4iX*L#oKu z3Db&xp{Tv&>-m-ci|dUBrM@x77vqZOvPx-?vW0@^5!?a|4p8 zOl3}w^=5D8rB4&1lDqkG7Q*flhW3Z4b^B?-ww$b@VESId_Uo|q-=tKSC>yA}(2ak$ z7z*#TUtAlBLm2zB9`E^RYW;o%E2F2;*Zu4Mt!hTu2sTU(U%yuBfS}5KVY%he2Od+o z^Ez^oy9q{v$|WNmrYjj@OKX?M=*HEKn~~aP>j@i1DCN$sN1T1k<{1-{E;$I}?TKaZ z9g6zNDAEgAuXkgd~E;pxhK-q^YJ z$9-Df_ieaRbjR#l3v`WRBjz77W*E}n6TQ>QSWB2`pECUDw%U-DA|x-c-9DJ>fK5@( z_y-=huj3zKpfdhg)(w-Lm%nh8Awb$bT@_2O?kuvYv(eEPyRhuPu`d2{?B>qugWGH& z=d&92_^9$W8t}tVpH)r~RxrT|VAZp>{OcZ)zHFpLT{tUDCz>CYxV>wevi~-M zJ&?n3KGWGGmdnju?xua|(yhAU@0u#ov)r7+y0_8A@C|4e$y+(3gICS=gz)73Hm^RA zw~$DOwF6VK1J8cL$!&daL;GD3);ARg)@6}GQr+7Qp)L73cHEQy7psUBVI{x8AZxO+ zOLeP7-(GkTzn!UneaZw8t0%IP?WSYyq{3XSJ6TE6fM&SV0fky!3 z<9HGP`T`^ha34*sCHwzdf^GBk*M9zuef2~kwEh4jVWQG~QH!v0Tbw*jPvxUe0$`lp zqKW+q!P(z+<`6qXc*?}Z)ZjxRgXHB78I2L922zuENAdn!^$-050R!o>_IZaFmgSPy z@@2;{r)nox@R~kgaq!|ve=iCoXQbreGV`0M%6rSCk%8I(Xd5b*WDRN37rP8aNdttUZ*adeoQ45d}=lK-27CAl2du;YSYeifa^ic$4mtDeKV6= zbY~&8+4D=)${99rE7rma0E`kOoDFOsdki$b1uniZ$CfK?New=%4BkA`zba>p5xr_3 z>IC67S?|L{Bv01~sdgL!xA2=L2SXBRfV~+jC6K?>LJQ>2ZurMR25}wKm}?XHhj;!0 zaLF=)NEl?*(SLl>u&gJIuqsUmlFML9J*44KI_m1yrrPYyarZLg)AB5r!vLqMWBi~d z;N5Dkdf!=w%UqzS=@Apa8C*EraQO~U*;CENSzZZ{v^Os8(sn~7WQoN=M;8ZbQdw{; zG`@OxyFk0T5W)C9mxfwc={%=rRs)9+~(gy29@M3Q-}O_=j5d07(he4HynC zKpQKlN)@s?5uR8l-g43D_Iom})FXGJ>OxVa=>!f1JTH#b(wh(z`^1RDE+yP^&0|rz zSL2lEXn;WmkK^&ZU`QE-k{K4|oEsB>;G`mv{5pvv0h&6`D&ElmDQQc?3DV@4mpecr z@?aD?}G2TV#pm?c#^5cS4YnjF* zy7ZFX@%Hy9j${HG;yDeFH@I~A!ZK_FwkN+IX> ze=a^31Sb0A0~_pmU+Kk8Y1rKf>rcSaMPS*gWRnOMq=~s#@m>X3TKRsXK{iW%vwPg- z1@3vv#^P8n(Q?Sq5-!2gX!S)uWsmF{jyLd9+> zIj?1T%Az-D!Tq7I^5FhYlpxmoJl1olx3#NnVD2SA202(dkHlqgx6dzg=I6sG*jJ!M zI4MK|R2w-*Sc{`+f>`~u-OeZ%&E_g)2sZTka`!G;VMy5yh})QZreR;usN4npW6GNM zb{IZ*n4e>gst}deo8$nu^fsuG6BZ&CsEA_y4bI`JnS{9vd^6#4Xd(>~TTm1pFGybm z(T={)wdSCMRBIcB6ON38`O?llHsT|I42|s_4tzDuP4*r(EFBiZZ6Z=iSPaxwnue{+ z%qf7?D_rcKxdyt*Z#wK+H?e6Fzj_gardDc#=1jIxL5SC>Hch`BmYQokeu)U;T*v!P zSIQ$#U~*lbMt?048=(dazMTP$LShQy15DnO$AG0--|ZN&XmPVwJHY`_D|9F6Xpre^ zsj0I784=w1M>}-&n)ccg!iMhU7{W1(e$5Clq~LEIIZ__zUz*prmqBu@BTYtdh@VWr z<{3{a3l50w7yryk$DRI`CEVFr2UvD=txIFrSR@1EUmwu}Hgb$78))>EW=-ipvfs64 zUsOGc+_cyP1>-N$*(7Gy*OZ{D;1(BGYrX^+Vv2CsrR|~^K}exfK1u^Nj67fPf4&(m zbGPK$s=n`PTNsOr7ET8Cz{iRGB{tqF}7 z-klijClF884|u%bC+@LZ>%rXI6NrY+t850@T4P3K>E`ytl@5qsNDQ2fl;*t`sF6Iz z_sF;bM)3<$6z_d;gih2cexWTih6Xw5a(DI|Ywufbu$mI>phb{L$@-;QHIuGTzprH( zmQH~TRvh_bWjUVNyf-!7iUK65cZm)Ud&HIZE8JhzXLWMY-D%SWfonCc$K~w9(&?%F zni1Bc{6et!niaWy)?>$t1Ye#x%GlY)rx+BO{>p#I*P)xk02UZqZJ3NVgvSd=+>MMo zI`0p7qZ6HJP%?yi7A5!wZV#S39}?4&WDj`nMyvBd)Tx$Yl*rxskq$h4aMXR}DddX& z+S5HXQ=9>rdos$^5{ju1{JvbzVcLDETx`hBlERtu57_QfRaN^>C)oa=Fbnv5`p4U&c%cNa2 z4UTSe#l#?db`C1Eny%`!X0>MR1#jw{8TODQ%+~UK&enQ_JRYo>gJ?YLP!$rB0jX;_ zaUL^PvW76d#cwR)>IidS?H~p?@LDYJ0N$LhoiOaF8DBc-F}8&AF4uOmUr%Zyuee{t z6#Wl1%m~t0yow%COLcRuD4Q#W)}-VtWa}8K>^-$6=otHKQ3_ST1P-yPSm``JVF6$4 ztYGF9zOUt`RoVJc_WgXPah=_L@TLo0XgD5vH+Kr-rg1nlyjji+JgrJJQIFkR%#RVL zqW}^31lTmE%INbs)gUTh^mWuN4_Y{`d(s0>Y^neg1L0H1DQwaD-aC-C2!{l#)Wx9C zPwQb5Em>L7Jyp?aAMg!aFW&Y`?Y55_{35GJ)-Ra1Q<+|8Omn%o*C(zSI}3;>D<3EF ztMo70j?dGA{#Sf$#~NNrb%mU8S&i|Sl^!-wXg2R_Ad^9fPBN=ZI>=nDX|%+qWZ_7>oBeRgQDne zxF-^}rI{hiWa-SSho3@-Zas%1%f(s$3Zp07$_jg4-I>6Vl^Q zcrE0Hqh7!YTB3kl3TG(BLjlC%xA(Uo!kBym#n>7K@zNEEf14rKYZ-u{m z1q=Ut@$)xsggci)2|>HhRu;G%-`-+NlNIyPP5C7uA@1Gm% q@7(k^2IimJ|L^?vKLVmn#{0ar)?*iqp#L8M;Iz7)TER)1@P7fnI99v> literal 7663 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 Bd$s@o literal 4363 zcmeHKc{tST9)HJJ62d8|Yi)5<3Q@?Csbn9@UK1i_qGTVtnHD-qnX;5!G2+n3I*J)u zErqhC!HiV03xgSk`x{Q@-uvA1+;i^p^v`{s`~LBJ-rw){eZSw&`+2|H8*|LUNM!Bb z)&c-TOpFbz01(7O^M*A%&{NJZo&tbatBJuOo8Yvu-d=2hh8X{`0;P%N#+j`*B=_TZ z_;a3yIj3t^$lo|ECU^U_s;~;Q4jTA1%VmAA)j8t;FJX0t*aX|YIukPlf~&JD;s~xS zXt?}ej7!5m5fXWFqSlv~K*tF`e~YyQr`xQ$*%6L=;8~afPj`8K#9$wB_zs&7v9**> z$wT6`Hrx*jgn?da(jEn2{1Q^>&c#hYPio2B8JF)20?uP=nUQ<#+4GH32p)uTo7ojB z(yv$yNnccQ+PJ zJ!n{xPSU~e`^YDs-p$w3=7<23dapVfe<}nykERM^X)z$+T!h5800=(-;ZZ~;&U`B@ z3)SYS5Wp+HbDIh%2{vzP)P}b<>O&TN%XvYtx)@x3|28!cI$J#aMu{a>m_s|mWdndL z)CtUY7m@kt`|PheORE5Zn9x}TKovxRTTUd5a0?>LuzSRw4SrfR@U_lzLLKXA_Wo@WPnoMA zviU9U^lna9&;q|7P_wE5^~M|?`E5)gd~8XVin{!2Lcpu?7_TxfAN&0b)@;M`u6}#A z=8wdt^obkB&Kl`_cy|+f;hdtWcg-DaS+>mB*}?8HgQ2mx)|)G@x>e~rC>$rQR9SX9 zh8&;%R}K8;3x9^=2Z*_Eitb$SG2KaIDzEMsk<%{T2f5%H0$UV;BIdL(F6N}+xc~49 z-HMD8mn2r@elWJ_won1%tc0nBIG0Ty#s#Hk$6tBZa6;H@Gkbv*d&yzHT0GN??!>cZcAAxk1sKciY5))F6 zxp^Se7TD)gODBqY*rNg%8olFZ-S@374!GSDY%KuZmJ)CIaU`hsATJV?$5%Im#s(GM zVv63(3@N0uS>o?VhK#)=tpteEoORBFQlqa?6@mL_Q(e(^2#rD*mgwXh~d=p%rFh;T++IpOH^?c_LlIT z3neB*7Zf@$qEu}3tLb6Ek>Tp+XxUN#xs0%-pp?sd7cVK z(WO=Pl(R}c3B~zm>Eom`yv@dR+#qW1tkCDm|EYKQszB+)scXBG=+&ETsdOJd{VnB8 zr--AOLDG;`D=(EVA_@R}jo(brJdr%$P@~*frz47+9M;&9&vc>$@#Rd{{gN#Vz>~mt zpPz8Gwm^r{G71=O46>S9zRAX*vDO(T@uAc(q3gW9GiwNa?o1*|w_*JAFkB03SRTQJf3^cElsPK>UNbb-Irrtc9wO zdocF$5_-;9j9TpJkt`?kl|HMRv0E z<_*5xJ?P?GU>3D}vdGS>uEA8Ib^xmA+igQC?1%6UJoV#+Y3oHXgfLow6ZHgbvS|A2 zt$4KPAjMKvdVIT?J*o5tx!0DVaaAR7Sk&hM4|oQx)=f1PxUwFB9h=LMmJ%S5cZOc^ zuJA*j4ZKk~ljnG~YVGL$gC`v?0zwpn)=8RU%sgZ05zcK!>#+g;wanS1? z6*(R- zi=1T#PqXwtk~R+4c+Fhvh)&i{q9I#$)h+F4!(#Vz7q_RQ^*@I5$(&?S2`R5{o6UK$ zT{$O=Z}9|Y45^xOco>mPGE-TbRuF*5!a?1cl%2&lrP3ESk?vu*&IawGip}O6+jnS1 zVVYv|3EbQBoq8zx;?B2mqzutKdNSom1dz=wD5bFZCPfZ6&zj^1Od6vRSTF55-|41e zFTZr9FT|#1;Z(21Pn|&&fB&_PO$n7LEPq|R($V^nTF-(+kqb%qGcWH)dQq77b8TR{ zhV{GThb2K>JH1m1RU~AeHfF1x1x3wcTV-nFbbE_%)kFQ=iPKC}>k}pKR-@p%r!e!x z^H6UZq+$6M5(3yC-{SDrH;*7!t3@W9{)l@;|8fV%>t{>(nQ=b_3 z^b4B^f_0%@q<9cHVLik!;Uzd$-S^YY{TnRKrlvibm~&6*L^Mv$@&aXPwui-w&wxB6 zR%RgRI{*(UHR4^7P2#w zo2%SzJ%mS~5wq^Ii_|HJxYFycxDC-1uhtlKzNN*NPm@DD+FBybj|o-Z6t^2|ojgtN znIT1_9uyOB6A#nS%JORth&W!*?aE1oeSI2`^)M3VlbWLL(|+<8(|JpND@@=nth<~! z%`l4ERFpuO%6nZrWYn^7c;H}qVYplb4Cj7?HL`*l zl&$TV)xV6!m9bpwb1{-{9sD9kY6E92T-SLh_RNe1eHj35_Rf+}rZ{ZS8+M?xWF;D* z6p*_(pV+iBCN(~-r){EfRBp$w`Az(1$W9^mN?YM0Dv2}w6Z@)~4deA-ea#rcTw3c~ zQifyIuQsrpcz5Ibk+ATXM*qP2-kL_Vtv2J4HQj`EIo`S8^_@1H){$iocZCb)Gm`Ic z|JI$>zi>0+=0|)phkJQ_-#?e1=^>oV_K;usstDaw32~L;+?OoWU#$tzE@vsC4-%|S zPW*PwH87RwCyIV=awDNeimMQSAKc#k@Dj3$@;_I={|%#yLZ9ZEd@L6&#khMiIci}* JI(+)l-vRwXBHRD~ diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/TIMESTAMP.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/TIMESTAMP.png index d64dd1cb2841c36f7bb3c809fbce3d2a77e743df..8ac215faa811c009b8d3f58fece01e2c0f637a8a 100644 GIT binary patch literal 3552 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ULOG.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ULOG.png index 086673c729361a8f436f0cf8773c8029dde82da7..1c414f29b5365d5d0f7e5b10b7a4fe42eb076a67 100644 GIT binary patch literal 4435 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 Mj#cTKe2k&>5i2wiq literal 3429 zcmds3c~nzZ8oz-+SVjS@fGm<4d)S0%0S5vkp&}@<1O%Z31Q!BqUWvOHhlfvPYc&5-|t_gpgzsJN>WIbLPxU|Co2)dH4Rl_wK#l{e9p4 z-tQv8({+QIo*DpP!-4(IJ^&~~vVNC}g6x^w5s@ad?>yk_uC%4j#(htayWqYP^c{=v$Hx1jp9t!j19{8@-tgleKsx%s`IeoBrS7 zS~OE}y1HP3e7&ZAt_s6Su36r)mg1?t`d zK&6ixKXcL4^^px=o79k*XO2>?XllkDi3qv?8#sYxJf=ESDU*Q5PM>Bc0TbZxJlO1h zQ&U@f`tU(&rFk#=5FrGGC}&@2j$&Ta#osGk)d8mm6T^#ZexU$IBjiZCx^?O=5%07} zX4oD@hRTJ)(#*Bh2JJMs!_Tz~J8!nUKxb!2s3N~F)YxV3>|i%;~pVC4ePnf8ng$oXPXvJ z7LUAFo!2CWO^fdb!ktU}^$kC-C|<3r_Il=>m4ZZZQ*Oo}K0}VQy)$vb8}d0-D0siM zN8k4J60(995>kZp27{j#=;f2d=SDK$dl>*vc7F+3|@%2(R$Ru$6qP;KwJavb%U@ZZgbq@VKLxK5fYqKag8%rNXi5 z7IKj=AWyi&Dtn>ImCud*9(+2K3jcFRD6Xj&VuSL1qL}LPl{@t?59J5ruexiX=djzO zh#u>|ugmH}-SH(@Kuv|bX8cDLqC%D*Y~bT2z`6JJCwaa6VCQZmc*Bsa^9ZuJ@%voZ zKh68N4HsC5K9?;;xbaUOZe*$*FVTqa_S{)Yj&zqNY<~pYU|l6IQI^FJ_BWbL>lhYO zAl%i$Fg-SGb>RyldCSu%hepr$4D1Z?loPXcL@cCWSC;+N!PD_xd<5&JDFVXeLJh{E z+nju_By_+9|=v+Sx8~ z4irPZR^CW>FkiQAg*KeQ+t)dmiSgR1J~%(y#IXUDAK1c6^hCX{se6OAR(QwE6S zZfzJuj}r*?#TbH@$KVDemu0cO$1)t)I>`gK6^5YP8}LZJW&pA)WYa|DLW·ZJS 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 literal 2870 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 literal 4390 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 F{RbsQIu-x` diff --git a/yellow-paper/docs/public-vm/state-model.md b/yellow-paper/docs/public-vm/state-model.md index 87e309d4595a..cc92dc820da2 100644 --- a/yellow-paper/docs/public-vm/state-model.md +++ b/yellow-paper/docs/public-vm/state-model.md @@ -66,14 +66,14 @@ A `tag` refers to the maximum potential value of a cell of main memory. The foll | 0 | 0 | uninitialized | | 1 | $2^8 - 1$ | `u8` | | 2 | $2^{16} - 1$ | `u16` | -| 3 | $2^{24} - 1$ | `u24` | -| 4 | $2^{32} - 1$ | `u32` | -| 5 | $2^{64} - 1$ | `u64` | -| 6 | $2^{128} - 1$ | `u128` | -| 7 | $p - 1$ | `field` | +| 3 | $2^{32} - 1$ | `u32` | +| 4 | $2^{64} - 1$ | `u64` | +| 5 | $2^{128} - 1$ | `u128` | +| 6 | $p - 1$ | `field` | +| 7 | reserved | reserved | > Note: $p$ describes the modulus of the finite field that the AVM circuit is defined over (i.e. number of points on the BN254 curve). -> Note: `u24` is used for offsets into the VM's 24-bit addressable main memory +> Note: `u32` is used for offsets into the VM's 32-bit addressable main memory The purpose of a tag is to inform the VM of the maximum possible length of an operand value that has been loaded from memory. @@ -129,12 +129,12 @@ M[dstOffset] = cast(M[srcOffset]) // perform cast #### Indirect `MOV` and extra tag checks -A `MOV` instruction may flag its source and/or destination offsets as "indirect". An indirect memory access performs `M[M[offset]]` instead of the standard `M[offset]`. Memory offsets must be `u24`s since main memory is a 24-bit addressable space, and so indirect memory accesses include additional checks. +A `MOV` instruction may flag its source and/or destination offsets as "indirect". An indirect memory access performs `M[M[offset]]` instead of the standard `M[offset]`. Memory offsets must be `u32`s since main memory is a 32-bit addressable space, and so indirect memory accesses include additional checks. Additional checks for a `MOV` with an indirect source offset: ``` # MOV srcOffset dstOffset // with indirect source -assert T[srcOffset] == u24 // enforce that `M[srcOffset]` is itself a valid memory offset +assert T[srcOffset] == u32 // enforce that `M[srcOffset]` is itself a valid memory offset T[dstOffset] = T[T[srcOffset]] // tag destination to match indirect source tag M[dstOffset] = M[M[srcOffset]] // perform move from indirect source ``` @@ -142,7 +142,7 @@ M[dstOffset] = M[M[srcOffset]] // perform move from indirect source Additional checks for a `MOV` with an indirect destination offset: ``` # MOV srcOffset dstOffset // with indirect destination -assert T[dstOffset] == u24 // enforce that `M[dstOffset]` is itself a valid memory offset +assert T[dstOffset] == u32 // enforce that `M[dstOffset]` is itself a valid memory offset T[T[dstOffset]] = T[srcOffset] // tag indirect destination to match source tag M[M[dstOffset]] = M[srcOffset] // perform move to indirect destination ``` @@ -150,7 +150,7 @@ M[M[dstOffset]] = M[srcOffset] // perform move to indirect destination Additional checks for a `MOV` with both indirect source and destination offsets: ``` # MOV srcOffset dstOffset // with indirect source and destination -assert T[srcOffset] == T[dstOffset] == u24 // enforce that `M[*Offset]` are valid memory offsets +assert T[srcOffset] == T[dstOffset] == u32 // enforce that `M[*Offset]` are valid memory offsets T[T[dstOffset]] = T[T[srcOffset]] // tag indirect destination to match indirect source tag M[M[dstOffset]] = M[M[srcOffset]] // perform move to indirect destination ``` diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js index 0c9b96882096..1317d28e14c9 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSet.js @@ -354,14 +354,14 @@ const INSTRUCTION_SET_RAW = [ "#memwrites": "`s1`", "Args": [ {"name": "cdOffset", "description": "offset into calldata to copy from"}, - {"name": "size", "description": "number of words to copy", "mode": "immediate", "type": "u24"}, + {"name": "copySize", "description": "number of words to copy", "mode": "immediate", "type": "u32"}, {"name": "dstOffset", "description": "memory offset specifying where to copy the first word to"}, ], - "Expression": "`M[dstOffset:dstOffset+size] = calldata[cdOffset:cdOffset+size]`", + "Expression": "`M[dstOffset:dstOffset+copySize] = calldata[cdOffset:cdOffset+copySize]`", "Summary": "Copy calldata into memory.", "Details": "Calldata is read-only and cannot be directly operated on by other instructions. This instruction moves words from calldata into memory so they can be operated on normally.", "Tag checks": "", - "Tag updates": "`T[dstOffset:dstOffset+size] = field`", + "Tag updates": "`T[dstOffset:dstOffset+copySize] = field`", }, { "id": "sload", @@ -463,7 +463,7 @@ const INSTRUCTION_SET_RAW = [ "#memreads": "0", "#memwrites": "0", "Args": [ - {"name": "loc", "description": "target location to jump to", "mode": "immediate", "type": "u24"}, + {"name": "loc", "description": "target location to jump to", "mode": "immediate", "type": "u32"}, ], "Expression": "`PC = loc`", "Summary": "Jump to a location in the bytecode.", @@ -481,7 +481,7 @@ const INSTRUCTION_SET_RAW = [ "#memreads": "3", "#memwrites": "0", "Args": [ - {"name": "loc", "description": "target location conditionally jump to", "mode": "immediate", "type": "u24"}, + {"name": "loc", "description": "target location conditionally jump to", "mode": "immediate", "type": "u32"}, {"name": "condOffset", "description": "memory offset of the operations 'conditional' input"}, ], "Expression": "`PC = M[condOffset] > 0 ? loc : PC`", @@ -500,10 +500,10 @@ const INSTRUCTION_SET_RAW = [ "#memreads": "`s1`", "#memwrites": "0", "Args": [ - {"name": "offset", "description": "memory offset of first word to return"}, - {"name": "size", "description": "number of words to return", "mode": "immediate", "type": "u24"}, + {"name": "retOffset", "description": "memory offset of first word to return"}, + {"name": "retSize", "description": "number of words to return", "mode": "immediate", "type": "u32"}, ], - "Expression": "`return(M[offset:offset+size])`", + "Expression": "`return(M[retOffset:retOffset+retSize])`", "Summary": "Halt execution with `success`, optionally returning some data.", "Details": "Return control flow to the calling context/contract.", "Tag checks": "", @@ -519,10 +519,10 @@ const INSTRUCTION_SET_RAW = [ "#memreads": "`s1`", "#memwrites": "0", "Args": [ - {"name": "offset", "description": "memory offset of first word to return"}, - {"name": "size", "description": "number of words to return", "mode": "immediate", "type": "u24"}, + {"name": "retOffset", "description": "memory offset of first word to return"}, + {"name": "retSize", "description": "number of words to return", "mode": "immediate", "type": "u32"}, ], - "Expression": "`revert(M[offset:offset+size])`", + "Expression": "`revert(M[retOffset:retOffset+retSize])`", "Summary": "Halt execution with `failure`, reverting state changes and optionally returning some data.", "Details": "Return control flow to the calling context/contract.", "Tag checks": "", @@ -535,21 +535,20 @@ const INSTRUCTION_SET_RAW = [ "Flags": [ {"name": "indirect", "description": INDIRECT_FLAG_DESCRIPTION}, ], - "#memreads": "5", + "#memreads": "7", "#memwrites": "`1+retSize`", "Args": [ - {"name": "l1GasOffset", "description": "amount of L1 gas to provide to the callee"}, - {"name": "l2GasOffset", "description": "amount of L2 gas to provide to the callee"}, + {"name": "gasOffset", "description": "offset to two words containing `{l1Gas, l2Gas}`: amount of L1 and L2 gas to provide to the callee"}, {"name": "addrOffset", "description": "address of the contract to call"}, {"name": "argsOffset", "description": "memory offset to args (will become the callee's calldata)"}, - {"name": "argsSize", "description": "number of words to pass via callee's calldata", "mode": "immediate", "type": "u24"}, + {"name": "argsSize", "description": "number of words to pass via callee's calldata", "mode": "immediate", "type": "u32"}, {"name": "retOffset", "description": "destination memory offset specifying where to store the data returned from the callee"}, - {"name": "retSize", "description": "number of words to copy from data returned by callee", "mode": "immediate", "type": "u24"}, + {"name": "retSize", "description": "number of words to copy from data returned by callee", "mode": "immediate", "type": "u32"}, {"name": "successOffset", "description": "destination memory offset specifying where to store the call's success (0: failure, 1: success)", "type": "u8"}, ], "Expression":` M[successOffset] = call( - M[l1GasOffset], M[l2GasOffset], M[addrOffset], + M[gasOffset], M[gasOffset+1], M[addrOffset], M[argsOffset], M[argsSize], M[retOffset], M[retSize]) `, @@ -557,7 +556,7 @@ M[successOffset] = call( "Details": `Creates a new CallContext, triggers execution of the corresponding contract code, and then resumes execution in the current CallContext. A non-existent contract or one with no code will return success. Nested call has an incremented \`CallContext.calldepth\`.`, - "Tag checks": "`T[l1GasOffset] == T[l2GasOffset] == u32`", + "Tag checks": "`T[gasOffset] == T[gasOffset+1] == u32`", "Tag updates": ` T[successOffset] = u8 T[retOffset:retOffset+retSize] = field @@ -570,27 +569,26 @@ T[retOffset:retOffset+retSize] = field "Flags": [ {"name": "indirect", "description": INDIRECT_FLAG_DESCRIPTION}, ], - "#memreads": "5", + "#memreads": "7", "#memwrites": "`1+retSize`", "Args": [ - {"name": "l1GasOffset", "description": "amount of L1 gas to provide to the callee"}, - {"name": "l2GasOffset", "description": "amount of L2 gas to provide to the callee"}, + {"name": "gasOffset", "description": "offset to two words containing `{l1Gas, l2Gas}`: amount of L1 and L2 gas to provide to the callee"}, {"name": "addrOffset", "description": "address of the contract to call"}, {"name": "argsOffset", "description": "memory offset to args (will become the callee's calldata)"}, - {"name": "argsSize", "description": "number of words to pass via callee's calldata", "mode": "immediate", "type": "u24"}, + {"name": "argsSize", "description": "number of words to pass via callee's calldata", "mode": "immediate", "type": "u32"}, {"name": "retOffset", "description": "destination memory offset specifying where to store the data returned from the callee"}, - {"name": "retSize", "description": "number of words to copy from data returned by callee", "mode": "immediate", "type": "u24"}, + {"name": "retSize", "description": "number of words to copy from data returned by callee", "mode": "immediate", "type": "u32"}, {"name": "successOffset", "description": "destination memory offset specifying where to store the call's success (0: failure, 1: success)", "type": "u8"}, ], "Expression": ` M[successOffset] = staticcall( - M[l1GasOffset], M[l2GasOffset], M[addrOffset], + M[gasOffset], M[gasOffset+1], M[addrOffset], M[argsOffset], M[argsSize], M[retOffset], M[retSize]) `, "Summary": "Call into another contract, disallowing persistent state modifications.", "Details": "Same as `CALL`, but the callee is cannot modify persistent state. Disallowed instructions are `SSTORE`, `ULOG`, `CALL`.", - "Tag checks": "`T[l1GasOffset] == T[l2GasOffset] == u32`", + "Tag checks": "`T[gasOffset] == T[gasOffset+1] == u32`", "Tag updates": ` T[successOffset] = u8 T[retOffset:retOffset+retSize] = field @@ -606,10 +604,10 @@ T[retOffset:retOffset+retSize] = field "#memreads": "`s1`", "#memwrites": "0", "Args": [ - {"name": "offset", "description": "memory offset of the data to log"}, - {"name": "size", "description": "number of words to log", "mode": "immediate", "type": "u24"}, + {"name": "logOffset", "description": "memory offset of the data to log"}, + {"name": "logSize", "description": "number of words to log", "mode": "immediate", "type": "u32"}, ], - "Expression": "`ulog(M[offset:offset+size])`", + "Expression": "`ulog(M[logOffset:logOffset+logSize])`", "Summary": "Emit an unencrypted log with data from the `field` memory page", "Details": "", "Tag checks": "", diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSize.js b/yellow-paper/src/preprocess/InstructionSet/InstructionSize.js index 0cefffcf327b..f6cac342791d 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSize.js +++ b/yellow-paper/src/preprocess/InstructionSet/InstructionSize.js @@ -1,7 +1,8 @@ const OPCODE_SIZE = 8; const FLAG_SIZE = 8; +const RESERVED_SIZE = 8; -const DEFAULT_OPERAND_SIZE = 24; // for direct/indirect memory offsets +const DEFAULT_OPERAND_SIZE = 32; // for direct/indirect memory offsets function argSize(arg) { if (arg['mode'] && arg['mode'] == 'immediate') { @@ -31,7 +32,7 @@ function toOpcode(index) { * 1 byte for dest-type */ function instructionSize(instr) { - let size = OPCODE_SIZE; + let size = OPCODE_SIZE + RESERVED_SIZE; let numUntypedImmediates = 0; for (let arg of instr['Args']) { const aSize = argSize(arg); @@ -59,6 +60,9 @@ function instructionBitFormat(instr, index) { 'code': toOpcode(index), 'size': OPCODE_SIZE, }, + 'Reserved': { + 'size': RESERVED_SIZE, + }, 'Args': [], 'Flags': [], }; diff --git a/yellow-paper/src/preprocess/InstructionSet/genBitFormats.js b/yellow-paper/src/preprocess/InstructionSet/genBitFormats.js index 99bdc4c34f83..c406f70a85eb 100644 --- a/yellow-paper/src/preprocess/InstructionSet/genBitFormats.js +++ b/yellow-paper/src/preprocess/InstructionSet/genBitFormats.js @@ -10,6 +10,7 @@ function run() { const bitFormat = instructionBitFormat(instr, i); formats.push(bitFormat); } + console.log(`Writing ${formats.length} bit formats to InstructionBitFormats.json`); fs.writeFileSync('./InstructionBitFormats.json', JSON.stringify(formats)); } run(); \ No newline at end of file diff --git a/yellow-paper/src/preprocess/InstructionSet/InstructionSetMarkdownGen.js b/yellow-paper/src/preprocess/InstructionSet/genMarkdown.js similarity index 97% rename from yellow-paper/src/preprocess/InstructionSet/InstructionSetMarkdownGen.js rename to yellow-paper/src/preprocess/InstructionSet/genMarkdown.js index e4b2d110a9f1..e26940ef03f0 100644 --- a/yellow-paper/src/preprocess/InstructionSet/InstructionSetMarkdownGen.js +++ b/yellow-paper/src/preprocess/InstructionSet/genMarkdown.js @@ -19,7 +19,7 @@ function stripBraces(str) { function instructionSetPreface() { let preface = "[comment]: # (THIS IS A GENERATED FILE! DO NOT EDIT!)\n"; preface += "[comment]: # (Generated via `yarn preprocess`)\n\n"; - preface += "[comment]: # (Generated by InstructionSetMarkdownGen.tsx and InstructionSet.js)\n\n"; + preface += "[comment]: # (Generated by genMarkdown.js, InstructionSet.js, InstructionSize.js)\n\n"; preface += "import Markdown from 'react-markdown'\n"; preface += "import CodeBlock from '@theme/CodeBlock'\n\n"; return preface; diff --git a/yellow-paper/src/preprocess/index.js b/yellow-paper/src/preprocess/index.js index 71c4227df065..fe2167bdf096 100644 --- a/yellow-paper/src/preprocess/index.js +++ b/yellow-paper/src/preprocess/index.js @@ -1,4 +1,4 @@ -const {generateInstructionSet} = require('./InstructionSet/InstructionSetMarkdownGen'); +const {generateInstructionSet} = require('./InstructionSet/genMarkdown'); async function run() { await generateInstructionSet();

Yhox_2inGU zFe5~}Om=BpK6@-jO{T+p5_c%u5W|`&fNf~GZ*y8xneEv+a0rfd^bT8PE(MWJLW}d8 zi50Gzef#{&`-bxLwIY>GGDls%%xUV6>k(@F%&0xB{(!=}fyrWIoWI5B&{X=1BtPSZ z9~oEMO{WfLWv8BHP<-38OlatyGvSl<pKv@r6iUT5wibCYg4Q9Ue zA&76CvJVJgw)8P7qav+Ky;`z6*YuX(@Hb~MUff`_?DmfTfUv$@HQaI2E;(UkTTVdU z{XH-TyJt@>v=qL#l;~)Lt=ci0zp*3OB-?b(BRFYGK_H#DB<)rDT~+!(q&|Rj=&Wv4 zEiIxaM#+CSK=swkD(E{HiHbQ9sshm(IIopyXtoaCCL3_&hk}?~&s_ ASO5S3 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/MSGSROOT.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/MSGSROOT.png index 5f7b9c3dc125f5de3008f0701c7a9b79d8c3063d..d39c81f4564772e9c7711bd57f1a842b8f1d2872 100644 GIT binary patch literal 4441 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 literal 3687 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 PrrRukwK1(a>3QvMWG|3J literal 3713 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 JEB@_w{=dr0n7#l2 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/OR.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/OR.png index e87aa2a2d5c6990b73eae527bbe1e75e1372896b..d796c0b5488e372a5b1b05fca7f42a8c82cc5556 100644 GIT binary patch literal 5424 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 Rbx^_V;_%gW*0!Ky{{bX}Gra%+ diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/ORIGIN.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/ORIGIN.png index 3a3c85e3936b51fd000c4f3af05cb70d12dd563c..f712ff960843eb18e23d0282da8b1f5cfe82b50d 100644 GIT binary patch literal 3550 zcmdT{cT|&E7XL^n(iuUKCe{gppg?Gn!YG1B34#L}#0VmR01}$iKo|=H3e3=(5JA8K z0SrYtf{LMKh^sV7Kn0`*DZvoRemI^zXV00lGkf-&-Lu~x@80kJUcK-4?z=D6*2Y{? zOi>H~07;8ergi`z)B@`CZ4j`$JuW;5+6ygAe>fYGGdnz-lwG%7*fxN`+DtW)XZf93 z3)(NU=iIb^B-)3NaWW2MRJ75CX-XJthL6*tX3UECI;> zH5BDoW>QO?Zi@QE-x$=}T2@gcelG7BJ-ncJv9!m8w-Fq*Sr)?<0TH4GiJizy9>rjL z3FIxu!bc4_E`|#EMm{2Hc>^ZPG?KOxs)jXzDi4*c31QL1KstA?PU+LjOy*xF4KldqVJ3}wsq4T>Izri^+O zM&oIXZQ=c_QKUC#es`%ar(5J}%c^zfMhGz;#~oN%uktz`&~zPd=q~}&Nqb2TG=27J zK5W?c!2^W1UWxuoX(t8ryf*Y^aMrMZ$%E;-Nit6o)-H3S=!&`MzJkpOUHPJ2C*7`lT2$QCu3V^oO+h7mWG_jc}%RPz0R&NSnWHQ3rB% zVW=yrX^6ixp;`zYe@7jt(8!xQYPPk7d(<`nD7zvo_SW8>e5628J*C7Fu6q&fmiB|&TE{iU#^npaWe~}w$oO{R|V%TW8rD6RvK++IWo?x zFRTV&1e}V#yS}4v*B*vM%3@d3)V{^!)Vw2&sLO+>+NA+p&TN!@UW=CxsS|U)5E62) zaDPR_&9iX=`r6R31Jl~3I?bw87ucQ$ovuy=EZwG~&ZjqfGc{!UN+sF;%%U-NFtP$&SnH*!Wvwso5Ijg+b^?`m%r^=7Qsjg&%u5DKEEVYw9 zyLSQS8rg)|P(0(8XQ|(f#^S;TO4PK@a)ykqJ&`a8m@DVo$3>^>LWSn$e&L}kLp!1a zeqJa`Q9l=Es1axUz>kPF_F9+1e+S^}s^<>90C4UU6Wxy7%%oYUGA-Q+7-bJ{Gp=;ZtOEP?c55A;LdNXauUt{8(dh{=1>zqB2bme<9ezeq?&^RB^rBj)2V|vAt z^hws4O5F=PL`R-g@9eimN^d@rgO3M#))cG=@(n z=?R2r{yxDGofzEOk!gKzoF~$tDkT-cV7kU zdzktrs2kJz{`gDj@Lg!2WvDVzBv#?iZk|66A>Zz+FZE$U9wvQ3Z1fT-YBme7XKPln z#%nJM5RRx&j8@RZ)zVQ0^U=5yq#+s{Rg$kVXp`ut+8hW}Pt{$mcEv$n z8^RL(@<-`Agi5#OCeD#H>E>&bfUiRY86P8MYex3>GQXR-c5HHUfDM!6kv@#dY7i;~ zfk#s!)Qj?DSb#XAvCAey8Rh>zxcxcvgqlOq1*y$rGrF~kh_+8f*{PfwGs^^>`gLlQ zIgjfi)L*w$h_m40)@sw-t6|0>r_}59+^b1V#G8GZMI!M+q@5+iCJ*_jYvjin(f;-t z1MQz+ZO)cD$nyq+j+qYg5|$WsqvC^o*wt$~Wsd!u-CB+9d)Xl%mq=RV(+gK9bY4cyXV@@-BrM^b`btCK27ZkKiZ)tiPNt@GJv!(P(89P4M<@AlfbFCI=g zS%B}KEpd-gh3|Y7v2Tac)|hiwCPzQgBvIlOuL9d^^^ks(BM&2?dz3}>u>M6zr_a%` zKCBM$!)5`k(g=+0H2H*E9Q{m9%}41e0w+B=PYuV?wd^twe(+2p#mR|{xx=Nj71Onx zJI+lJt7Di|;}=`Y77Vb2%8ypY219pujI`ueY=#`;^UgEa7#6!Y)ne}fQ=54W8_gnm{7XC!)K&gP%Ri9-sdqs zes@5apWd_)Fy}qCQPxY6`FfI+R6-ty{vc#{ZIUh?`qc(P`ltN*f7j{@+REm%a40r?>%9S3oU}2e9>4U{-vQ^q BV#ELd literal 2882 zcmd5;c{CJi8-It%l4U|!vnASWAvHyo6lzd+Mv`P?%|y+hv5kwORF)EhhNNU|D9vCn zrf!$!+FEGPpou}k;Ko=6-{|jqzVCkDIo~<=pZ9ss`z-Hyp6B;0$tRudWj3mA1OUi5 zI@tXJ0MuG|XG(|&&x+u8Y5+({I@;NwB1n_{9{0-4!3Ku*zU4ua#VgH^+J3XOcoRQW z`GzRhBk{_{HjFU1CRE$LP&_9lr1#~~0K_SaNCU9xNE`%!3lhcvSW82M%$wQ_p~POO zG5}ghKoo#CoBkQX3&D+$IT|^7#eR?dbJ#*R7(LSo@D6*fWRRF?^XRdcZ^{CLU*!!=-hU`Uk}MYqDkQC`qIK8OG7z7FrqGf;PxLm zG_smoHa;9D^U7_=-(JBkd9||>m3``VgepV~y@B6RYEIta$ttx#AtNL7kGzd2r1J)A zKIDO&``tXGhYQl_N@Y$|(;&IdC*nyvOs?M{Fbyh9A|Yi47kY;`z2I9>dbR}~gGmDt z=P`>vbm|hTprUAG`b-o$qLAaH?_^aT!!~jwp26UDOPu+%vX~Pk?~?NM;t$63N%Fo@ zQ!;#9K5?Y%*6ufM8JTwNoaaB*!~Gu+v(}4|4d?D0-AJBqy#Hq#ZXQSB6_En6s)^+U zBd$d?DeV7&#<3;(;(ykd@%4#Inm!SFyxht>^Rk%5dz7`!caE3s%pj!Tm)QEg zYPUTNi)m8^N>bbViXb@x1t%HfC*mU(8OWoVF)yYU**}m&Tq)M!#Tyyi%H0`(m;iWr z`9+37d)}@;Jb;tTv`rkGiIXnbd(2?p;!}U=L*p%q^ZB_0zOIUdCy{w zm$+uwZ@GHchzN({E_Ig;O5r_=S*s_9)L*v3&L6<}grs{%X0FnVHx*Yw+*dQ|tXN&( zaumA57@zDeC!ZwgEvSrsMyMU0)f%cZsY~G!Xntws23Mk^)kktw(GD;~1J$YekOx1M zeYn4-TB5dK4{5X6zAMpD=(sg??95(x+3-d;ID_7&!OB&QkcEgXbYcURRy*P4q8<1| zowG<$n74#`12wJndqGpt?8mjfasJG3CR5`}Z0cLs&oA0kMl^^Mo3;b@2XghvTL+h>0jq0aj$_nTX)84oc zX=y2gXh#!wisMk{=%*6Qb>}t_954P)0@!-ktcb# zLXUWCXD8Ci5Xsnqqnn4XFZ=V z>8jjA1q?~EeT?mv#*Cm!wTG>hJ4AXMkfI2Aw4r@HVq^H01MyGA7SIwZf7R#T7g?zV zq#gy}jP5~^vH0~V!1h+vi#SONnXAkwpHN_ZV@*u_c-1XsN*wb4rZk7mXhbYabqxx3D#4nId{8+;e~LwiGLU zFZo&pOJmmD`_(C&)x|SU)lk0gkx(U6EP8+keR3+{G&FlpZvDfTMVX`q?A&8+V;r5Q zHg%hdF&d5CeeNVDzHS_f$`9?++m<44<}1<5)qk1X-OiQsd+}H(IC6uE5ubXt1Vs%P zUVQaM*yGOim7f~O-`kAuvpXssHVj3PHVWeE&8DH2PPA4p8)_ouIsV(4dX{^w z$^>SX@3la2Ggu3Ukv*5$4>xCdtu&4t%ipXh+t4l3o_mfiUM3 zonm06wd+d~CuU}tRp0axMy-eYF7TOTbcoS?L{l{Z*3teal0MD8N?tl|O_}xQ6gW1P zxj25#{Ppqdh*aQ-xH?+m(@>7#94qviR7-tOy?ATot$EdD*%->W*qcWlIJzf&c_miS zAwZ(Hs8O~3^X>O2>V zwBMS|_51W}<-0=_Q@5p^cubOP4MR}5dsuL8@r`>Q0xv{1ne|=^oeOG!XuL@HGx(z7 z6rR+<%}F}aABT%Ve1a6^%kc?!S1gCvZG1bG|FVKdJ+|sk>DmtIFI*(rNBU%M09g_W>+;eT2 z+&FC;5W=jZxOrJY5?lHVpV@mqAKlu3QOj|CP$q=;*M|jjn~Xh5tS&uT1?f9i1V!S1 zZ%gxa5m~9`gr@*7jd(Aob$ES9cY6PIFZieKe1CKGY;NKk*`_2h8^?t{0>`7yc4S+0 G!oL6tgpr>B diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/PORTAL.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/PORTAL.png index d2527076087ba95466d8ac370ccda16717d9c11d..2aa7a82f2033168c88525edf69a806266970e105 100644 GIT binary patch literal 3547 zcmds4c~p~E7XQKyMW6&lK!J*Y$`VmPDM(NdL@+_DP+1}(AhK_TAV~;IK^8#)L6#Cm zL{N}@ktL8Spdlbd5X2_3qai4E2le zNWv|aaRg*t6B`uZPjE}D7BP8Jc6@7yv`yvw%ko%qJ7YzOw zu0ns2x;Zv^>L1Bzhj>Dz2-E_G)*?6(q*Dp3I{u#G85q%i^vqs_N5!2?-tE|=C0@(5 zvN98vL8W20bd&;oQBUy42qzj~RyNnd!z(0YV#Us^)D{cf8`xR7B5^78z%j=CSKM#< zxiK(^1WAe^W#?y#XsJAoKIFA{xAa3${F0y`L?Tc>t=C`rwX>2A9WGxb-KWQicQ?Ox zr41)zSaAnBotVlyS)!_rb*tW#w zt2HNS11{G>Y6C*F?5vKlJZJ9eR~bs(A|J=O^-9W(z3w$nzVK#3!G<;K1CvOtf)}3VES!!q@t1ks8y{>WCK!bLDKMw=XQXLW?pcZoSzySc$dYn+$GMgOJ@qS?ufaA&Qm*Kf*I5v#^3WonZ3LZ1c2_jO4HSUe9_s~H z@_+&c&TnfWshc?F_r_c`nQP_L$n(~6OQL1#*1uX8D!h);A1-_mT1{o+l6^T=~ zET2FoLftxS4vW0E!G|;qLhnXSPnpW6UyRVX<*jW_e&1kR8_v))lINVG#I;_C(!BiR z+|3j7&uv*hJffaPch^=NOt=HV+18Q*Iy~9z^Ll0(Ht5Rg@Z0t>_NmZhUPocWYA}Tz zDdUR`sbqt&%I?Azs>8KD#onJ(q#8_~>$3C5=NOku9_a!iy^8b~#xCT0`%XW9Bncfj!Fa@@HWxRAYoj>q3IUqM^b3+OmS?D-Qmmxw%xT=v?6Ps>;F>@(ygmTV*vh96;e4X-=e0|;=zaz_Pc zeMD6MGvyq^Nz{q&1%V# zq^Zts5uZ)Aua@j}ivwoutqP5!+B{1})f<13Kk3@YKUyfN-xFWWs(PzAMPM zWN#53m<{%8!k@640|G#gvZnsSPs4SNleR2r2-1P~nZd8)L8IUoa}}K$JSe`0^QncQ zc`aCNI#DfE1(@)6>WJ->{O{@NHcPmiT3FrgHA8+RKy_>IlXr?t{H?V#9IyLJK2_8)avWVHbQzCmTh=J?SW6`fKF!ack^`887c#<#ELi?^ z>d3R9LoPg1O13g8sqTFUYHYXv1h3cZCUxzeH0dGxNHAr;|8RH?Q>%yuL54o^+eYno zrd$eW8xot)=JVf#9DZgs+f^s>G4HHQZq)6CRB-H+ zNWlT#!OlxQi0wT`8k#6%WEN~8SDm3GIOHbMQ|uq8sp0&~65WHDuF+>=uRETR5Fe%V z()-CkhSq*sUBS@ZlpGZ8GPh`Usu0q+JFD;fyU*QI4hE2m^)aO&7=jI@jC~7yf;8p4 z>CK$n0QZlDvJxhphi5%&GHv^Yxnrn$b6&{p^&_W9W=#IQY5j z7&J>gw4^M5_9}(K3}A-@n7XGTRco41yHyB)A7#OleQV2dKVUq)OQ X=T#&v<_A(DpQo+QA}lJ;xW)b*e3XP~ literal 2885 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 QKgX~p23IfPeszxd8|o>S2LJ#7 literal 3716 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 diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/REFUNDEE.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/REFUNDEE.png index 178317758fb762a905b8bf2a3ff9feca1bfc4d98..70ccb4c1f5a91a886e62f0c399de9e395d585873 100644 GIT binary patch literal 3553 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 KJ?Yzk8-D{HsCw=I literal 2886 zcmd5;XH-+!7QP`=X_lb~h{lof=t>zQC82{%LP*F5gjewE>2^bWlD3KsY5g3&s z0Z~wDB8p5PfOKin3wp$V* z0B}lF4*-x75Mcng4*P2uFZM=3=fg2;ytF3nNQf8!phvka%iIjy3i%RNn)O}^OzCxk z9BWRlr{sIw>fPa(Q!ec}p8$&dZU``8fRkg@%JmFEW}J`h1OTa}RLyP|`nNVIFjGd{ zRu_*R{4Aip56~yfe-N$*G3dM%1B)&bi2{+qJ8($g7iGJDgN+S=c!hsQeU!Mt$}R31 zO#~mm4bFc34zEcoh&$2f-J0?@s%BtHY@Jtl;VZN$bMs)3vwnl`7EJ@Ctn45y;bPE$ zw&Pl}9WjF`nymUGwFwht7oHS}6+#f!v(;5? zZm;%#pjk4F%NrP}1hFdr1-!p>D_dgzfMR9*hdsy>7`gn(^LCq%eaE6ih%o;@OZQ}O zBP4OHt9qk*QB#p$y1?Da{#K2t-wBA`7ZIKc$NZAzrs^vQTvz>(mjo<6=w%3%Njmvb zZj}iDb1Mvn)8$7(z-56SMRrnjXvpmKXUBJjzQ(~G>q{zuu`;f{_ACJ2Zo2eJLjPzXA6JI=VjJQk)|w*5?M)wpGe?4KMZRijeP5ieiDm;lEFK+*oq!9Zl;f&+A`iYFaqh;y&DEo!d;N+vGC6JE`!K2T<<6UpW_nIdn-O9ePd>Zvkv0;(Wm^768% zFX{eOSjy{)uJW;xsW#QM>1JO#)yU)d>$-4=T;!;Ec?l#z0%q(vrhgr;eZ`fVgtI&$ zGtR$2ce-*miy_2`F*|aKgFIrYhfHCvD`p3Yg`Ebk$5C3s_58x2W+zua+iZo2cx8D% z!$>4)7nrhrlpnD_CX}GVH`&3k0d3O(9DMkUTX7jf%)pQ#V)^?&YwpQ9n?r|jS^@w= zqk9KZ`g`l2mg-fvRkItOulwq3r{ER~*xfdZv;Xnyf1L{7%LHhsqv0EUqR025wnjBl zeT>7*+dG`Nxrq*HRY>}BwXQYD4Ics8VVJ*-81d7R2Jg%$F6qY?Kpq?9?bH0oqz(TMXbdJ(c^lErx@d~(0U`HMCe}7!O8VPFgHgb7o-g5>ypZ{PTuoqwf$nRa?yP5BZWw)x;#Mu~f^}#>Y_GipI(< zmNxuZME}lG8RfwGr^@7(Jltnmu>Y^Yr8Z)y#Mrn2OGZ$^Rwa1@iY#1N&Q$*Il-n&+ zv6aA=U4~$d>s#9r|Ii}W{`{=_OXaR%5h7J;#DEG)gdj~oiU^9L z^b#c@i6S6~LIe|}gixdysu2(ZWCDycYv#vWYuZ|~X3hC=@3-#Rr|iAYxA)oi)^YS9 ziFFF=000u^W(Q9KAW9S922mlw6XpARHvrOP^Mm^>gVM*kyOVSBWrSON2_bx|8N0TT z+uHn6OX*vF4yW?O($?J=*4%r$|2tGLP|)}b%n*@P_*@pUaTSFFu@!(r;nu7Glp1Pz zApq2*)gUWCS~PCu4Mf+Nt%5Z|TUUY5|Kcl__dEkK(dEHRzf|69=yOC)_$R-2alv}!uX!7GpGJ@pa|ZmHr`5RY}D~I$fw< z5BzCULOAjI^*~2y7kD$g7(~DF!_jA`1%aR==sdN5Z)NwUDlRjKWg9zqu+GLPmAEY> zi0U}<(ej(|=rpVI0&?`>qIXJ;oSU}(mVP%xTGzzH_gV)o!h)|69NAFU2gLiwCy8Xqu->=8h1zqcSsFY6Ov=H%xye(gsAAS>YEdoSId7! zq!I#dUk%cMY@|sJ#(KAtGsJ7|PkE=*9mr%w?kQJ|4zjwk9l z*~lLdu`c&1x(2(6@yJo$8Ra&QsfL0{Q4fyh^IP|v%a!5>t7Eh-4Y(s|SLBd>@ySqc zoV=Owog{<3o<7q7m|MnAE4*pEzMWi6$b}Q5pV_tY9a5wwDW^1P^R#tIa!4+n%%}e{ z<ub(WIIu_y#`*+TDwZWCxySH2xxg6#dHK1i379pJ0#qZ z>Di0Ry;veklV<%&a#ix*6vx=aX~~vwC%L6Cx%!f^OprugYI0m!Vht7XhnGV$U_+Wv zLP6zDaxxYVYGs${j*Egr#fAxId{#DcN-Pd!a;~J&&ne6$#$ohp!Q6YHucx28~i*8Dg&&7Mz!y9;c8tO!mcMb8RFX`mnXEZy%&JMp@?=~2Rxod1Ol)LbhR@Z$))yr60 zM=Mq_pZ*bmmX=;F;=q1@a}bRyJZ%g~lSSAK_36#q-wWH4{L}eSLuDHh7xqHtb!xok zvCbKEKJR%J`j_UnufyE(ugnG250}8EoSguOHj|vJ>?xfISf1-%+4b%%3>aNS)Sa~{ zZH}MZF(2A677X{ee3CJPEpln7xttuIwI%T7d+(SrMDGzoHW30YJZOVA9hU~|r6$xD zhtBLWJkNB1`g#Fdv|thv#jz{%So$=>AiRst$qwm3e`*k<(5>B0-!a=nLCbY{Gw(pt z!O()w=4*%I&Z~6z2XR#0YJEiXU@+~%G~cMFasV7_3Ftb%ES)TG))M2~e57&Leuq;C zhX)qZly|iaZYt%%;CQEUBquULkfg=ps+a-8o^4?U{d-}E1H*k@jq=?IpYI;)>O^bY zmD1erbPS;?GyVR%Wc-S}F zn9>mbNNPmX- z*(VmASEu#n*DQ(y)B%i$^YW4ff>C#3)_aixF8$0xRw1No^)%#o&^|C%y zCDa+UFFoxc2{p_i4(?h5j-Ptin=CkCs9jB{s`m@My2w1}J*w=UR>D_XN9`BZK^RWt z*XgZ(iS|Cfk9oS1OxjYm95Uf9^)B-4IVSoSL-|8C&1D{j8UU;vQ)Z9l&n;#x@5Ep$ zs;aHT?RxT#GwuO*N_cCd(<{&G)V>`cvI3A)RyegMf*Tj@xdGtvqqDpi?S=s833xqU zT>1Wh?}k?uv#wvdJap90=UDr4NQlk$)^^p!4VeIV?_N2Uf=KypbJl{-vkt;%t+AoP z_|gXxWdW(QKnXB8Exr~4s?G{;1b2O-wgZ~;3K?FDZw0XFKK5rLnp8pMC}vb$GU%mjxhNpq-yYtOWEWx47C^Wa)-ai*?n-OPcT zr)DH?j*)hBVdjtOKO&H?();%^wgqFU+1rTmknV;+yPm+wkM2;=8K1LO_BlXrRO_a9 zEM}TY`l?RkKCZf4INKPi;n=ru&LSqhZDt;pw(zR+l1a0&3o0;Pnc3Hro%PQ25Z`mQ z6C*WjhyiD9UCWD4yJCvl-j3{~)e1aR=Cj#2wJ&`iC9}tnn8dg7NE{$nQZYSxD6Oa{ zjN~u?e!n4rpHQwX&&WT6D#5juD1zqkP@x7{@bZ}q#x^lvS)s2e2iU3lk1R+g3TI^@ zAF8!gdReOb_E4>nNa^<;d&@3Unp_^2Pnj~enQzB4MTpcK>>R=VC99yQTKx>ax4ELS z)S}cEmm6VkN9k|WK1@EX<2Y1*$uvDeSoHL&7TQ zG7|R1k{zB+eS+YONHu0pvL|>4X?w)t#xM1^l=|FVJjX8QM7-jq=T#VvWaO#trUz(~ z7U2Y!2Gtnp=MS;6OuRkw+IuS@fGr8hxncj)>HT#`8ngI%cfrxj-3i;VA6#CLxmyGd zavX0SG@VgU-_B|ORuueYfmN*?mZX};Rc)UyjK`DGo&_vz*FAAR{-nKKOstmUP)UIs zBRuskc~GEop!cGgyKl+4oQ1;H&V^z(($c^U1kMN!ed5(=6$X*P%x*lId7(o8e%1tT zTyhvq!SjSXWKU;K3bcamh>>Arnpu9iG!he~D9;Byuf=o6lQM*K_Psee&h&oF>A-F% z9&r8%pLji2!6FS@>eI>#)YKHe^4U!UtlNRGNpb85!8{%varv4ih9U^USH)D8hrR)l zpXJ$oXX5SV;E1Yal5G?3_xI65N2#4CyB*DT5O@c6GU<%=hN5vy)t3pv;Oel zYu+#80d4k)&pu%w(3T0yJw(e9r0Yi-t?n7oes#a`8i?gJ>P~mD{qzsG@wVZLarlLF z<0QY5s|;ts*{@REiS6ngM{J;_%bU%X1}#y2JZkzLaEEp&*}BeQNV&)ao;k>Cd32a|WgsUGpLcY1X0rg>MtxDk+S$>c1CaO!z;e)aPKA`lpZR`yCys z3?$;O1_1WGMCF~HS#Z|aHyQT(Do5AG!)FB7J@3fB4V;Lj-OzufevNQas%P-L8{y&w zfvXkU*?f-ZBi@gqxK!I|wPOB%Rs08;?;rVN5W$CVP>DGV7qjB!G-+;%K3Mqc*@!;@ D(N$&@ literal 3460 zcmds3X;_n27QR^syI3nC0%B_^MnFIi*$Il&Wr&DNkeyLBF%ZKRiGc)*OUt5^MFWD! zfU*c0686{>Dz+etA}|RMf((L031UJZfiPd%d7k+VKWlwq{1& z^%C#2QC(qvgV&Dg* zwB^1Oxm85XlE2_ouWTv_n>v<7^^Uu_Y(AUOg9{xl6!9P;N8Nsa1ht6dv0tl?}X>hM&gJ8@QjCT-? zw#SgUb$y7xy!a*lx!sFI-BuP9tT~b zp~eoi4`b7P`bb>Qv2@aBHUd)FJFsyZui@PecZ|VE*O_fdrmfe&PKv(*$;SXyU~&HH zEwsrb_AYD?H4~F1?^&H@Aqj0S7INxd>e!x{GwA0Bv5uuv?cUsusiyVUr94x4s4gIF zH?yQ>~^;#U?|OYs0${Sp_~qTIXU{77@vOTw}LWr{A-Ix5K^dJAHyOVe1b< zK|&u5`5WxoL3GqtPP`Xby`yqAv&`td^Y?dJo!?7eW+gH|t|ZPaFvpKT>fVnd`gg!O zrAfHDK)GzY@jqwFqv*-T9VWj(3VFoTly0wq5F}hK9S5?*QA=9%tRgo^fzNP-b#FMK zjOssX5aIzj*o-;+R%$$8D{ z|M}$Pb-U)_MXzzP#_ZGZ?)OEm(yksjIMNv3&n=kgg5A}&5%7L?tzx_}O)n9-D2T0; zDSo}>^M=$1URM&u=<4ZSTOhc>zUfQRsWwxkh9e1?xo2wPGIN7{FA7)p<4?sz*)HaN zj@1Q%djqRAwT8ftfn>2{U-@iJCWTFHpb`tYdH1g-y2KXwFm`_SYEipoN++m!cUbIA z;wpM|x)X3}7?*c_e^xZrLIjZw_bP0vx?RIq&#C7npOQHU%;8iwm4pK2O%H)#Y$BCtJ-;)f=v)qK|5fJdGM}&gwAftk zx=A7J8_M4)CB+1TdA|#HDj*1WkC3d&IB63*y8A8{-x)-?vm_t4*O|+AfrHc*N}Jx} zBoLCVPvGctr(@$CHUI$Wk`6*w;DS@1e?r^_V>l780q9wDVuTk|;5`F8PWhRJEL81IPB=h+iN4s@Rok zpmm4(5_h=cD7<|8v<}$*G8JZZ?*$G+|FuE?W}ks<{@$jPl57m-51}cpB~kQ!BjY0n z#C%#3-K_6?UGJ+{b#OFfMXM+TWf*Ul`f)TxWmU#T1f$DyEzl#zLy%f06jGl-jmACH zkg@fAyY%pX@)XblqL6dtRnW`K0CU$DD-fd#CKG*{drHX>(e#R}V7PpaU96d5_080M zR)FtpW5(SoK z3||`L!&ST;HzRj1(h(pArwABM^*eg0R);b#a>Rn5DUS%|SVh}~<&&jJK(&~2+}rrv zNkXG!Z=v_Qr@Ok%>%6;8EMg5wTo6v{uyF|o9 z7?H`2tsg-UTH1FgRsy6gC+ek7-}K24Aa8Eg<6N5as$LsSpU~mods-f_YpB{aB;m4y z3vAEl6|Z2HIET=lQ9Qs#TRF%^_Zv_}A*j(ZueEdat@wg^UTYSNn$I{MncxXVcQET7 zFCcEI3$7%|w_7&G>jH5Ody~m!guv6Ck}1~qWgsP`r-Uw)fsk#I4oxAQmRxPn7p8eF z2hP#mL+Qy2KN<@z!E6M@VIuBcuC}X_6x}5C>#@)#w&%IY-%n#Q+r7BBfu&gIz&l0j z&xzv3-hFZ}?_27u@MzCg;a-$LbCe|zdjwxRv!>!)qEE;^Roh%me{yL{$D*HCL*>4@ z8)N*u+mU)??w~_INp!!^F`l7+4P$BKMk!UNLrI)IpY%vtHCX@d)LNm@%xtzmcpE0Q z--A1dja@GzVp~60rrxXEMRsdBZfYtfmg6*7yjJMg`$flZpOhtqc*C1ayZEmv!aqbM zUM_3xwfpNrXpJa-@=gX;YvbIQoR2=yJjLe=Q`JVRC+~|Q^X%gvRB3>cdbEGR2OBHq zgorx#y&3&kJMGl l{7C{4Q3 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 Q6I;ZZ8Ce>ZU37{58()AmJ^%m! literal 3453 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 GQvLz?&=oNN diff --git a/yellow-paper/docs/public-vm/gen/images/bit-formats/SENDL2TOL1MSG.png b/yellow-paper/docs/public-vm/gen/images/bit-formats/SENDL2TOL1MSG.png index 251cfa653b38ff7dbfa9b15ded8c36ad48d31193..04611cd6a436c4c044f521bd731a3124d0c9307b 100644 GIT binary patch literal 3591 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