diff --git a/cairo_native/executor/index.html b/cairo_native/executor/index.html index 9232cd515..26b2255d8 100644 --- a/cairo_native/executor/index.html +++ b/cairo_native/executor/index.html @@ -1,4 +1,4 @@ -cairo_native::executor - Rust

Module cairo_native::executor

source ·
Expand description

§Executors

+cairo_native::executor - Rust

Module cairo_native::executor

source ·
Expand description

§Executors

This module provides methods to execute the programs, either via JIT or compiled ahead of time. It also provides a cache to avoid recompiling previously compiled programs.

Structs§

\ No newline at end of file diff --git a/cairo_native/executor/struct.AotContractExecutor.html b/cairo_native/executor/struct.AotContractExecutor.html index 02298ade0..bf1084dfc 100644 --- a/cairo_native/executor/struct.AotContractExecutor.html +++ b/cairo_native/executor/struct.AotContractExecutor.html @@ -1,23 +1,23 @@ AotContractExecutor in cairo_native::executor - Rust

Struct cairo_native::executor::AotContractExecutor

source ·
pub struct AotContractExecutor { /* private fields */ }
Expand description

Please look at the module level docs.

-

Implementations§

source§

impl AotContractExecutor

source

pub fn new( +

Implementations§

source§

impl AotContractExecutor

source

pub fn new( sierra_program: &Program, entry_points: &ContractEntryPoints, opt_level: OptLevel, -) -> Result<Self, Error>

Create the executor from a sierra program with the given optimization level. +) -> Result<Self>

Create the executor from a sierra program with the given optimization level. You can save the library on the desired location later using save. If not saved, the path is treated as a temporary file an deleted when dropped. If you loaded a ContractExecutor using [load] then it will not be treated as a temp file.

-
source

pub fn save(&mut self, to: impl AsRef<Path>) -> Result<(), Error>

Save the library to the desired path, alongside it is saved also a json file with additional info.

-
source

pub fn load(library_path: &Path) -> Result<Self, Error>

Load the executor from an already compiled library with the additional info json file.

-
source

pub fn run( +

source

pub fn save(&mut self, to: impl AsRef<Path>) -> Result<()>

Save the library to the desired path, alongside it is saved also a json file with additional info.

+
source

pub fn load(library_path: &Path) -> Result<Self>

Load the executor from an already compiled library with the additional info json file.

+
source

pub fn run( &self, selector: Felt, args: &[Felt], gas: u64, builtin_costs: Option<BuiltinCosts>, syscall_handler: impl StarknetSyscallHandler, -) -> Result<ContractExecutionResult, Error>

Runs the entry point by the given selector.

+) -> Result<ContractExecutionResult>

Runs the entry point by the given selector.

  • selector: The selector of the entry point to run.
  • args: The calldata.
  • @@ -26,11 +26,11 @@
  • syscall_handler: The syscall handler implementation to use when executing the contract.

The entry point gas cost is not deducted from the gas counter.

-
source

pub fn find_function_ptr( +
source

pub fn find_function_ptr( &self, function_id: &FunctionId, is_for_contract_executor: bool, -) -> Result<*mut c_void, Error>

source

pub fn find_symbol_ptr(&self, name: &str) -> Option<*mut c_void>

Trait Implementations§

source§

impl Clone for AotContractExecutor

source§

fn clone(&self) -> AotContractExecutor

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AotContractExecutor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for AotContractExecutor

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<*mut c_void>

source

pub fn find_symbol_ptr(&self, name: &str) -> Option<*mut c_void>

Trait Implementations§

source§

impl Clone for AotContractExecutor

source§

fn clone(&self) -> AotContractExecutor

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AotContractExecutor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for AotContractExecutor

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html b/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html index 827698b82..20aa63d89 100644 --- a/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html +++ b/cairo_native/starknet/constant.SYSCALL_HANDLER_VTABLE.html @@ -1 +1 @@ -SYSCALL_HANDLER_VTABLE in cairo_native::starknet - Rust

Constant cairo_native::starknet::SYSCALL_HANDLER_VTABLE

source ·
pub const SYSCALL_HANDLER_VTABLE: LocalKey<Cell<*mut ()>>;
\ No newline at end of file +SYSCALL_HANDLER_VTABLE in cairo_native::starknet - Rust

Constant cairo_native::starknet::SYSCALL_HANDLER_VTABLE

source ·
pub const SYSCALL_HANDLER_VTABLE: LocalKey<Cell<*mut ()>>;
\ No newline at end of file diff --git a/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html b/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html index 27c59dd32..af5180dc9 100644 --- a/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html +++ b/cairo_native/starknet/fn.cairo_native__vtable_cheatcode.html @@ -1,4 +1,4 @@ -cairo_native__vtable_cheatcode in cairo_native::starknet - Rust
pub extern "C" fn cairo_native__vtable_cheatcode(
+cairo_native__vtable_cheatcode in cairo_native::starknet - Rust
pub extern "C" fn cairo_native__vtable_cheatcode(
     result_ptr: &mut ArrayAbi<Felt252Abi>,
     selector: &Felt252Abi,
     input: &ArrayAbi<Felt252Abi>,
diff --git a/cairo_native/starknet/index.html b/cairo_native/starknet/index.html
index 494cb1417..81181e74c 100644
--- a/cairo_native/starknet/index.html
+++ b/cairo_native/starknet/index.html
@@ -1,2 +1,2 @@
-cairo_native::starknet - Rust

Module cairo_native::starknet

source ·
Expand description

Starknet related code for cairo_native

+cairo_native::starknet - Rust

Module cairo_native::starknet

source ·
Expand description

Starknet related code for cairo_native

Structs§

Constants§

Traits§

Functions§

Type Aliases§

\ No newline at end of file diff --git a/help.html b/help.html index d6fdaa571..a6bb2beac 100644 --- a/help.html +++ b/help.html @@ -1 +1 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/search-index.js b/search-index.js index 82f7c8c85..46d0914ef 100644 --- a/search-index.js +++ b/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["cairo_native",{"t":"PPPPPPPPPPPPPPGPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNHNNCNNCNNNNNNNNCNNNNNNNNNNNNCCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHQQHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNCNNNNNNNNNNOOOOOOOOOOOPEPEGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCCCCCCCCPPPPPGPPPGPPPPPPPPPPPPPPPPPPPPIPPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNFFFNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNOONNNOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNCNNNNNNNNNNNNNNNNNNNCNNNNNCCCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNCNNNNNNNNNNNFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFFGFPNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFPFFFPFSFFKIFFFNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHMNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNMNMNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNMNMNMNMNMNMNMNMNMNONNNNNNNNNMNOOOMNMNNNNNNNNNNNNNONNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNFFFNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNHOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNFJFJSNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNOHNNHHNNNNNNNNNNONNNNNHHHNNHHHNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHOONNNNNNNNHNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNH","n":["Aggressive","Array","BoundedInt","Bytes31","Default","EcPoint","EcState","Enum","Felt252","Felt252Dict","IntRange","Less","None","Null","OptLevel","Secp256K1Point","Secp256R1Point","Sint128","Sint16","Sint32","Sint64","Sint8","Struct","Uint128","Uint16","Uint32","Uint64","Uint8","Value","__clone_box","","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","cache","clear","","clone","","clone_into","","clone_to_uninit","","cmp","compare","compile","conceal","","context","cyan","","debug","default","deref","","deref_mut","","deserialize","dim","","docs","drop","","eq","","equivalent","","","","","","","","error","execution_result","executor","fg","","fixed","","fmt","","from","","","","","","","","","","","","","","","","","","green","","hash","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","mask","","metadata","module","module_to_object","native_assert","native_panic","object_to_shared_lib","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","partial_cmp","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","serialize","starknet","starknet_stub","strike","","to_owned","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","utils","vzip","","whenever","","white","","wrap","","yellow","","debug_name","","","fields","range","tag","value","","","x","y","Aot","AotProgramCache","Jit","JitProgramCache","ProgramCache","aot","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","","","green","init","internal_rewrite","","","","","","","into","invert","italic","jit","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AotProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","JitProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","context","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeContext","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile","conceal","context","cyan","default","deref","deref_mut","dim","drop","eq","equivalent","","","","fg","fixed","fmt","from","green","init","initialize_mlir","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","libfunc_to_name","section01","section02","section03","section04","section05","section06","section07","section08","BadTypeInfo","BadTypeInit","BoundedIntOutOfRange","Cast","Compiler","CompilerError","ConstDataMismatch","EditStateError","Err","Error","GasMetadataError","ImpossibleCircuit","IntegerConversion","IntegerLikeTypeExpected","IoError","LLVMCompileError","LayoutError","LayoutErrorPolyfill","LibraryLoadError","LinkError","MissingBuiltinCostsSymbol","MissingMetadata","MissingParameter","MissingSyscallHandler","MlirError","NativeAssert","Ok","ParseAttributeError","ProgramRegistryErrorBoxed","Range","Result","SelectorNotFound","SerdeJsonError","SierraAssert","SierraAssertError","TryFromIntError","UnexpectedValue","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","drop","","","fg","","","fixed","","","fmt","","","","","","from","","","","","","","","","","","","","","","","green","","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","make_missing_parameter","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","panic","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","source","strike","","","to_smolstr","","","to_string","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","range","value","ranges","NativeAssertError","ToNativeAssertError","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","to_native_assert_error","to_smolstr","to_string","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","BuiltinStats","ContractExecutionResult","ExecutionResult","__clone_box","","","attr","","","bg","","","bitwise","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","builtin_stats","circuit_add","circuit_mul","clear","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","conceal","","","cyan","","","default","","deref","","","deref_mut","","","deserialize","","","dim","","","drop","","","ec_op","eq","","","equivalent","","","","","","","","","","","","error_msg","failure_flag","fg","","","fixed","","","fmt","","","from","","","from_execution_result","green","","","hash","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","partial_cmp","","pedersen","poseidon","primary","","","quirk","","","range_check","range_check_96","rapid_blink","","","red","","","remaining_gas","","resetting","","","return_value","return_values","rgb","","","segment_arena","serialize","","","strike","","","to_owned","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","AotContractExecutor","AotNativeExecutor","JitNativeExecutor","__clone_box","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","clone","clone_into","clone_to_uninit","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","drop","","","","fg","","","find_function_ptr","","","find_symbol_ptr","","","fixed","","","fmt","","","from","","","from_native_module","","green","","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","invoke_contract_dynamic","","invoke_dynamic","","invoke_dynamic_with_syscall_handler","","italic","","","linger","","","load","magenta","","","mask","","","module","new","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","primary","","","program_registry","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run","save","strike","","","to_owned","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","MetadataStorage","attr","auto_breakpoint","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_utils","default","deref","deref_mut","dim","drop","drop_overrides","dup_overrides","enum_snapshot_variants","fg","fixed","fmt","from","gas","get","get_mut","get_or_insert_with","green","init","insert","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc_bindings","red","remove","resetting","rgb","runtime_bindings","strike","tail_recursion","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AutoBreakpoint","BreakpointEvent","EnumInit","__clone_box","","add_event","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","","clone_into","","clone_to_uninit","","conceal","","cyan","","default","deref","","deref_mut","","dim","","drop","","eq","equivalent","","","","fg","","fixed","","fmt","","from","","green","","has_event","hash","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","mask","","maybe_breakpoint","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","strike","","to_owned","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","vzip","","whenever","","white","","wrap","","yellow","","type_id","variant_idx","DebugUtils","attr","bg","black","blink","blue","bold","borrow","borrow_mut","breakpoint_marker","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_breakpoint_trap","debug_print","default","deref","deref_mut","dim","drop","dump_mem","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","print_felt252","print_i1","print_i128","print_i32","print_i64","print_i8","print_pointer","quirk","rapid_blink","red","register_impls","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DropOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DupOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","EnumSnapshotVariantsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","from","get_variants","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","set_mapping","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ApChangeError","CostError","GasCost","GasMetadata","GasMetadataError","MetadataComputationConfig","NotEnoughGas","__clone_box","","","ap_change_info","attr","","","","bg","","","","black","","","","blink","","","","blue","","","","bold","","","","borrow","","","","borrow_mut","","","","bright","","","","bright_black","","","","bright_blue","","","","bright_cyan","","","","bright_green","","","","bright_magenta","","","","bright_red","","","","bright_white","","","","bright_yellow","","","","clear","","","","clone","","","clone_into","","","clone_to_uninit","","","conceal","","","","cyan","","","","default","","deref","","","","deref_mut","","","","dim","","","","drop","","","","eq","","","equivalent","","","","","","","","","","","","fg","","","","fixed","","","","fmt","","","","","from","","","","","","function_set_costs","gas_info","get_gas_cost_for_statement_and_cost_token_type","get_gas_costs_for_statement","get_initial_available_gas","green","","","","hash","init","","","","initial_required_gas","initial_required_gas_for_entry_points","internal_rewrite","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","invert","","","","italic","","","","linear_ap_change_solver","linear_gas_solver","linger","","","","magenta","","","","mask","","","","new","on_black","","","","on_blue","","","","on_bright","","","","on_bright_black","","","","on_bright_blue","","","","on_bright_cyan","","","","on_bright_green","","","","on_bright_magenta","","","","on_bright_red","","","","on_bright_white","","","","on_bright_yellow","","","","on_cyan","","","","on_fixed","","","","on_green","","","","on_magenta","","","","on_primary","","","","on_red","","","","on_rgb","","","","on_white","","","","on_yellow","","","","primary","","","","quirk","","","","rapid_blink","","","","red","","","","resetting","","","","rgb","","","","source","strike","","","","to_owned","","","to_smolstr","to_string","try_from","","","","try_into","","","","type_id","","","","underline","","","","upcast","","","","upcast_mut","","","","vzip","","","","whenever","","","","white","","","","wrap","","","","yellow","","","","gas","ReallocBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","free","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","RuntimeBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dict_drop","dict_dup","dict_gas_refund","dict_get","dict_insert","dict_new","dim","drop","fg","fixed","fmt","from","get_gas_builtin","green","init","internal_rewrite","","","","","","","into","invert","italic","libfunc_debug_print","libfunc_ec_point_from_x_nz","libfunc_ec_point_try_new_nz","libfunc_ec_state_add","libfunc_ec_state_add_mul","libfunc_ec_state_init","libfunc_ec_state_try_finalize_nz","libfunc_hades_permutation","libfunc_pedersen","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vtable_cheatcode","vzip","whenever","white","wrap","yellow","TailRecursionMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","depth_counter","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","recursion_target","red","resetting","return_target","rgb","set_return_target","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeModule","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get_metadata","green","init","insert_metadata","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","metadata","module","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","program_registry","quirk","rapid_blink","red","remove_metadata","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ArrayAbi","BlockInfo","DummySyscallHandler","Err","ExecutionInfo","ExecutionInfoV2","Felt252Abi","Ok","ResourceBounds","SYSCALL_HANDLER_VTABLE","Secp256k1Point","Secp256r1Point","StarknetSyscallHandler","SyscallResult","TxInfo","TxV2Info","U256","__clone_box","","","","","","","","","","account_contract_address","","account_deployment_data","attr","","","","","","","","","","","","bg","","","","","","","","","","","","black","","","","","","","","","","","","blink","","","","","","","","","","","","block_info","","block_number","block_timestamp","blue","","","","","","","","","","","","bold","","","","","","","","","","","","borrow","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","bright","","","","","","","","","","","","bright_black","","","","","","","","","","","","bright_blue","","","","","","","","","","","","bright_cyan","","","","","","","","","","","","bright_green","","","","","","","","","","","","bright_magenta","","","","","","","","","","","","bright_red","","","","","","","","","","","","bright_white","","","","","","","","","","","","bright_yellow","","","","","","","","","","","","cairo_native__vtable_cheatcode","call_contract","","caller_address","","capacity","chain_id","","cheatcode","clear","","","","","","","","","","","","clone","","","","","","","","","","clone_into","","","","","","","","","","clone_to_uninit","","","","","","","","","","cmp","","","","","","","compare","","","","","","","conceal","","","","","","","","","","","","contract_address","","cyan","","","","","","","","","","","","default","","","deploy","","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","deserialize","","","","","","","","","dim","","","","","","","","","","","","drop","","","","","","","","","","","","emit_event","","entry_point_selector","","eq","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fee_data_availability_mode","fg","","","","","","","","","","","","fixed","","","","","","","","","","","","fmt","","","","","","","","","","","from","","","","","","","","","","","","get_block_hash","","get_class_hash_at","","get_execution_info","","get_execution_info_v2","","green","","","","","","","","","","","","hash","","","","","","","","","hi","init","","","","","","","","","","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","invert","","","","","","","","","","","","is_infinity","","italic","","","","","","","","","","","","keccak","","library_call","","linger","","","","","","","","","","","","lo","magenta","","","","","","","","","","","","mask","","","","","","","","","","","","max_amount","max_fee","","max_price_per_unit","new","","nonce","","nonce_data_availability_mode","on_black","","","","","","","","","","","","on_blue","","","","","","","","","","","","on_bright","","","","","","","","","","","","on_bright_black","","","","","","","","","","","","on_bright_blue","","","","","","","","","","","","on_bright_cyan","","","","","","","","","","","","on_bright_green","","","","","","","","","","","","on_bright_magenta","","","","","","","","","","","","on_bright_red","","","","","","","","","","","","on_bright_white","","","","","","","","","","","","on_bright_yellow","","","","","","","","","","","","on_cyan","","","","","","","","","","","","on_fixed","","","","","","","","","","","","on_green","","","","","","","","","","","","on_magenta","","","","","","","","","","","","on_primary","","","","","","","","","","","","on_red","","","","","","","","","","","","on_rgb","","","","","","","","","","","","on_white","","","","","","","","","","","","on_yellow","","","","","","","","","","","","partial_cmp","","","","","","","paymaster_data","primary","","","","","","","","","","","","ptr","quirk","","","","","","","","","","","","rapid_blink","","","","","","","","","","","","red","","","","","","","","","","","","replace_class","","resetting","","","","","","","","","","","","resource","resource_bounds","rgb","","","","","","","","","","","","secp256k1_add","","secp256k1_get_point_from_x","","secp256k1_get_xy","","secp256k1_mul","","secp256k1_new","","secp256r1_add","","secp256r1_get_point_from_x","","secp256r1_get_xy","","secp256r1_mul","","secp256r1_new","","send_message_to_l1","","sequencer_address","serialize","","","","","","","","","sha256_process_block","","signature","","since","storage_read","","storage_write","","strike","","","","","","","","","","","","tip","to_owned","","","","","","","","","","transaction_hash","","try_from","","","","","","","","","","","","try_into","","","","","","","","","","","","tx_info","","type_id","","","","","","","","","","","","underline","","","","","","","","","","","","until","upcast","","","","","","","","","","","","upcast_mut","","","","","","","","","","","","version","","vzip","","","","","","","","","","","","whenever","","","","","","","","","","","","white","","","","","","","","","","","","wrap","","","","","","","","","","","","x","","y","","yellow","","","","","","","","","","","","ContractLogs","StubEvent","StubSyscallHandler","__clone_box","","","attr","","","bg","","","big4int_to_u256","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","call_contract","cheatcode","clear","","","clone","","","clone_into","","","clone_to_uninit","","","conceal","","","cyan","","","data","decode_felts_as_str","default","","deploy","deref","","","deref_mut","","","dim","","","drop","","","emit_event","encode_str_as_felts","events","","execution_info","fg","","","fixed","","","fmt","","","from","","","get_block_hash","get_class_hash_at","get_execution_info","get_execution_info_v2","green","","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","keccak","keys","l2_to_l1_messages","library_call","linger","","","logs","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","primary","","","quirk","","","rapid_blink","","","red","","","replace_class","resetting","","","rgb","","","secp256k1_add","secp256k1_get_point_from_x","secp256k1_get_xy","secp256k1_mul","secp256k1_new","secp256r1_add","secp256r1_get_point_from_x","secp256r1_get_xy","secp256r1_mul","secp256r1_new","send_message_to_l1","sha256_process_block","storage","storage_read","storage_write","strike","","","to_owned","","","try_from","","","try_into","","","type_id","","","u256_to_biguint","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","BuiltinCosts","HALF_PRIME","LayoutError","PRIME","SHARED_LIBRARY_EXT","__clone_box","","add_mod","attr","","bg","","bitwise","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","cairo_to_sierra","clear","","clone","","clone_into","","clone_to_uninit","","conceal","","const","create_engine","cyan","","debug_with","decode_error_message","default","deref","","deref_mut","","deserialize","dim","","drop","","ecop","eq","equivalent","","","","felt252_bigint","felt252_short_str","felt252_str","fg","","find_entry_point","find_entry_point_by_idx","find_function_id","fixed","","fmt","","","from","","generate_function_name","get_integer_layout","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","layout_repeat","linger","","magenta","","mask","","mem_tracing","mul_mod","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","padding_needed_for","pedersen","poseidon","primary","","quirk","","rapid_blink","","red","","register_runtime_symbols","resetting","","rgb","","run_pass_manager","serialize","strike","","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","vzip","","whenever","","white","","wrap","","yellow","","report_stats"],"q":[[0,"cairo_native"],[251,"cairo_native::Value"],[262,"cairo_native::cache"],[352,"cairo_native::cache::aot"],[437,"cairo_native::cache::jit"],[523,"cairo_native::context"],[615,"cairo_native::debug"],[616,"cairo_native::docs"],[624,"cairo_native::error"],[929,"cairo_native::error::CompilerError"],[931,"cairo_native::error::SierraAssertError"],[932,"cairo_native::error::panic"],[1020,"cairo_native::execution_result"],[1329,"cairo_native::executor"],[1602,"cairo_native::metadata"],[1700,"cairo_native::metadata::auto_breakpoint"],[1885,"cairo_native::metadata::auto_breakpoint::BreakpointEvent"],[1887,"cairo_native::metadata::debug_utils"],[1982,"cairo_native::metadata::drop_overrides"],[2065,"cairo_native::metadata::dup_overrides"],[2148,"cairo_native::metadata::enum_snapshot_variants"],[2232,"cairo_native::metadata::gas"],[2613,"cairo_native::metadata::gas::GasMetadataError"],[2614,"cairo_native::metadata::realloc_bindings"],[2699,"cairo_native::metadata::runtime_bindings"],[2799,"cairo_native::metadata::tail_recursion"],[2886,"cairo_native::module"],[2975,"cairo_native::starknet"],[4209,"cairo_native::starknet_stub"],[4509,"cairo_native::utils"],[4721,"cairo_native::utils::mem_tracing"],[4722,"dyn_clone::sealed"],[4723,"yansi::attr_quirk"],[4724,"yansi::paint"],[4725,"yansi::color"],[4726,"cairo_native::ffi"],[4727,"cairo_native::values"],[4728,"core::cmp"],[4729,"melior::context"],[4730,"melior::ir::module"],[4731,"cairo_lang_sierra::program"],[4732,"cairo_lang_sierra::extensions::core"],[4733,"cairo_lang_sierra::program_registry"],[4734,"melior::ir::attribute"],[4735,"core::result"],[4736,"serde::de"],[4737,"core::fmt"],[4738,"core::convert"],[4739,"starknet_types_core::felt"],[4740,"core::clone"],[4741,"alloc::vec"],[4742,"core::hash"],[4743,"alloc::boxed"],[4744,"cairo_lang_semantic::substitution"],[4745,"alloc::collections::vec_deque"],[4746,"core::option"],[4747,"cairo_lang_utils::ordered_hash_map"],[4748,"std::path"],[4749,"serde::ser"],[4750,"core::any"],[4751,"yansi::condition"],[4752,"cairo_native::executor::aot"],[4753,"alloc::sync"],[4754,"cairo_native::executor::jit"],[4755,"core::alloc::layout"],[4756,"melior::error"],[4757,"serde_json::error"],[4758,"libloading::error"],[4759,"std::io::error"],[4760,"cairo_lang_sierra::edit_state"],[4761,"core::num::error"],[4762,"cairo_lang_sierra::ids"],[4763,"core::error"],[4764,"smol_str"],[4765,"alloc::string"],[4766,"cairo_native::executor::contract"],[4767,"core::ffi"],[4768,"libloading::safe"],[4769,"cairo_lang_starknet_classes::contract_class"],[4770,"core::ops::function"],[4771,"melior::ir::block"],[4772,"melior::ir::location"],[4773,"melior::ir::value"],[4774,"melior::execution_engine"],[4775,"cairo_lang_sierra_ap_change"],[4776,"cairo_lang_sierra_gas"],[4777,"cairo_lang_sierra::extensions::modules::gas"],[4778,"alloc::collections::btree::map"],[4779,"melior::ir::operation"],[4780,"ark_ff::biginteger"],[4781,"num_bigint::biguint"],[4782,"anyhow"],[4783,"num_bigint::bigint"],[4784,"alloc::borrow"],[4785,"cairo_native::compiler"]],"i":"A`Ab001000000110`0000000000000`101010101010101010101010101010101010`1010101011`10`10`11010010`101011110000```1010101110000000000000001011011111110000000101010101010``````101010101010101010101010101010101010101011010101010100``1010101010101010`1010101010ABjABlABn2AC`2210ACb0Fn`0```000000000000000000000000000000000000000000`00000000000000000000000000000000000000000`Gj00000000000000000000000000000000000000000000000000000000000000000000000000000000000`Gh000000000000000000000000000000000000000000000000000000000000000000000000000000000000`H`0000000000000000000000000000000000000`0000000000000000000000000000000000000000000000000000`````````Hl0Hn1Bh`00Fb`13111111111111110113`111`1113213213213213213213213213213213213213213213213213213213213213213213213213213211332211111111111111321321321111111333333322222221321321321321321132132132132132132132132132132132132132132132132132132132132132`1321321321321321321132132132132132132132132132132132132132132ACd0ACf``In00000000000000000000000000000000000000000000000000000000000000000000000Jn1111111111111```K`KbKd210210221021021021021021021021021021021021021021021012221021021021020202102102021021021021021022102222111100000021021021021002102021022222221111111000000021021021021021021021021021021021021021021021021021021021021021021021021021021020222102102221021010210102102210210210210210210210210210210210210210210```KfHbGl210210210210210210210210210210210210210210210210210222210210210210210210221021021021021021021010210211111110000000222222210210210101010210221021021021021021021021021021021021021021021021021021021021021021021021021102102102102102221022102102102102102102102102102102102`Bb`0000000000000000000`00000```0000`0000000000000000000000000000000000000000000`0000`0`00000000000``M`0Ln010101010101010101010101010101010101010101010100101010101111110101010100110111111100000001010101010100101010101010101010101010101010101010101010101010101010101010101010101010101010ACh0`Mf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Ml000000000000000000000000000000000000000000000000000000000000000000000000000000000`Mn000000000000000000000000000000000000000000000000000000000000000000000000000000000`N`0000000000000000000000000000000000000000000000000000000000000000000000000000000000Ij0````0L`NbHd22103210321032103210321032103210321032103210321032103210321032103210321032102102102103210320210321032103210321322221111333321032103210332103330222221031210322222222211111110000000333333321032103210300210321032103221032103210321032103210321032103210321032103210321032103210321032103210321032103210321032103210321032103321032103321032103210321032103210321032103210321032103ACj`Nn00000000000000000000000000000000000000000000000000000000000000000000000000000000000`Ob00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Of0000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Hf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```On```0`````````OjA@bA@dA@fA@hA@jA@lA@nAA`AAb525A@`Ol;:9876543210;:9876543210;:9876543210;:98765432985510;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:98765432`Kl2:9185021<;:9876543<;:9876543<;:9876543<;:9876543;:98765;:9876521<;:9876543:921<;:9876543;430221<;:987654321<;:9876543;:987654321<;:987654321<;:987654302:9;:9876543;;;;::::9999888877776666555544443333821<;:987654321<;:98765431<;:987654321<;:98765430202020221<;:9876543;:9876543;21<;:987654322222221111111<<<<<<<;;;;;;;:::::::999999988888887777777666666655555554444444333333321<;:987654321<;:98765434321<;:9876543020221<;:9876543;21<;:987654321<;:987654378574385821<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:9876543;:98765821<;:9876543121<;:987654321<;:987654321<;:98765430221<;:98765437821<;:987654302020202020202020202026;:987654302851020221<;:98765438<;:98765438521<;:987654321<;:9876543:921<;:987654321<;:9876543121<;:987654321<;:98765438521<;:987654321<;:987654321<;:987654321<;:9876543434321<;:9876543```AAfAAhAAj210210`210210210210210210210210210210210210210210210222102102102102102101`2022102102102102`2022102102102102222210210222222211111110000000210210210210221022102102102102102102102102102102102102102102102102102102102102102102102102102102210210222222222222222210210210210210`210210210210210210210210`````LdJd110101101010101010101010101010101010`10101010101`10``1101011010100000```10```1010010``101011111110000000101010`101010`11010101010101010101010101010101010101010`1110101010`1010`11010001010101010101010101010`","f":"`````````````````````````````{{bd}f}0{{bh}{{j{{b{c}}}}}{}}0{{bl}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0222222222222222222`22{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{b{b{nc}}}f{}}0{bf}0{{{b{A`}}{b{A`}}}Ad}{{b{b{c}}}Ad{}}{{{b{Af}}{b{Ah}}{b{Aj}}{b{{B`{AlAn}}}}{b{nBb}}BdBf}{{Bj{fBh}}}}99`99`{{}A`}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}0{c{{Bj{Ab}}}Bn}==`{Blf}0{{{b{A`}}{b{A`}}}Bf}{{{b{Ab}}{b{Ab}}}Bf}{{b{b{c}}}Bf{}}0000000```{{bl}{{j{{b{c}}}}}{}}0{{bC`}{{j{{b{c}}}}}{}}0{{{b{A`}}{b{nCb}}}Cd}{{{b{Ab}}{b{nCb}}}Cd}{C`A`}{BlA`}{cc{}}{CfAb}1{ChAb}{CjAb}{{{Cl{c}}}Ab{{Cn{Ab}}}}{D`Ab}{DbAb}{{{b{{Dd{c}}}}}Ab{{Cn{Ab}}Df}}{C`Ab}{DhAb}{DjAb}{DlAb}{DnAb}{E`Ab}{{{Eb{c}}}Ab{{Cn{Ab}}}}{b{{j{{b{c}}}}}{}}0{{{b{A`}}{b{nc}}}fEd}{{}Bl}0{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}4312650{{}c{}}0::::::::::``{{{b{Ah}}A`}{{Fb{{Eb{C`}}}}}}``{{{b{{Dd{C`}}}}{b{Fd}}}{{Fb{f}}}}<<<<<<<<<<<<<<<<<<<<<<<<{{bC`}{{j{{b{c}}}}}{}}0========{{bC`C`C`}{{j{{b{c}}}}}{}}0>>>>{{{b{A`}}{b{A`}}}{{El{Ad}}}}??{{bFf}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000033{{{b{Ab}}c}BjFh}``11{bc{}}0{c{{Bj{e}}}{}{}}0{{}{{Bj{c}}}{}}0{bFj}055{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0`>>{{bFl}{{j{{b{c}}}}}{}}0888888`````````````````{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}::::43::::::::::::{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{{Fn{c}}}}{b{nCb}}}Cd{G`GbGdGf}}{{{Gh{c}}}{{Fn{c}}}{G`GbGd}}{{{Gj{c}}}{{Fn{c}}}{G`GbGd}}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}99`999999999999999>9999{{bC`C`C`}{{j{{b{c}}}}}{}}:::{{bFf}{{j{{b{c}}}}}{}};;;1;{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}>{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}7{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}2222542222222222{{{b{n{Gj{c}}}}c{b{Aj}}A`}{{Fb{{Gn{Gl}}}}}{G`GbGd}}33{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{{Gj{c}}}}{b{nCb}}}Cd{G`GbGd}}{cc{}}{{{b{{Gj{c}}}}{b{c}}}{{El{{Gn{Gl}}}}}{G`GbGd}}:{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{{b{H`}}}{{Gj{c}}}{G`GbGd}}111111111111>1111{{bC`C`C`}{{j{{b{c}}}}}{}}222{{bFf}{{j{{b{c}}}}}{}}33313{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}6{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}9{{bFl}{{j{{b{c}}}}}{}}999`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}};;;;43;;;;;;;;;;{{{b{n{Gh{c}}}}c{b{Aj}}A`}{{Fb{{Gn{Hb}}}}}{GbGdG`}}<{{{b{{Gh{c}}}}}{{b{H`}}}{GbGdG`}}={Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}?{Blf}5{{bC`}{{j{{b{c}}}}}{}}{{{b{{Gh{c}}}}{b{nCb}}}Cd{GbGdG`}}{cc{}}{{{b{{Gh{c}}}}{b{c}}}{{El{{Gn{Hb}}}}}{GbGdG`}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999{{{b{H`}}}{{Gh{c}}}{GbGdG`}}::::::::::::>::::{{bC`C`C`}{{j{{b{c}}}}}{}};;;{{bFf}{{j{{b{c}}}}}{}}<<<1<{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}?{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}8{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}2222542222222222{{{b{H`}}{b{Aj}}Bf{El{Hd}}}{{Bj{HfBh}}}}3{{{b{H`}}}{{b{Af}}}}4{{}H`}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}{{{b{H`}}{b{H`}}}Bf}{{b{b{c}}}Bf{}}0008{{bC`}{{j{{b{c}}}}}{}}{{{b{H`}}{b{nCb}}}Cd}{cc{}}={{}Bl}{{}Af}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{}H`}111111111111>1111{{bC`C`C`}{{j{{b{c}}}}}{}}222{{bFf}{{j{{b{c}}}}}{}}33313{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}6{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}9{{bFl}{{j{{b{c}}}}}{}}999{{{b{Hh}}}{{b{Hj}}}}`````````````````````````````````````````````{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00<<<<<<<<<<<<555444<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00>>>{Blf}00333{{bC`}{{j{{b{c}}}}}{}}00{{{b{Bh}}{b{nCb}}}Cd}0{{{b{Hl}}{b{nCb}}}Cd}0{{{b{Hn}}{b{nCb}}}Cd}0{I`Bh}{IbBh}{IdBh}{IfBh}{IhBh}{IjBh}{IlBh}{cc{}}{HnBh}{InBh}{HlBh}{J`Bh}{{{Ef{Jb}}}Bh}{JdBh}66{b{{j{{b{c}}}}}{}}00{{}Bl}00{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}65432103240156{{}c{}}00999999999999{{{b{Jf}}}Bh}:::::::::::::::::::::::::::::::::::::::{{bC`}{{j{{b{c}}}}}{}}00;;;;;;;;;;;;{{bC`C`C`}{{j{{b{c}}}}}{}}00<<<<<<`<<<{{bFf}{{j{{b{c}}}}}{}}00=========111{{{b{Bh}}}{{El{{b{Jh}}}}}}>>>{bJj}00{bJl}00{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00{b{{j{{b{c}}}}}{}}00{b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00==={{bFl}{{j{{b{c}}}}}{}}00333333333`````{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}555543555555555555{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{In}}{b{nCb}}}Cd}0{cc{}};{{}Bl}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{JlIn}111111111111=1111{{bC`C`C`}{{j{{b{c}}}}}{}}222{{bFf}{{j{{b{c}}}}}{}}33313{{Jn{b{Hj}}}{{Fb{c}}}{}}{bJj}{bJl}{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}9{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}<{{bFl}{{j{{b{c}}}}}{}}<<<```{{bd}f}00{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00`????????????555444???????????????????????????```???{{{b{K`}}}K`}{{{b{Kb}}}Kb}{{{b{Kd}}}Kd}{{b{b{nc}}}f{}}00{bf}00{{{b{K`}}{b{K`}}}Ad}{{{b{Kd}}{b{Kd}}}Ad}{{b{b{c}}}Ad{}}0{b{{j{{b{c}}}}}{}}00000{{}K`}{{}Kd}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00{c{{Bj{K`}}}Bn}{c{{Bj{Kb}}}Bn}{c{{Bj{Kd}}}Bn}777{Blf}00`{{{b{K`}}{b{K`}}}Bf}{{{b{Kb}}{b{Kb}}}Bf}{{{b{Kd}}{b{Kd}}}Bf}{{b{b{c}}}Bf{}}00000000000``{{bl}{{j{{b{c}}}}}{}}00{{bC`}{{j{{b{c}}}}}{}}00{{{b{K`}}{b{nCb}}}Cd}{{{b{Kb}}{b{nCb}}}Cd}{{{b{Kd}}{b{nCb}}}Cd}{cc{}}00{Kb{{Bj{KdBh}}}}{b{{j{{b{c}}}}}{}}00{{{b{K`}}{b{nc}}}fEd}{{{b{Kd}}{b{nc}}}fEd}{{}Bl}00{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}50124360634215{{}c{}}00;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{bC`}{{j{{b{c}}}}}{}}00<<<<<<<<<<<<{{bC`C`C`}{{j{{b{c}}}}}{}}00======{{{b{K`}}{b{K`}}}{{El{Ad}}}}{{{b{Kd}}{b{Kd}}}{{El{Ad}}}}``???{{bFf}{{j{{b{c}}}}}{}}00``{b{{j{{b{c}}}}}{}}00000``000``444`{{{b{K`}}c}BjFh}{{{b{Kb}}c}BjFh}{{{b{Kd}}c}BjFh}333{bc{}}00{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00777{b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00???{{bFl}{{j{{b{c}}}}}{}}00:::::::::```{{bd}f}{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00============555444=============================={{{b{Kf}}}Kf}{{b{b{nc}}}f{}}{bf}{b{{j{{b{c}}}}}{}}00000{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00222{Blf}00{{{b{nKf}}}f}888{{{b{Hb}}{b{Kh}}}Kj}{{{b{Gl}}{b{Kh}}}{{Bj{KjBh}}}}{{{b{Kf}}{b{Kh}}Bf}{{Bj{KjBh}}}}{{{b{Hb}}{b{Hj}}}{{El{Kj}}}}{{{b{Gl}}{b{Hj}}}{{El{Kj}}}}{{{b{Kf}}{b{Hj}}}{{El{Kj}}}}{{bC`}{{j{{b{c}}}}}{}}00{{{b{Hb}}{b{nCb}}}Cd}{{{b{Gl}}{b{nCb}}}Cd}{{{b{Kf}}{b{nCb}}}Cd}{cc{}}00{{HfA`}{{Bj{HbBh}}}}{{HfA`}{{Bj{GlBh}}}}{b{{j{{b{c}}}}}{}}00{{}Bl}00{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}32106450321564{{}c{}}00999{{{b{Hb}}{b{Kh}}{b{{Dd{D`}}}}{El{Dl}}c}{{Bj{KdBh}}}Kl}{{{b{Gl}}{b{Kh}}{b{{Dd{D`}}}}{El{Dl}}c}{{Bj{KdBh}}}Kl}{{{b{Hb}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}}{{Bj{KbBh}}}}{{{b{Gl}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}}{{Bj{KbBh}}}}{{{b{Hb}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}c}{{Bj{KbBh}}}Kl}{{{b{Gl}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}c}{{Bj{KbBh}}}Kl}??????{{{b{Fd}}}{{Bj{KfBh}}}}{b{{j{{b{c}}}}}{}}00000{{{b{Hb}}}{{b{Ah}}}}{{Kn{B`{AlAn}}L`}Gl}{{{b{Aj}}{b{Lb}}A`}{{Bj{KfBh}}}}333333333333333333333333333333333333{{bC`}{{j{{b{c}}}}}{}}00444444444444{{bC`C`C`}{{j{{b{c}}}}}{}}00555555555{{{b{Hb}}}{{b{{B`{AlAn}}}}}}{{bFf}{{j{{b{c}}}}}{}}00777777777222{{{b{Kf}}D`{b{{Dd{D`}}}}Dl{El{Ld}}c}{{Bj{KdBh}}}Kl}{{{b{nKf}}c}{{Bj{fBh}}}{{Lf{Fd}}}}999{bc{}}{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00==={b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00{{}c{}}00{{bFl}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000000`{{bh}{{j{{b{c}}}}}{}}`{{bl}{{j{{b{c}}}}}{}}222265222222222222`{{}Bb}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}```4{{bC`}{{j{{b{c}}}}}{}}{{{b{Bb}}{b{nCb}}}Cd}{cc{}}`{{{b{Bb}}}{{El{{b{c}}}}}Lh}{{{b{nBb}}}{{El{{b{nc}}}}}Lh}{{{b{nBb}}e}{{b{nc}}}Lh{{Ll{}{{Lj{c}}}}}}<{{}Bl}{{{b{nBb}}c}{{El{{b{nc}}}}}Lh}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{}Bb}111111111111{{bC`}{{j{{b{c}}}}}{}}2222{{bC`C`C`}{{j{{b{c}}}}}{}}333{{bFf}{{j{{b{c}}}}}{}}4`4{{{b{nBb}}}{{El{c}}}Lh}52`5`{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}8{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}};{{bFl}{{j{{b{c}}}}}{}};;;```{{bd}f}0{{{b{nLn}}M`}f}{{bh}{{j{{b{c}}}}}{}}0{{bl}{{j{{b{c}}}}}{}}0????????6655????????????????????{{{b{M`}}}M`}{{{b{Ln}}}Ln}{{b{b{nc}}}f{}}0{bf}0{b{{j{{b{c}}}}}{}}000{{}Ln}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}033{Blf}0{{{b{M`}}{b{M`}}}Bf}{{b{b{c}}}Bf{}}000;;{{bC`}{{j{{b{c}}}}}{}}0{{{b{M`}}{b{nCb}}}Cd}{{{b{Ln}}{b{nCb}}}Cd}{cc{}}0::{{{b{Ln}}{b{M`}}}Bf}{{{b{M`}}{b{nc}}}fEd}{{}Bl}0{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}4123056{{}c{}}0{b{{j{{b{c}}}}}{}}000000000{{{b{Ln}}{b{Mb}}Md{b{Bb}}{b{M`}}}{{Bj{fBh}}}}111111111111111111111111{{bC`}{{j{{b{c}}}}}{}}022222222{{bC`C`C`}{{j{{b{c}}}}}{}}0333333{{bFf}{{j{{b{c}}}}}{}}04444441144{bc{}}0{c{{Bj{e}}}{}{}}0{{}{{Bj{c}}}{}}0{bFj}088{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0;;{{bFl}{{j{{b{c}}}}}{}}0;;;;;;```{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}====43{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}Md}{{Fb{f}}}}>>>>>>>>>>>>{{{b{Mf}}{b{Mb}}Md}{{Fb{f}}}}{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}{b{Hj}}Md}{{Fb{f}}}}{{}Mf}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{b{{j{{b{c}}}}}{}}{Blf}{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}MhBlMd}{{Fb{f}}}}9{{bC`}{{j{{b{c}}}}}{}}{{{b{Mf}}{b{nCb}}}Cd}{cc{}}5{{}Bl}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}>>>>>>>>>>>>>>>>>;>>>>{{bC`C`C`}{{j{{b{c}}}}}{}}???{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}MhMd}{{Fb{f}}}}000000{{bFf}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}0{{{b{Mf}}{b{Mj}}}f}141{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}4{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}:{{bFl}{{j{{b{c}}}}}{}}777`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}999943999999999999{{}Ml}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{Ml}}{b{nCb}}}Cd}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}99999999999999999<9999{{bC`C`C`}{{j{{b{c}}}}}{}}:::{{bFf}{{j{{b{c}}}}}{}};;;1;{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}>{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}7{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}222254222222222222{{}Mn}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{Mn}}{b{nCb}}}Cd}{cc{}}9{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000000000000000<0000{{bC`C`C`}{{j{{b{c}}}}}{}}111{{bFf}{{j{{b{c}}}}}{}}22212{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}5{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}8{{bFl}{{j{{b{c}}}}}{}}888`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}::::43::::::::::::{{}N`}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}={Blf}4{{bC`}{{j{{b{c}}}}}{}}{cc{}}{{{b{N`}}{b{Jf}}}{{El{{b{{Eb{Jf}}}}}}}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999999999999999<9999{{bC`C`C`}{{j{{b{c}}}}}{}}:::{{bFf}{{j{{b{c}}}}}{}};;;1{{{b{nN`}}{b{Jf}}{b{{Dd{Jf}}}}}f}<{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}?{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}8{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00```````{{bd}f}00`{{bh}{{j{{b{c}}}}}{}}000{{bl}{{j{{b{c}}}}}{}}0003333333333333333666655553333333333333333333333333333333333333333{{{b{L`}}}L`}{{{b{Nb}}}Nb}{{{b{Hd}}}Hd}{{b{b{nc}}}f{}}00{bf}0088888888{{}L`}{{}Hd}{Bl{{b{c}}}{}}000{Bl{{b{nc}}}{}}000<<<<{Blf}000{{{b{L`}}{b{L`}}}Bf}{{{b{Nb}}{b{Nb}}}Bf}{{{b{Ij}}{b{Ij}}}Bf}{{b{b{c}}}Bf{}}00000000000>>>>{{bC`}{{j{{b{c}}}}}{}}000{{{b{L`}}{b{nCb}}}Cd}{{{b{Nb}}{b{nCb}}}Cd}{{{b{Hd}}{b{nCb}}}Cd}{{{b{Ij}}{b{nCb}}}Cd}0{cc{}}00{NdIj}{NfIj}2``{{{b{L`}}NhNj}{{El{Dl}}}}{{{b{L`}}Nh}{{Eb{{F`{DlNj}}}}}}{{{b{L`}}{b{Kh}}{El{Dl}}}{{Bj{DlIj}}}}{b{{j{{b{c}}}}}{}}000{{{b{Nb}}{b{nc}}}fEd}{{}Bl}000{{{b{L`}}{b{Kh}}}{{El{Dl}}}}{{{b{L`}}}{{Fb{{Nl{Dl{Nl{DlDl}}}}}}}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}156042315602431436052{{}c{}}000<<<<<<<<``<<<<<<<<<<<<{{{b{Aj}}{El{Hd}}}{{Bj{L`Ij}}}}================================================{{bC`}{{j{{b{c}}}}}{}}000>>>>>>>>>>>>>>>>{{bC`C`C`}{{j{{b{c}}}}}{}}000????????????{{bFf}{{j{{b{c}}}}}{}}000{b{{j{{b{c}}}}}{}}000000000002222{{{b{Ij}}}{{El{{b{Jh}}}}}}1111{bc{}}00{bJj}{bJl}{c{{Bj{e}}}{}{}}000{{}{{Bj{c}}}{}}000{bFj}0007777{b{{b{c}}}{}}000{{{b{n}}}{{b{nc}}}{}}000>>>>{{bFl}{{j{{b{c}}}}}{}}000::::::::::::``{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}<<<<43<<<<<<<<<<<<{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}>{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{Nn}}{b{nCb}}}Cd}{{{b{Af}}MhMd}{{Bj{O`Ib}}}}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999{{{b{Af}}{b{Ah}}}Nn}::::::::::::>::::{{bC`C`C`}{{j{{b{c}}}}}{}};;;{{bFf}{{j{{b{c}}}}}{}}<{{{b{Af}}MhMhMd}{{Bj{O`Ib}}}}==2={c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}{b{{j{{b{c}}}}}{}}{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}:{{bFl}{{j{{b{c}}}}}{}}333`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}555543555555555555{{}Ob}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}Mh{El{Mh}}Md}{{Fb{Od}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMd}{{Fb{Mh}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMd}{{Fb{Od}}}}1{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMhMd}{{Fb{Od}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}Md}{{Fb{Mh}}}}={Blf}9{{bC`}{{j{{b{c}}}}}{}}{{{b{Ob}}{b{nCb}}}Cd}{cc{}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}Md}{{Fb{Od}}}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMhMd}{{Fb{Mh}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMd}{{Fb{Od}}}}0{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMd}{{Fb{Od}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMhMd}{{Fb{Od}}}}2100==============={{bC`}{{j{{b{c}}}}}{}}>>>>{{bC`C`C`}{{j{{b{c}}}}}{}}???{{bFf}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}0020{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}3{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MdMhMhMh}{{Fb{Od}}}}>{{bFl}{{j{{b{c}}}}}{}}777`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}999954999999999999{{{b{Of}}}Mh}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{Of}}{b{nCb}}}Cd}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999{{Mh{b{Mb}}}Of}::::::::::::=::::{{bC`C`C`}{{j{{b{c}}}}}{}};;;{{bFf}{{j{{b{c}}}}}{}}<{{{b{Of}}}Oh}=={{{b{Of}}}{{El{Oh}}}}3{{{b{nOf}}{b{Mb}}}f}?{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}{b{{j{{b{c}}}}}{}}{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}<{{bFl}{{j{{b{c}}}}}{}}333`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}555543555555555555{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{Hf}}{b{nCb}}}Cd}{cc{}}{{{b{Hf}}}{{El{{b{c}}}}}Lh}<{{}Bl}{{{b{nHf}}c}{{El{{b{nc}}}}}Lh}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{{b{Hf}}}{{b{Bb}}}}{{{b{Hf}}}{{b{Ah}}}}{{Ah{B`{AlAn}}Bb}Hf}333333333333{{bC`}{{j{{b{c}}}}}{}}4444{{bC`C`C`}{{j{{b{c}}}}}{}}555{{{b{Hf}}}{{b{{B`{AlAn}}}}}}{{bFf}{{j{{b{c}}}}}{}}77{{{b{nHf}}}{{El{c}}}Lh}838{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj};{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}>{{bFl}{{j{{b{c}}}}}{}}>>>`````````````````{{bd}f}000000000```{{bh}{{j{{b{c}}}}}{}}00000000000{{bl}{{j{{b{c}}}}}{}}00000000000{b{{j{{b{c}}}}}{}}00000000000000000000000````000000000000000000000000666666666666555555555555000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{n{Ol{Oj}}}}{b{Oj}}{b{{Ol{Oj}}}}}f}{{{b{nKl}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}{{{b{nA@`}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}`````{{{b{nKl}}D`{b{{Dd{D`}}}}}{{Eb{D`}}}}444444444444{{{b{Oj}}}Oj}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{A@h}}}A@h}{{{b{A@j}}}A@j}{{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{AAb}}}AAb}{{b{b{nc}}}f{}}000000000{bf}000000000{{{b{A@b}}{b{A@b}}}Ad}{{{b{A@d}}{b{A@d}}}Ad}{{{b{A@f}}{b{A@f}}}Ad}{{{b{A@h}}{b{A@h}}}Ad}{{{b{A@j}}{b{A@j}}}Ad}{{{b{A@l}}{b{A@l}}}Ad}{{{b{A@n}}{b{A@n}}}Ad}{{b{b{c}}}Ad{}}000000{b{{j{{b{c}}}}}{}}00000000000``000000000000{{}A@b}{{}AA`}{{}AAb}{{{b{nKl}}D`D`{b{{Dd{D`}}}}Bf{b{nDl}}}{{On{{F`{D`{Eb{D`}}}}}}}}{{{b{nA@`}}D`D`{b{{Dd{D`}}}}Bf{b{nDl}}}{{On{{F`{D`{Eb{D`}}}}}}}}{Bl{{b{c}}}{}}00000000000{Bl{{b{nc}}}{}}00000000000{c{{Bj{A@b}}}Bn}{c{{Bj{A@d}}}Bn}{c{{Bj{A@f}}}Bn}{c{{Bj{A@h}}}Bn}{c{{Bj{A@j}}}Bn}{c{{Bj{A@l}}}Bn}{c{{Bj{A@n}}}Bn}{c{{Bj{AA`}}}Bn}{c{{Bj{AAb}}}Bn}{b{{j{{b{c}}}}}{}}00000000000{Blf}00000000000{{{b{nKl}}{b{{Dd{D`}}}}{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{nA@`}}{b{{Dd{D`}}}}{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}``{{{b{A@b}}{b{A@b}}}Bf}{{{b{A@d}}{b{A@d}}}Bf}{{{b{A@f}}{b{A@f}}}Bf}{{{b{A@h}}{b{A@h}}}Bf}{{{b{A@j}}{b{A@j}}}Bf}{{{b{A@l}}{b{A@l}}}Bf}{{{b{A@n}}{b{A@n}}}Bf}{{{b{AA`}}{b{AA`}}}Bf}{{{b{AAb}}{b{AAb}}}Bf}{{b{b{c}}}Bf{}}00000000000000000000000000000000000`{{bl}{{j{{b{c}}}}}{}}00000000000{{bC`}{{j{{b{c}}}}}{}}00000000000{{{b{{Ol{c}}}}{b{nCb}}}CdGf}{{{b{Oj}}{b{nCb}}}Cd}{{{b{A@b}}{b{nCb}}}Cd}{{{b{A@d}}{b{nCb}}}Cd}{{{b{A@f}}{b{nCb}}}Cd}{{{b{A@h}}{b{nCb}}}Cd}{{{b{A@j}}{b{nCb}}}Cd}{{{b{A@l}}{b{nCb}}}Cd}{{{b{A@n}}{b{nCb}}}Cd}{{{b{AA`}}{b{nCb}}}Cd}{{{b{AAb}}{b{nCb}}}Cd}{cc{}}00000000000{{{b{nKl}}Dl{b{nDl}}}{{On{D`}}}}{{{b{nA@`}}Dl{b{nDl}}}{{On{D`}}}}{{{b{nKl}}D`{b{nDl}}}{{On{D`}}}}{{{b{nA@`}}D`{b{nDl}}}{{On{D`}}}}{{{b{nKl}}{b{nDl}}}{{On{A@d}}}}{{{b{nA@`}}{b{nDl}}}{{On{A@d}}}}{{{b{nKl}}{b{nDl}}}{{On{A@f}}}}{{{b{nA@`}}{b{nDl}}}{{On{A@f}}}}{b{{j{{b{c}}}}}{}}00000000000{{{b{A@b}}{b{nc}}}fEd}{{{b{A@d}}{b{nc}}}fEd}{{{b{A@f}}{b{nc}}}fEd}{{{b{A@h}}{b{nc}}}fEd}{{{b{A@j}}{b{nc}}}fEd}{{{b{A@l}}{b{nc}}}fEd}{{{b{A@n}}{b{nc}}}fEd}{{{b{AA`}}{b{nc}}}fEd}{{{b{AAb}}{b{nc}}}fEd}`{{}Bl}00000000000{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}12436502561304016453212650345124306305162440561236320541150634251634203654210{{}c{}}00000000000{b{{j{{b{c}}}}}{}}00000000000``000000000000{{{b{nKl}}{b{{Dd{Dl}}}}{b{nDl}}}{{On{A@b}}}}{{{b{nA@`}}{b{{Dd{Dl}}}}{b{nDl}}}{{On{A@b}}}}{{{b{nKl}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}{{{b{nA@`}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}444444444444`444444444444444444444444````{{E`E`E`E`Bf}AA`}{{E`E`E`E`Bf}AAb}```666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666{{bC`}{{j{{b{c}}}}}{}}00000000000777777777777777777777777777777777777777777777777{{bC`C`C`}{{j{{b{c}}}}}{}}00000000000888888888888888888888888{{{b{A@b}}{b{A@b}}}{{El{Ad}}}}{{{b{A@d}}{b{A@d}}}{{El{Ad}}}}{{{b{A@f}}{b{A@f}}}{{El{Ad}}}}{{{b{A@h}}{b{A@h}}}{{El{Ad}}}}{{{b{A@j}}{b{A@j}}}{{El{Ad}}}}{{{b{A@l}}{b{A@l}}}{{El{Ad}}}}{{{b{A@n}}{b{A@n}}}{{El{Ad}}}}`????????????`{{bFf}{{j{{b{c}}}}}{}}00000000000{b{{j{{b{c}}}}}{}}00000000000000000000000{{{b{nKl}}D`{b{nDl}}}{{On{f}}}}{{{b{nA@`}}D`{b{nDl}}}{{On{f}}}}222222222222``;;;;;;;;;;;;{{{b{nKl}}AA`AA`{b{nDl}}}{{On{AA`}}}}{{{b{nA@`}}AA`AA`{b{nDl}}}{{On{AA`}}}}{{{b{nKl}}A@bBf{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nA@`}}A@bBf{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nKl}}AA`{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nA@`}}AA`{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nKl}}AA`A@b{b{nDl}}}{{On{AA`}}}}{{{b{nA@`}}AA`A@b{b{nDl}}}{{On{AA`}}}}{{{b{nKl}}A@bA@b{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nA@`}}A@bA@b{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nKl}}AAbAAb{b{nDl}}}{{On{AAb}}}}{{{b{nA@`}}AAbAAb{b{nDl}}}{{On{AAb}}}}{{{b{nKl}}A@bBf{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nA@`}}A@bBf{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nKl}}AAb{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nA@`}}AAb{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nKl}}AAbA@b{b{nDl}}}{{On{AAb}}}}{{{b{nA@`}}AAbA@b{b{nDl}}}{{On{AAb}}}}{{{b{nKl}}A@bA@b{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nA@`}}A@bA@b{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nKl}}D`{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{nA@`}}D`{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}`{{{b{A@b}}c}BjFh}{{{b{A@d}}c}BjFh}{{{b{A@f}}c}BjFh}{{{b{A@h}}c}BjFh}{{{b{A@j}}c}BjFh}{{{b{A@l}}c}BjFh}{{{b{A@n}}c}BjFh}{{{b{AA`}}c}BjFh}{{{b{AAb}}c}BjFh}{{{b{nKl}}{b{n{Cl{Dj}}}}{b{{Cl{Dj}}}}{b{nDl}}}{{On{f}}}}{{{b{nA@`}}{b{n{Cl{Dj}}}}{b{{Cl{Dj}}}}{b{nDl}}}{{On{f}}}}```{{{b{nKl}}DjD`{b{nDl}}}{{On{D`}}}}{{{b{nA@`}}DjD`{b{nDl}}}{{On{D`}}}}{{{b{nKl}}DjD`D`{b{nDl}}}{{On{f}}}}{{{b{nA@`}}DjD`D`{b{nDl}}}{{On{f}}}}{b{{j{{b{c}}}}}{}}00000000000`{bc{}}000000000``{c{{Bj{e}}}{}{}}00000000000{{}{{Bj{c}}}{}}00000000000``{bFj}00000000000444444444444`{b{{b{c}}}{}}00000000000{{{b{n}}}{{b{nc}}}{}}00000000000``{{}c{}}00000000000{{bFl}{{j{{b{c}}}}}{}}00000000000888888888888888888888888````888888888888```{{bd}f}00{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00{AAdA@b}<<<<<<<<<<<<777666<<<<<<<<<<<<<<<<<<<<<<<<<<<{{{b{n{b{nAAf}}}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}{{{b{n{b{nAAf}}}}D`{b{{Dd{D`}}}}}{{Eb{D`}}}}>>>{{{b{AAf}}}AAf}{{{b{AAh}}}AAh}{{{b{AAj}}}AAj}{{b{b{nc}}}f{}}00{bf}00{b{{j{{b{c}}}}}{}}00000`{{{b{{Dd{D`}}}}}Jl}{{}AAf}{{}AAj}{{{b{n{b{nAAf}}}}D`D`{b{{Dd{D`}}}}Bf{b{nDl}}}{{On{{F`{D`{Eb{D`}}}}}}}}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00666{Blf}00{{{b{n{b{nAAf}}}}{b{{Dd{D`}}}}{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{Hj}}}{{Eb{D`}}}}```{{bl}{{j{{b{c}}}}}{}}00{{bC`}{{j{{b{c}}}}}{}}00{{{b{AAf}}{b{nCb}}}Cd}{{{b{AAh}}{b{nCb}}}Cd}{{{b{AAj}}{b{nCb}}}Cd}{cc{}}00{{{b{n{b{nAAf}}}}Dl{b{nDl}}}{{On{D`}}}}{{{b{n{b{nAAf}}}}D`{b{nDl}}}{{On{D`}}}}{{{b{n{b{nAAf}}}}{b{nDl}}}{{On{A@d}}}}{{{b{n{b{nAAf}}}}{b{nDl}}}{{On{A@f}}}}{b{{j{{b{c}}}}}{}}00{{}Bl}00{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}32416052341605{{}c{}}00999999{{{b{n{b{nAAf}}}}{b{{Dd{Dl}}}}{b{nDl}}}{{On{A@b}}}}``{{{b{n{b{nAAf}}}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}};;;`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{bC`}{{j{{b{c}}}}}{}}00<<<<<<<<<<<<{{bC`C`C`}{{j{{b{c}}}}}{}}00========={{bFf}{{j{{b{c}}}}}{}}00>>>>>>{{{b{n{b{nAAf}}}}D`{b{nDl}}}{{On{f}}}}???222{{{b{n{b{nAAf}}}}AA`AA`{b{nDl}}}{{On{AA`}}}}{{{b{n{b{nAAf}}}}A@bBf{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{n{b{nAAf}}}}AA`{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{n{b{nAAf}}}}AA`A@b{b{nDl}}}{{On{AA`}}}}{{{b{n{b{nAAf}}}}A@bA@b{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{n{b{nAAf}}}}AAbAAb{b{nDl}}}{{On{AAb}}}}{{{b{n{b{nAAf}}}}A@bBf{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{n{b{nAAf}}}}AAb{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{n{b{nAAf}}}}AAbA@b{b{nDl}}}{{On{AAb}}}}{{{b{n{b{nAAf}}}}A@bA@b{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{n{b{nAAf}}}}D`{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{n{b{nAAf}}}}{b{n{Cl{Dj}}}}{b{{Cl{Dj}}}}{b{nDl}}}{{On{f}}}}`{{{b{n{b{nAAf}}}}DjD`{b{nDl}}}{{On{D`}}}}{{{b{n{b{nAAf}}}}DjD`D`{b{nDl}}}{{On{f}}}}{b{{j{{b{c}}}}}{}}00{bc{}}00{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00{A@bAAl}555{b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00{{}c{}}00{{bFl}{{j{{b{c}}}}}{}}00999999999`````{{bd}f}0`{{bh}{{j{{b{c}}}}}{}}0{{bl}{{j{{b{c}}}}}{}}0`<<<<<<<<6655<<<<<<<<<<<<<<<<<<{{{b{Fd}}}{{AAn{{Gn{Aj}}}}}}=={{{b{Ld}}}Ld}{{{b{Jd}}}Jd}{{b{b{nc}}}f{}}0{bf}0{b{{j{{b{c}}}}}{}}0`{{{b{Ah}}{b{Bb}}A`}Mj}11{c{{`{Gf}}}{{AB`{{b{nCb}}}{{Lj{Cd}}}}}}{{{b{{Dd{C`}}}}}Jl}{{}Ld}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}0{c{{Bj{Ld}}}Bn}77{Blf}0`{{{b{Jd}}{b{Jd}}}Bf}{{b{b{c}}}Bf{}}000{cD`{{Cn{ABb}}}}{{{b{Hj}}}D`}0{{bl}{{j{{b{c}}}}}{}}0{{{b{Aj}}{b{Hj}}}{{El{{b{{ABd{Nh}}}}}}}}{{{b{Aj}}Bl}{{El{{b{{ABd{Nh}}}}}}}}{{{b{Aj}}{b{Hj}}}{{El{{b{Kh}}}}}}{{bC`}{{j{{b{c}}}}}{}}0{{{b{Ld}}{b{nCb}}}Cd}{{{b{Jd}}{b{nCb}}}Cd}0{cc{}}0{{{b{Kh}}Bf}{{ABf{Hj}}}}{DjABh}{b{{j{{b{c}}}}}{}}0{{}Bl}0{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}3012456{{}c{}}09999{{{b{ABh}}Bl}{{Bj{{F`{ABhBl}}Jd}}}}::::::``::::::::::::::::::::::::{{bC`}{{j{{b{c}}}}}{}}0;;;;;;;;{{bC`C`C`}{{j{{b{c}}}}}{}}0<<<<{{{b{ABh}}Bl}Bl}``=={{bFf}{{j{{b{c}}}}}{}}0>>>>{{{b{Mj}}}f}??33{{{b{Af}}{b{nAh}}}{{Bj{fIb}}}}{{{b{Ld}}c}BjFh}{b{{j{{b{c}}}}}{}}0{bc{}}0{bJj}{bJl}{c{{Bj{e}}}{}{}}0{{}{{Bj{c}}}{}}0{bFj}066{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0{{}c{}}0{{bFl}{{j{{b{c}}}}}{}}0::::::{{}f}","D":"L@nKKj","p":[[1,"reference"],[5,"Private",4722],[1,"unit"],[6,"Attribute",4723],[5,"Painted",4724],[6,"Color",4725],[0,"mut"],[6,"OptLevel",0,4726],[6,"Value",0,4727],[6,"Ordering",4728],[5,"Context",4729],[5,"Module",4730],[5,"Program",4731],[6,"CoreType",4732],[6,"CoreLibfunc",4732],[5,"ProgramRegistry",4733],[5,"MetadataStorage",1602],[5,"Attribute",4734],[1,"bool"],[6,"Error",624],[6,"Result",4735],[1,"usize"],[10,"Deserializer",4736],[1,"u8"],[5,"Formatter",4737],[8,"Result",4737],[1,"i128"],[1,"i16"],[1,"i8"],[1,"array"],[10,"Into",4738],[5,"Felt",4739],[1,"i32"],[1,"slice"],[10,"Clone",4740],[1,"u16"],[1,"u32"],[1,"u64"],[1,"i64"],[1,"u128"],[5,"Vec",4741],[10,"Hasher",4742],[5,"Box",4743],[6,"RewriteResult",4744],[5,"VecDeque",4745],[6,"Option",4746],[5,"OrderedHashMap",4747],[1,"tuple"],[8,"Result",624],[5,"Path",4748],[6,"Quirk",4723],[10,"Serializer",4749],[5,"TypeId",4750],[5,"Condition",4751],[6,"ProgramCache",262],[10,"PartialEq",4728],[10,"Eq",4728],[10,"Hash",4742],[10,"Debug",4737],[5,"JitProgramCache",437],[5,"AotProgramCache",352],[5,"AotNativeExecutor",1329,4752],[5,"Arc",4753],[5,"NativeContext",523],[5,"JitNativeExecutor",1329,4754],[5,"MetadataComputationConfig",2232],[5,"NativeModule",2886],[6,"CoreConcreteLibfunc",4732],[1,"str"],[6,"SierraAssertError",624],[6,"CompilerError",624],[5,"LayoutError",4755],[6,"Error",4756],[5,"Error",4757],[6,"Error",4758],[5,"Error",4759],[6,"GasMetadataError",2232],[6,"EditStateError",4760],[5,"NativeAssertError",932],[5,"TryFromIntError",4761],[6,"ProgramRegistryError",4733],[5,"LayoutError",4509],[5,"ConcreteTypeId",4762],[10,"Error",4763],[5,"SmolStr",4764],[5,"String",4765],[10,"ToNativeAssertError",932],[5,"BuiltinStats",1020],[5,"ExecutionResult",1020],[5,"ContractExecutionResult",1020],[5,"AotContractExecutor",1329,4766],[5,"FunctionId",4762],[6,"c_void",4767],[10,"StarknetSyscallHandler",2975],[5,"Library",4768],[5,"GasMetadata",2232],[5,"ContractEntryPoints",4769],[5,"BuiltinCosts",4509],[10,"AsRef",4738],[10,"Any",4750],[17,"Output"],[10,"FnOnce",4770],[5,"AutoBreakpoint",1700],[6,"BreakpointEvent",1700],[5,"Block",4771],[5,"Location",4772],[5,"DebugUtils",1887],[5,"Value",4773],[5,"ExecutionEngine",4774],[5,"DropOverridesMeta",1982],[5,"DupOverridesMeta",2065],[5,"EnumSnapshotVariantsMeta",2148],[5,"GasCost",2232],[6,"ApChangeError",4775],[6,"CostError",4776],[5,"StatementIdx",4731],[6,"CostTokenType",4777],[5,"BTreeMap",4778],[5,"ReallocBindingsMeta",2614],[5,"Operation",4779],[5,"RuntimeBindingsMeta",2699],[5,"OperationRef",4779],[5,"TailRecursionMeta",2799],[5,"BlockRef",4771],[5,"Felt252Abi",2975],[5,"ArrayAbi",2975],[8,"SyscallResult",2975],[5,"DummySyscallHandler",2975],[5,"U256",2975],[5,"ExecutionInfo",2975],[5,"ExecutionInfoV2",2975],[5,"TxV2Info",2975],[5,"ResourceBounds",2975],[5,"BlockInfo",2975],[5,"TxInfo",2975],[5,"Secp256k1Point",2975],[5,"Secp256r1Point",2975],[5,"BigInt",4780],[5,"StubSyscallHandler",4209],[5,"StubEvent",4209],[5,"ContractLogs",4209],[5,"BigUint",4781],[8,"Result",4782],[10,"Fn",4770],[5,"BigInt",4783],[5,"GenFunction",4731],[6,"Cow",4784],[5,"Layout",4755],[15,"Struct",251],[15,"Enum",251],[15,"Felt252Dict",251],[15,"BoundedInt",251],[15,"IntRange",251],[15,"BoundedIntOutOfRange",929],[15,"Range",931],[15,"EnumInit",1885],[15,"NotEnoughGas",2613]],"r":[[14,4726],[28,4727],[76,4785],[164,4726],[167,4726],[263,352],[265,437],[1329,4766],[1330,4752],[1331,4754]],"b":[[113,"impl-From%3Cu8%3E-for-OptLevel"],[114,"impl-From%3Cusize%3E-for-OptLevel"],[116,"impl-From%3Ci128%3E-for-Value"],[118,"impl-From%3Ci16%3E-for-Value"],[119,"impl-From%3Ci8%3E-for-Value"],[120,"impl-From%3C%5BT;+N%5D%3E-for-Value"],[121,"impl-From%3CFelt%3E-for-Value"],[122,"impl-From%3Ci32%3E-for-Value"],[123,"impl-From%3C%26%5BT%5D%3E-for-Value"],[124,"impl-From%3Cu8%3E-for-Value"],[125,"impl-From%3Cu16%3E-for-Value"],[126,"impl-From%3Cu32%3E-for-Value"],[127,"impl-From%3Cu64%3E-for-Value"],[128,"impl-From%3Ci64%3E-for-Value"],[129,"impl-From%3Cu128%3E-for-Value"],[130,"impl-From%3CVec%3CT%3E%3E-for-Value"],[295,"impl-From%3CJitProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[296,"impl-From%3CAotProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[739,"impl-Display-for-Error"],[740,"impl-Debug-for-Error"],[741,"impl-Display-for-SierraAssertError"],[742,"impl-Debug-for-SierraAssertError"],[743,"impl-Debug-for-CompilerError"],[744,"impl-Display-for-CompilerError"],[745,"impl-From%3CLayoutError%3E-for-Error"],[746,"impl-From%3CError%3E-for-Error"],[747,"impl-From%3CError%3E-for-Error"],[748,"impl-From%3CError%3E-for-Error"],[749,"impl-From%3CError%3E-for-Error"],[750,"impl-From%3CGasMetadataError%3E-for-Error"],[751,"impl-From%3CEditStateError%3E-for-Error"],[753,"impl-From%3CCompilerError%3E-for-Error"],[754,"impl-From%3CNativeAssertError%3E-for-Error"],[755,"impl-From%3CSierraAssertError%3E-for-Error"],[756,"impl-From%3CTryFromIntError%3E-for-Error"],[757,"impl-From%3CBox%3CProgramRegistryError%3E%3E-for-Error"],[758,"impl-From%3CLayoutError%3E-for-Error"],[960,"impl-Debug-for-NativeAssertError"],[961,"impl-Display-for-NativeAssertError"],[2376,"impl-Display-for-GasMetadataError"],[2377,"impl-Debug-for-GasMetadataError"],[2381,"impl-From%3CApChangeError%3E-for-GasMetadataError"],[2382,"impl-From%3CCostError%3E-for-GasMetadataError"],[4596,"impl-Display-for-LayoutError"],[4597,"impl-Debug-for-LayoutError"]],"c":"OzAAAAEAAC8AFwBDAAEAHgEAAHMBAADIAQAAHgIAAMkCAgC4AwAAOgQCAGkFAgBWBgAAzQYBAHMHAADRBwAAJAgAAHcIAAAICQMASQoAAJ4KAAACCwAAWQsAAJcMCwCuEAIAyhEBAA==","e":"OzAAAAEAAI4GHwEBAAAAAwAKABAADAAeAAEALAADAEIAAABFAAcAUAAAAFMABgBdAAsAagAAAHAAAwB1AAAAdwAMAIYAEACkAAAA0QAAAN4AAADjAAcA7QADAPIAAQD8ABAAEwEBACEBAQAkAQAAJwECACwBBwA3AQAAVgECAFoBAgBhAQAAaAEBAHQBAAB3AQEAegEAAH0BAAB/AQAAgQEHAI8BAACrAQIArwECAL0BAQDJAQAAywEAAM0BAQDQAQAA0wEAANUBAADXAQcA5QEAAAECAgAFAgIAEwIBACECAAAjAgIAJwIFAC8CAAAyAgAANAIGAEECAABdAgIAYQICAGgCAABxAgcAegIQAIwCCQCoAgUA0gIFANsCAgDkAgwA8gIFAP0CFwAkAwAAdwMAAHsDDgCNAwgAogMCAK0DAQC7AwEAvgMAAMEDAQDFAwcA0wMAAO8DBQD2AwIA/QMAAAAEAgAJBAAAFgQFADcEAgA9BAwAUAQKAF4EFAB5BAIAgwQZAOsEAwD1BAEA/QQBAAIFAQAHBQMADgULAB0FCAAzBQAANQUAAEgFBQBsBQIAdQUFAH4FAwCFBQUAjgUCAJQFAACZBRcAtwUBALoFAAC8BQAAygUBAAwGAAAhBgkALgYIAEUGAABLBgEAWgYCAF4GAABhBgAAZAYAAGYGAABpBgAAawYAAG0GBgCaBgIAngYCAKUGBQC3BgMAzwYFANkGBADgBgYA6wYBAPEGEQAPBwAARgcHAFAHBQBeBwIAZwcCAHYHAAB4BwIAfAcAAIAHAACDBwcApgcGALAHAAC0BwIAuAcCAL8HAADGBwEA1AcCANgHAADbBwAA3gcHAAcIAgALCAIAEggAABkIAQAnCAIAKwgAAC4IAAAxCAcAWggCAF4IAgBlCAAAbAgBAHoIAgB+CAAAgggAAIQIBwCsCAAArggCALIIAgC5CAIAvwgEANwIBwAMCQgAHQkJACsJEgBGCQQATgkBAFEJAwBaCSIAiQkBAJcJAAAACgAABQoQABoKCwA2CgAAPgoBAEwKAQBPCgAAUgoAAFYKBwCBCgIAhQoCAJMKAQChCgIAqwoAAK4KAACwCgAAsgoHAMMKAADkCgIA6AoBAOsKAAD3CgEABgsBAAkLAAAMCwAADwsHADwLAgBACwIATgsBAFwLAQBfCwAAYgsAAGYLAABoCwYAdQsCAI0LAACVCwIAmQsCAKALAgCkCwEAqAsHALELDADuCwMACgwXAI8MBwCjDCsA2wwBAOkMJQAbDT0AcQ0KAIgNBwCcDWkAHg4BACwOAwA8DgAAVQ4IAE4PBwBiDwAAhw8BAJUPAQCjDygA2A8yABcQJgBiEAMAchAAAHUQAgB+EAAAixAFAKwQAQCxEAgAwBAKAM4QBwDcEAIA4hADAOkQFwAKEQMAEREAAGARAABnEQ4AeREMAIkRCACeEQIAohEDAKoRAACzEQMAzBEFANQRAADaEQUA4hEHAPQRAgD9EQ8AGhIBAEUSAQBPEgAAVBIBAFgSCQBkEgUAchIAAA=="}],["cairo_native_compile",{"t":"PFPGNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","","augment_args","augment_args_for_update","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","fixed","","fmt","","from","","from_arg_matches","from_arg_matches_mut","green","","group_id","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","main","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","output_library","output_mlir","path","primary","","quirk","","rapid_blink","","red","","replace_ids","resetting","","rgb","","single_file","strike","","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","value_variants","vzip","","whenever","","white","","wrap","","yellow",""],"q":[[0,"cairo_native_compile"],[190,"dyn_clone::sealed"],[191,"yansi::attr_quirk"],[192,"yansi::paint"],[193,"clap_builder::builder::command"],[194,"yansi::color"],[195,"core::fmt"],[196,"clap_builder::parser::matches::arg_matches"],[197,"clap_builder"],[198,"core::result"],[199,"clap_builder::util::id"],[200,"core::option"],[201,"cairo_lang_utils::ordered_hash_map"],[202,"cairo_lang_semantic::substitution"],[203,"alloc::vec"],[204,"alloc::collections::vec_deque"],[205,"alloc::boxed"],[206,"anyhow"],[207,"clap_builder::builder::possible_value"],[208,"core::any"],[209,"yansi::condition"]],"i":"Ab`0`0Al1000101010101010101010101010101010101011100101010101010101010100010010111111100000001010101010`10101010101010101010101010101010101010101000001010101001010010111010101010100011010101010","f":"````{{bd}f}`{{bh}{{j{{b{c}}}}}{}}0{ll}0{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}022222222222222222222{{{b{Ab}}}Ab}{{b{b{A`c}}}f{}}{bf}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{bAf}{{j{{b{c}}}}}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`}}{b{A`{Bh{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{C`{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}4306215{{}c{}}0{b{{j{{b{c}}}}}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{bAf}{{j{{b{c}}}}}{}}022222222{{bAfAfAf}{{j{{b{c}}}}}{}}03333````33{{bCf}{{j{{b{c}}}}}{}}04444`4411`44{bc{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bCj}099{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}{{}{{b{{Cl{Ab}}}}}}??{{bCn}{{j{{b{c}}}}}{}}0??????","D":"A@d","p":[[1,"reference"],[5,"Private",190],[1,"unit"],[6,"Attribute",191],[5,"Painted",192],[5,"Command",193],[6,"Color",194],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",195],[8,"Result",195],[5,"Args",0],[5,"ArgMatches",196],[8,"Error",197],[6,"Result",198],[5,"Id",199],[6,"Option",200],[5,"OrderedHashMap",201],[6,"RewriteResult",202],[5,"Vec",203],[5,"VecDeque",204],[5,"Box",205],[1,"tuple"],[8,"Result",206],[6,"Quirk",191],[5,"PossibleValue",207],[5,"TypeId",208],[1,"slice"],[5,"Condition",209]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADwADQAAAAEAAwACAAkAAQAVAAMALQAEADYAAwA8AAEAQgABAEYAAQBKABAAZQAAAKQABwCuAAgA"}],["cairo_native_dump",{"t":"FGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["CmdLine","CompilerOutput","Path","Stdout","__clone_box","","attr","","augment_args","augment_args_for_update","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","","clone_into","","clone_to_uninit","","command","command_for_update","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","fixed","","fmt","","from","","from_arg_matches","from_arg_matches_mut","green","","group_id","init","","input","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","load_program","magenta","","main","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","output","parse_input","parse_output","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","starknet","strike","","to_owned","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","vzip","","whenever","","white","","wrap","","yellow",""],"q":[[0,"cairo_native_dump"],[192,"dyn_clone::sealed"],[193,"yansi::attr_quirk"],[194,"yansi::paint"],[195,"clap_builder::builder::command"],[196,"yansi::color"],[197,"core::fmt"],[198,"clap_builder::parser::matches::arg_matches"],[199,"clap_builder"],[200,"core::result"],[201,"clap_builder::util::id"],[202,"core::option"],[203,"cairo_lang_semantic::substitution"],[204,"alloc::vec"],[205,"alloc::collections::vec_deque"],[206,"cairo_lang_utils::ordered_hash_map"],[207,"alloc::boxed"],[208,"std::path"],[209,"cairo_lang_sierra::program"],[210,"core::error"],[211,"alloc::string"],[212,"core::any"],[213,"yansi::condition"]],"i":"``Ad0Ab1010001010101010101010101010101010101010101010001010101010101010101000100100000000111111101010101`01`0101010101010101010101010101010101010101010``01010101010100101010101010101000101010101","f":"````{{bd}f}0{{bh}{{j{{b{c}}}}}{}}0{ll}0{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}022222222222222222222{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{b{b{A`c}}}f{}}0{bf}0{{}l}07777{Af{{b{c}}}{}}0{Af{{b{A`c}}}{}}099{Aff}0;;{{bAh}{{j{{b{c}}}}}{}}0{{{b{Ab}}{b{A`Aj}}}Al}{{{b{Ad}}{b{A`Aj}}}Al}{cc{}}0{{{b{An}}}{{Bb{AbB`}}}}{{{b{A`An}}}{{Bb{AbB`}}}}{b{{j{{b{c}}}}}{}}0{{}{{Bf{Bd}}}}{{}Af}0`{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`}}{b{A`{Bj{c}}}}}{{Bb{Bhe}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bhe}}}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bhe}}}{}{}}{{{b{A`}}{b{A`{Bn{ce}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`}}{b{A`{Cb{c}}}}}{{Bb{Bhe}}}{}{}}4635210{{}c{}}0::::::{{{b{Cd}}Cf}{{Bb{Ch{Cb{Cj}}}}}};;{{}{{Bb{f{Cb{Cj}}}}}}<<<<<<<<<<<<<<<<<<<<<<<<<<{{bAh}{{j{{b{c}}}}}{}}0========{{bAhAhAh}{{j{{b{c}}}}}{}}0>>>>`{{{b{Cl}}}{{Bb{CnD`}}}}{{{b{Cl}}}{{Bb{AdD`}}}}{b{{j{{b{c}}}}}{}}0{{bDb}{{j{{b{c}}}}}{}}011111144`11{bc{}}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bDd}055{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{A`Ab}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Ab}}{b{A`An}}}{{Bb{fB`}}}}{{}c{}}0{{bDf}{{j{{b{c}}}}}{}}0;;;;;;","D":"Of","p":[[1,"reference"],[5,"Private",192],[1,"unit"],[6,"Attribute",193],[5,"Painted",194],[5,"Command",195],[6,"Color",196],[0,"mut"],[5,"CmdLine",0],[6,"CompilerOutput",0],[1,"usize"],[1,"u8"],[5,"Formatter",197],[8,"Result",197],[5,"ArgMatches",198],[8,"Error",199],[6,"Result",200],[5,"Id",201],[6,"Option",202],[6,"RewriteResult",203],[5,"Vec",204],[5,"VecDeque",205],[1,"tuple"],[5,"OrderedHashMap",206],[5,"Box",207],[5,"Path",208],[1,"bool"],[5,"Program",209],[10,"Error",210],[1,"str"],[5,"PathBuf",208],[5,"String",211],[6,"Quirk",193],[5,"TypeId",212],[5,"Condition",213]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAAEUADgAAAAYACQABABUAAwAtAAcAOQADAD8AAQBFAAEASQABAE0AEQBnAAAAagAAAJUAAgCnAAcAsQAHAA=="}],["cairo_native_run",{"t":"PFPGNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNCNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","","augment_args","augment_args_for_update","available_gas","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","fixed","","fmt","","from","","from_arg_matches","from_arg_matches_mut","green","","group_id","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","main","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","path","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","run_mode","single_file","strike","","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"cairo_native_run"],[190,"cairo_native_run::utils"],[369,"cairo_native_run::utils::test"],[624,"dyn_clone::sealed"],[625,"yansi::attr_quirk"],[626,"yansi::paint"],[627,"clap_builder::builder::command"],[628,"yansi::color"],[629,"core::fmt"],[630,"clap_builder::parser::matches::arg_matches"],[631,"clap_builder"],[632,"core::result"],[633,"clap_builder::util::id"],[634,"core::option"],[635,"alloc::vec"],[636,"cairo_lang_semantic::substitution"],[637,"alloc::collections::vec_deque"],[638,"alloc::boxed"],[639,"cairo_lang_utils::ordered_hash_map"],[640,"anyhow"],[641,"clap_builder::builder::possible_value"],[642,"core::any"],[643,"yansi::condition"],[644,"cairo_lang_sierra::program"],[645,"starknet_types_core::felt"],[646,"alloc::vec::into_iter"],[647,"alloc::string"],[648,"cairo_native::values"],[649,"cairo_native::execution_result"],[650,"cairo_lang_runner"],[651,"cairo_lang_test_plugin"],[652,"scarb_metadata"],[653,"cairo_lang_test_plugin::test_config"],[654,"cairo_lang_sierra::ids"],[655,"cairo_lang_sierra::extensions::modules::gas"]],"i":"Ab`0`0Al10000101010101010101010101010101010101011100101010101010101010100010010111111100000001010101010`1010101010101010101010101010101010101010100010101010101000101110101010101000`11010101010D`0``0Ff1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101Fh0```EdFj2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"````{{bd}f}`{{bh}{{j{{b{c}}}}}{}}0{ll}0`{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}022222222222222222222{{{b{Ab}}}Ab}{{b{b{A`c}}}f{}}{bf}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{bAf}{{j{{b{c}}}}}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`}}{b{A`{Bh{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}3460125{{}c{}}0{b{{j{{b{c}}}}}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{bAf}{{j{{b{c}}}}}{}}022222222{{bAfAfAf}{{j{{b{c}}}}}{}}03333``33{{bCf}{{j{{b{c}}}}}{}}044444411``44{bc{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bCj}099{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}`{{}{{b{{Cl{Ab}}}}}}??{{bCn}{{j{{b{c}}}}}{}}0??????````{{bd}f}{{bh}{{j{{b{c}}}}}{}}0{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000998800000000000000000000{{{b{D`}}}D`}{{b{b{A`c}}}f{}}{bf}3333{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}055{Adf}077{{{b{Db}}{b{Dd}}}{{Cd{{b{Df}}}}}}{{bAf}{{j{{b{c}}}}}{}}0{{{b{D`}}{b{A`Ah}}}Aj}{{{Dj{Dh}}}Dl}{cc{}}0;;{{}Ad}0{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bh{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}5210346{{}c{}}0{b{{j{{b{c}}}}}{}}000{{{b{Dn}}}{{Bh{Dh}}}}111111111111111111111111111111>>11111111{{bAfAfAf}{{j{{b{c}}}}}{}}02222`22{{bCf}{{j{{b{c}}}}}{}}0333333{{{b{E`}}}{{Cd{Eb}}}}22`44`{bc{}}{{{b{D`}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bCj}099{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{}{{b{{Cl{D`}}}}}}=={{bCn}{{j{{b{c}}}}}{}}0======`````{{bh}{{j{{b{c}}}}}{}}00{{bn}{{j{{b{c}}}}}{}}00????????????555444????????????????????????????????????{Ad{{b{c}}}{}}00{Ad{{b{A`c}}}{}}00{b{{j{{b{c}}}}}{}}00{{{b{Ed}}Ad}f}{Adf}00``555{{EfEhEhDl}{{Cb{EfAd}}}}{{{b{Ej}}}{{Bh{{b{El}}}}}}{{bAf}{{j{{b{c}}}}}{}}00{cc{}}00`666`{{}Ad}00{{{b{A`}}{b{A`{Bh{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}36145024532106{{}c{}}00???????????????????????????????????????????????????:::????????????{{bAfAfAf}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000`000{{bCf}{{j{{b{c}}}}}{}}00111111111222{{{Bh{{Cb{DlEn}}}}Db{C`{F`{C`{FbFd}}}}Ff}{{Cd{Ed}}}}`222{c{{Bb{e}}}{}{}}00{{}{{Bb{c}}}{}}00{bCj}00555{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00999{{bCn}{{j{{b{c}}}}}{}}00888888888","D":"CGn","p":[[1,"reference"],[5,"Private",624],[1,"unit"],[6,"Attribute",625],[5,"Painted",626],[5,"Command",627],[6,"Color",628],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",629],[8,"Result",629],[5,"Args",0],[5,"ArgMatches",630],[8,"Error",631],[6,"Result",632],[5,"Id",633],[6,"Option",634],[5,"Vec",635],[6,"RewriteResult",636],[5,"VecDeque",637],[5,"Box",638],[5,"OrderedHashMap",639],[1,"tuple"],[8,"Result",640],[6,"Quirk",625],[5,"PossibleValue",641],[5,"TypeId",642],[1,"slice"],[5,"Condition",643],[6,"RunMode",190],[5,"Program",644],[1,"str"],[8,"Function",644],[5,"Felt",645],[5,"IntoIter",646],[5,"String",647],[6,"Value",648],[5,"ExecutionResult",649],[6,"RunResultValue",650],[5,"TestsSummary",369],[5,"TestCompilation",651],[1,"bool"],[5,"PackageMetadata",652],[5,"TargetMetadata",652],[5,"TestConfig",653],[5,"FunctionId",654],[6,"CostTokenType",655],[1,"i32"],[5,"RunArgs",190],[6,"TestStatus",369],[5,"TestResult",369]],"r":[],"b":[],"c":"OzAAAAEAAAYAAwAsAAEA5gABAKoBAgA=","e":"OzAAAAEAALEAIAAAAAEAAwACAAkAAQAWAAMALgAEADcAAwA9AAEAQwABAEcAAQBLABAAZgAAAKMABwCtAAkAvwAEANAAAwDoAAIA7wADAPUAAQD8AAAAAgEPAEcBAABVAQAAWAEIAGMBBgByAQEAiQEFALMBBQC9AQQA0QEYADgCAABQAggAXAIIAA=="}],["cairo_native_runtime",{"t":"SSFFFFHHNNNNNNNNHHHHHHHHHHHHHHHHONNNHONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["BYTES_IN_WORD","BYTE_ARRAY_MAGIC","DICT_GAS_REFUND_PER_ACCESS","FeltDict","FormattedItem","HALF_PRIME","as_cairo_short_string","as_cairo_short_string_ex","borrow","","","","borrow_mut","","","","cairo_native__dict_drop","cairo_native__dict_dup","cairo_native__dict_gas_refund","cairo_native__dict_get","cairo_native__dict_new","cairo_native__get_costs_builtin","cairo_native__libfunc__debug__print","cairo_native__libfunc__ec__ec_point_from_x_nz","cairo_native__libfunc__ec__ec_point_try_new_nz","cairo_native__libfunc__ec__ec_state_add","cairo_native__libfunc__ec__ec_state_add_mul","cairo_native__libfunc__ec__ec_state_init","cairo_native__libfunc__ec__ec_state_try_finalize_nz","cairo_native__libfunc__hades_permutation","cairo_native__libfunc__pedersen","cairo_native__set_costs_builtin","count","deref","","fmt","format_next_item","free_fn","from","","","","get","inner","into","","","","quote_if_string","try_from","","","","try_into","","","","type_id","","","","upcast","","","","upcast_mut","","","","vzip","","",""],"q":[[0,"cairo_native_runtime"],[73,"starknet_types_core::felt"],[74,"alloc::string"],[75,"core::option"],[76,"core::ffi"],[77,"core::fmt"],[78,"core::iter::traits::iterator"],[79,"core::clone"],[80,"core::result"],[81,"core::any"]],"i":"````````BlBdBfn3210````````````````0210`032103032103321032103210321032103210","f":"``````{{{d{b}}}{{h{f}}}}{{{d{b}}j}{{h{f}}}}{d{{d{c}}}{}}000{{{d{l}}}{{d{lc}}}{}}000{{n{h{{Af{A`}{{Ab{Ad}}}}}}}Ad}{{n{Af{A`}{{Ab{A`}}}}}n}{nAh}{{{d{ln}}{d{{Al{Aj}}}}}A`}{{{Af{A`}{{Ab{Ad}}}}}n}{{}Ah}{{AnAlB`}An}{{{d{l{Al{{Al{Aj}}}}}}}Bb}0{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{Aj}}}}{d{{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{{Al{Aj}}}}}}}Bb}{{{d{l{Al{Aj}}}}{d{l{Al{Aj}}}}{d{l{Al{Aj}}}}}Ad}{{{d{l{Al{Aj}}}}{d{{Al{Aj}}}}{d{{Al{Aj}}}}}Ad}{AhAh}`{{{d{Bd}}}{{d{b}}}}{{{d{Bf}}}{{d{Ah}}}}{{{d{n}}{d{lBh}}}Bj}{{{d{lc}}}{{h{Bl}}}{{C`{}{{Bn{b}}}}Cb}}`{cc{}}000{Blf}`{{}c{}}0001{c{{Cd{e}}}{}{}}000{{}{{Cd{c}}}{}}000{dCf}000{d{{d{c}}}{}}000{{{d{l}}}{{d{lc}}}{}}0005555","D":"Cn","p":[[5,"Felt",73],[1,"reference"],[5,"String",74],[6,"Option",75],[1,"usize"],[0,"mut"],[5,"FeltDict",0],[6,"c_void",76],[17,"Output"],[1,"unit"],[1,"fn"],[1,"u64"],[1,"u8"],[1,"array"],[1,"i32"],[1,"u32"],[1,"bool"],[5,"HALF_PRIME",0],[5,"DICT_GAS_REFUND_PER_ACCESS",0],[5,"Formatter",77],[8,"Result",77],[5,"FormattedItem",0],[17,"Item"],[10,"Iterator",78],[10,"Clone",79],[6,"Result",80],[5,"TypeId",81]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACoABwAAAAMABgAAAAkABwAhAAMAJgAAACwAAAAyABcA"}],["cairo_native_stress",{"t":"SJFFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNNNNNHHNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AOT_CACHE_DIR","GLOBAL_ALLOC","NaiveAotCache","StressTestCommand","UNIQUE_CONTRACT_VALUE","attr","","augment_args","augment_args_for_update","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","cache","clear","","command","command_for_update","compile_and_insert","conceal","","context","cyan","","deref","","deref_mut","","dim","","directory_get_size","directory_is_empty","drop","","fg","","fixed","","fmt","from","","from_arg_matches","from_arg_matches_mut","generate_starknet_contract","get","green","","group_id","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","main","mask","","modify_starknet_contract","new","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","output","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","rounds","set_global_subscriber","strike","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","vzip","","whenever","","white","","wrap","","yellow",""],"q":[[0,"cairo_native_stress"],[188,"yansi::attr_quirk"],[189,"yansi::paint"],[190,"clap_builder::builder::command"],[191,"yansi::color"],[192,"cairo_lang_sierra::program"],[193,"cairo_native::ffi"],[194,"cairo_native::executor::aot"],[195,"alloc::sync"],[196,"core::cmp"],[197,"core::hash"],[198,"core::fmt"],[199,"std::io::error"],[200,"std::path"],[201,"core::convert"],[202,"clap_builder::parser::matches::arg_matches"],[203,"clap_builder"],[204,"core::result"],[205,"cairo_lang_sierra::ids"],[206,"core::option"],[207,"clap_builder::util::id"],[208,"alloc::boxed"],[209,"cairo_lang_semantic::substitution"],[210,"alloc::vec"],[211,"alloc::collections::vec_deque"],[212,"cairo_lang_utils::ordered_hash_map"],[213,"cairo_native::context"],[214,"core::any"],[215,"yansi::condition"]],"i":"`````nC`001010101010101010101010101010101011000110110101010``10101001000`110010111111100000001010101010`10`1101010101010101010101010101010101010101001010101010100`10101010101010001010101010","f":"`````{{bd}{{f{{b{c}}}}}{}}0{hh}0{{bj}{{f{{b{c}}}}}{}}0{b{{f{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{l}}}{{b{lc}}}{}}0222222222222222222`22{{}h}0{{{b{l{n{c}}}}c{b{A`}}Ab}{{Af{Ad}}}{AhAjAlAn}}44`44{B`{{b{c}}}{}}0{B`{{b{lc}}}{}}066{c{{Bd{Bb}}}{{Bh{Bf}}}}{c{{Bd{Bj}}}{{Bh{Bf}}}}{B`Bl}0::{{bBn}{{f{{b{c}}}}}{}}0{{{b{C`}}{b{lCb}}}Cd}{cc{}}0{{{b{Cf}}}{{Cj{C`Ch}}}}{{{b{lCf}}}{{Cj{C`Ch}}}}{Cl{{D`{CnA`}}}}{{{b{{n{c}}}}{b{c}}}{{Db{{Af{Ad}}}}}{AhAjAlAn}}{b{{f{{b{c}}}}}{}}0{{}{{Db{Dd}}}}{{}B`}0{{{b{l}}{b{l{Df{c}}}}}{{Cj{Dhe}}}{}{}}{{{b{l}}{b{l{Cj{ce}}}}}{{Cj{Dhg}}}{}{}{}}{{{b{l}}{b{l{D`{ce}}}}}{{Cj{Dhg}}}{}{}{}}{{{b{l}}{b{l{Dj{c}}}}}{{Cj{Dhe}}}{}{}}{{{b{l}}{b{l{Dl{c}}}}}{{Cj{Dhe}}}{}{}}{{{b{l}}{b{l{Dn{ce}}}}}{{Cj{Dhg}}}{}{}{}}{{{b{l}}{b{l{Db{c}}}}}{{Cj{Dhe}}}{}{}}1034265{{}c{}}0::::::::{{}Bl};;{{A`ClCl}A`}{{{b{E`}}}{{n{c}}}{AhAjAlAn}}========================{{bBn}{{f{{b{c}}}}}{}}0>>>>>>>>{{bBnBnBn}{{f{{b{c}}}}}{}}0????`??{{bEb}{{f{{b{c}}}}}{}}0{b{{f{{b{c}}}}}{}}0000022`{{{b{C`}}}Bl}11{c{{Cj{e}}}{}{}}0{{}{{Cj{c}}}{}}0{bEd}044{b{{b{c}}}{}}0{{{b{l}}}{{b{lc}}}{}}0{{{b{lC`}}{b{Cf}}}{{Cj{BlCh}}}}{{{b{lC`}}{b{lCf}}}{{Cj{BlCh}}}}??{{bEf}{{f{{b{c}}}}}{}}0999999","D":"A@j","p":[[1,"reference"],[6,"Attribute",188],[5,"Painted",189],[5,"Command",190],[6,"Color",191],[0,"mut"],[5,"NaiveAotCache",0],[5,"Program",192],[6,"OptLevel",193],[5,"AotNativeExecutor",194],[5,"Arc",195],[10,"PartialEq",196],[10,"Eq",196],[10,"Hash",197],[10,"Display",198],[1,"usize"],[1,"u64"],[8,"Result",199],[5,"Path",200],[10,"AsRef",201],[1,"bool"],[1,"unit"],[1,"u8"],[5,"StressTestCommand",0],[5,"Formatter",198],[8,"Result",198],[5,"ArgMatches",202],[8,"Error",203],[6,"Result",204],[1,"u32"],[5,"FunctionId",205],[1,"tuple"],[6,"Option",206],[5,"Id",207],[5,"Box",208],[6,"RewriteResult",209],[5,"Vec",210],[5,"VecDeque",211],[5,"OrderedHashMap",212],[5,"NativeContext",213],[6,"Quirk",188],[5,"TypeId",214],[5,"Condition",215]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADcAEQACAAAACAABABQAAwAqAAAALQABADIAAAA1AAMAPAACAEMAAABGAAEASQAAAEwAEABnAAAAawAAAKIAAAClAAUArQAHAA=="}],["cairo_native_test",{"t":"FONNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNOONNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNOONNNNNNOOONNNNNNNNNCNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Args","allow_warnings","attr","augment_args","augment_args_for_update","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","command","command_for_update","conceal","cyan","deref","deref_mut","dim","drop","fg","filter","fixed","fmt","from","from_arg_matches","from_arg_matches_mut","green","group_id","ignored","include_ignored","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","main","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","opt_level","path","primary","quirk","rapid_blink","red","resetting","rgb","run_mode","single_file","starknet","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","utils","vzip","whenever","white","wrap","yellow","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"cairo_native_test"],[102,"cairo_native_test::utils"],[281,"cairo_native_test::utils::test"],[536,"yansi::attr_quirk"],[537,"yansi::paint"],[538,"clap_builder::builder::command"],[539,"yansi::color"],[540,"core::fmt"],[541,"clap_builder::parser::matches::arg_matches"],[542,"clap_builder"],[543,"core::result"],[544,"clap_builder::util::id"],[545,"core::option"],[546,"alloc::boxed"],[547,"cairo_lang_semantic::substitution"],[548,"cairo_lang_utils::ordered_hash_map"],[549,"alloc::collections::vec_deque"],[550,"alloc::vec"],[551,"anyhow"],[552,"core::any"],[553,"yansi::condition"],[554,"dyn_clone::sealed"],[555,"cairo_lang_sierra::program"],[556,"starknet_types_core::felt"],[557,"alloc::vec::into_iter"],[558,"alloc::string"],[559,"cairo_native::values"],[560,"cairo_native::execution_result"],[561,"cairo_lang_runner"],[562,"clap_builder::builder::possible_value"],[563,"cairo_lang_test_plugin"],[564,"scarb_metadata"],[565,"cairo_lang_test_plugin::test_config"],[566,"cairo_lang_sierra::ids"],[567,"cairo_lang_sierra::extensions::modules::gas"]],"i":"`Ad0000000000000000000000000000000000000000000000000000`00000000000000000000000000000000000000000`00000Cj0``0Fd1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101Ff0```EbFh2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"``{{bd}{{f{{b{c}}}}}{}}{hh}0{{bj}{{f{{b{c}}}}}{}}{b{{f{{b{c}}}}}{}}000{b{{b{c}}}{}}{{{b{l}}}{{b{lc}}}{}}2222222222{{}h}033{n{{b{c}}}{}}{n{{b{lc}}}{}}5{nA`}7`{{bAb}{{f{{b{c}}}}}{}}{{{b{Ad}}{b{lAf}}}Ah}{cc{}}{{{b{Aj}}}{{An{AdAl}}}}{{{b{lAj}}}{{An{AdAl}}}};{{}{{Bb{B`}}}}``{{}n}{{{b{l}}{b{l{Bd{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{An{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bb{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bh{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bj{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bl{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bn{c}}}}}{{An{Bfe}}}{}{}}{{}c{}}{b{{f{{b{c}}}}}{}}000{{}{{C`{A`}}}}1111111111111{{bAb}{{f{{b{c}}}}}{}}2222{{bAbAbAb}{{f{{b{c}}}}}{}}33``3{{bCb}{{f{{b{c}}}}}{}}4441```4{c{{An{e}}}{}{}}{{}{{An{c}}}{}}{bCd}7{b{{b{c}}}{}}{{{b{l}}}{{b{lc}}}{}}{{{b{lAd}}{b{Aj}}}{{An{A`Al}}}}{{{b{lAd}}{b{lAj}}}{{An{A`Al}}}}`<{{bCf}{{f{{b{c}}}}}{}}<<<````{{bCh}A`}{{bd}{{f{{b{c}}}}}{}}0{{bj}{{f{{b{c}}}}}{}}0????????7766????????????????????{{{b{Cj}}}Cj}{{b{b{lc}}}A`{}}{bA`}{b{{f{{b{c}}}}}{}}000{n{{b{c}}}{}}0{n{{b{lc}}}{}}022{nA`}077{{{b{Cl}}{b{Cn}}}{{C`{{b{D`}}}}}}{{bAb}{{f{{b{c}}}}}{}}0{{{b{Cj}}{b{lAf}}}Ah}{{{Dd{Db}}}Df}{cc{}}088{{}n}0{{{b{l}}{b{l{An{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bn{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bb{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bh{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bj{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bd{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bl{c}}}}}{{An{Bfe}}}{}{}}2631054{{}c{}}0{b{{f{{b{c}}}}}{}}000{{{b{Dh}}}{{Bn{Db}}}}111111111111111111111111111111>>11111111{{bAbAbAb}{{f{{b{c}}}}}{}}02222`22{{bCb}{{f{{b{c}}}}}{}}0333333{{{b{Dj}}}{{C`{Dl}}}}22`44`{bc{}}{{{b{Cj}}}{{Bb{Dn}}}}{c{{An{e}}}{}{}}0{{}{{An{c}}}{}}0{bCd}099{b{{b{c}}}{}}0{{{b{l}}}{{b{lc}}}{}}0{{}{{b{{E`{Cj}}}}}}=={{bCf}{{f{{b{c}}}}}{}}0======`````{{bd}{{f{{b{c}}}}}{}}00{{bj}{{f{{b{c}}}}}{}}00????????????555444????????????????????????????????????{n{{b{c}}}{}}00{n{{b{lc}}}{}}00{b{{f{{b{c}}}}}{}}00{{{b{Eb}}n}A`}{nA`}00``555{{EdEfEfDf}{{Bh{Edn}}}}{{{b{Eh}}}{{Bn{{b{Ej}}}}}}{{bAb}{{f{{b{c}}}}}{}}00{cc{}}00`666`{{}n}00{{{b{l}}{b{l{Bl{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{An{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bb{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bh{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bd{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bn{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bj{ce}}}}}{{An{Bfg}}}{}{}{}}41620356203514{{}c{}}00???????????????????????????????????????????????????:::????????????{{bAbAbAb}{{f{{b{c}}}}}{}}00{b{{f{{b{c}}}}}{}}00000`000{{bCb}{{f{{b{c}}}}}{}}00111111111222{{{Bn{{Bh{DfEl}}}}Cl{Bj{En{Bj{F`Fb}}}}Fd}{{C`{Eb}}}}`222{c{{An{e}}}{}{}}00{{}{{An{c}}}{}}00{bCd}00555{b{{b{c}}}{}}00{{{b{l}}}{{b{lc}}}{}}00999{{bCf}{{f{{b{c}}}}}{}}00888888888","D":"C@j","p":[[1,"reference"],[6,"Attribute",536],[5,"Painted",537],[5,"Command",538],[6,"Color",539],[0,"mut"],[1,"usize"],[1,"unit"],[1,"u8"],[5,"Args",0],[5,"Formatter",540],[8,"Result",540],[5,"ArgMatches",541],[8,"Error",542],[6,"Result",543],[5,"Id",544],[6,"Option",545],[5,"Box",546],[6,"RewriteResult",547],[1,"tuple"],[5,"OrderedHashMap",548],[5,"VecDeque",549],[5,"Vec",550],[8,"Result",551],[6,"Quirk",536],[5,"TypeId",552],[5,"Condition",553],[5,"Private",554],[6,"RunMode",102],[5,"Program",555],[1,"str"],[8,"Function",555],[5,"Felt",556],[5,"IntoIter",557],[5,"String",558],[6,"Value",559],[5,"ExecutionResult",560],[6,"RunResultValue",561],[5,"PossibleValue",562],[1,"slice"],[5,"TestsSummary",281],[5,"TestCompilation",563],[1,"bool"],[5,"PackageMetadata",564],[5,"TargetMetadata",564],[5,"TestConfig",565],[5,"FunctionId",566],[6,"CostTokenType",567],[1,"i32"],[5,"RunArgs",102],[6,"TestStatus",281],[5,"TestResult",281]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAUAEAAAABYAjgCPAFIBUwFUAQ==","e":"OzAAAAEAAJMAIAAAAAAABAABAAsAAQAXAAEAGwABAB4AAAAiAAAAJAABACcAAAAqAAcANwAAAFkAAgBdAAUAZwAEAHgAAwCQAAIAlwADAJ0AAQCkAAAAqgAPAO8AAAD9AAAAAAEIAAsBBgAaAQEAMQEFAFsBBQBlAQQAeQEYAOABAAD4AQgABAIIAA=="}],["scarb_native_dump",{"t":"HCPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["main","utils","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"scarb_native_dump"],[2,"scarb_native_dump::utils"],[181,"scarb_native_dump::utils::test"],[436,"anyhow"],[437,"dyn_clone::sealed"],[438,"yansi::attr_quirk"],[439,"yansi::paint"],[440,"yansi::color"],[441,"cairo_lang_sierra::program"],[442,"core::fmt"],[443,"starknet_types_core::felt"],[444,"alloc::vec::into_iter"],[445,"alloc::string"],[446,"alloc::vec"],[447,"cairo_lang_semantic::substitution"],[448,"core::result"],[449,"core::option"],[450,"cairo_lang_utils::ordered_hash_map"],[451,"alloc::boxed"],[452,"alloc::collections::vec_deque"],[453,"cairo_native::values"],[454,"cairo_native::execution_result"],[455,"cairo_lang_runner"],[456,"clap_builder::builder::possible_value"],[457,"core::any"],[458,"yansi::condition"],[459,"cairo_lang_test_plugin"],[460,"scarb_metadata"],[461,"cairo_lang_test_plugin::test_config"],[462,"cairo_lang_sierra::ids"],[463,"cairo_lang_sierra::extensions::modules::gas"]],"i":"``Ab0``0Ej1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101El0```DhEn2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"{{}{{d{b}}}}`````{{fh}b}{{fj}{{l{{f{c}}}}}{}}0{{fn}{{l{{f{c}}}}}{}}0{f{{l{{f{c}}}}}{}}0000000{f{{f{c}}}{}}0{{{f{A`}}}{{f{A`c}}}{}}022222222222222222222{{{f{Ab}}}Ab}{{f{f{A`c}}}b{}}{fb}5555{Ad{{f{c}}}{}}0{Ad{{f{A`c}}}{}}077{Adb}099{{{f{Af}}{f{Ah}}}{{d{{f{Aj}}}}}}{{fAl}{{l{{f{c}}}}}{}}0{{{f{Ab}}{f{A`An}}}B`}{{{Bd{Bb}}}Bf}{cc{}}0=={{}Ad}0{{{f{A`}}{f{A`{Bh{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Bl{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Bn{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{C`{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Cb{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Cd{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Cf{c}}}}}{{Bl{Bje}}}{}{}}6510342{{}c{}}0{f{{l{{f{c}}}}}{}}000{{{f{Ch}}}{{Bh{Bb}}}}111111111111111111111111111111>>11111111{{fAlAlAl}{{l{{f{c}}}}}{}}02222`22{{fCj}{{l{{f{c}}}}}{}}0333333{{{f{Cl}}}{{d{Cn}}}}22`44`{fc{}}{{{f{Ab}}}{{Bn{D`}}}}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fDb}099{f{{f{c}}}{}}0{{{f{A`}}}{{f{A`c}}}{}}0{{}{{f{{Dd{Ab}}}}}}=={{fDf}{{l{{f{c}}}}}{}}0======`````{{fj}{{l{{f{c}}}}}{}}00{{fn}{{l{{f{c}}}}}{}}00????????????555444????????????????????????????????????{Ad{{f{c}}}{}}00{Ad{{f{A`c}}}{}}00{f{{l{{f{c}}}}}{}}00{{{f{Dh}}Ad}b}{Adb}00``555{{DjDlDlBf}{{C`{DjAd}}}}{{{f{Dn}}}{{Bh{{f{E`}}}}}}{{fAl}{{l{{f{c}}}}}{}}00{cc{}}00`666`{{}Ad}00{{{f{A`}}{f{A`{Cd{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Bl{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{C`{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Cf{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Cb{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Bh{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Bn{c}}}}}{{Bl{Bje}}}{}{}}63504210245631{{}c{}}00???????????????????????????????????????????????????:::????????????{{fAlAlAl}{{l{{f{c}}}}}{}}00{f{{l{{f{c}}}}}{}}00000`000{{fCj}{{l{{f{c}}}}}{}}00111111111222{{{Bh{{C`{BfEb}}}}Af{Cb{Ed{Cb{EfEh}}}}Ej}{{d{Dh}}}}`222{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{fDb}00555{f{{f{c}}}{}}00{{{f{A`}}}{{f{A`c}}}{}}00999{{fDf}{{l{{f{c}}}}}{}}00888888888","D":"BGn","p":[[1,"unit"],[8,"Result",436],[1,"reference"],[5,"Private",437],[6,"Attribute",438],[5,"Painted",439],[6,"Color",440],[0,"mut"],[6,"RunMode",2],[1,"usize"],[5,"Program",441],[1,"str"],[8,"Function",441],[1,"u8"],[5,"Formatter",442],[8,"Result",442],[5,"Felt",443],[5,"IntoIter",444],[5,"String",445],[5,"Vec",446],[6,"RewriteResult",447],[6,"Result",448],[6,"Option",449],[1,"tuple"],[5,"OrderedHashMap",450],[5,"Box",451],[5,"VecDeque",452],[6,"Value",453],[6,"Quirk",438],[5,"ExecutionResult",454],[6,"RunResultValue",455],[5,"PossibleValue",456],[5,"TypeId",457],[1,"slice"],[5,"Condition",458],[5,"TestsSummary",181],[5,"TestCompilation",459],[1,"bool"],[5,"PackageMetadata",460],[5,"TargetMetadata",460],[5,"TestConfig",461],[5,"FunctionId",462],[6,"CostTokenType",463],[1,"i32"],[5,"RunArgs",2],[6,"TestStatus",181],[5,"TestResult",181]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAQAEAAAACoAKwDuAO8A8AA=","e":"OzAAAAEAAHUAFAAAAAAAAgAFABQAAwAsAAIAMwADADkAAQBAAAAARgAPAIsAAACZAAAAnAAIAKcABgC2AAEAzQAFAPcABQABAQQAFQEYAHwBAACUAQgAoAEIAA=="}],["scarb_native_test",{"t":"PFPFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOONNNONNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["All","Args","Integration","TargetGroupDeduplicator","TestKind","Unit","__clone_box","","attr","","","augment_args","augment_args_for_update","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","clone","","clone_into","","clone_to_uninit","","command","command_for_update","conceal","","","cyan","","","default","","deref","","","deref_mut","","","deserialize_test_compilation","dim","","","drop","","","fg","","","filter","fixed","","","fmt","","from","","","from_arg_matches","from_arg_matches_mut","green","","","group_id","ignored","include_ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","main","mask","","","matches","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","opt_level","packages_filter","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_mode","seen","strike","","","test_kind","to_owned","","to_possible_value","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","visit","vzip","","","whenever","","","white","","","wrap","","","yellow","","","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"scarb_native_test"],[284,"scarb_native_test::utils"],[463,"scarb_native_test::utils::test"],[718,"dyn_clone::sealed"],[719,"yansi::attr_quirk"],[720,"yansi::paint"],[721,"clap_builder::builder::command"],[722,"yansi::color"],[723,"std::path"],[724,"alloc::string"],[725,"cairo_lang_test_plugin"],[726,"anyhow"],[727,"core::fmt"],[728,"clap_builder::parser::matches::arg_matches"],[729,"clap_builder"],[730,"core::result"],[731,"clap_builder::util::id"],[732,"core::option"],[733,"cairo_lang_semantic::substitution"],[734,"cairo_lang_utils::ordered_hash_map"],[735,"alloc::vec"],[736,"alloc::boxed"],[737,"alloc::collections::vec_deque"],[738,"clap_builder::builder::possible_value"],[739,"core::any"],[740,"yansi::condition"],[741,"cairo_lang_sierra::program"],[742,"starknet_types_core::felt"],[743,"alloc::vec::into_iter"],[744,"cairo_native::values"],[745,"cairo_native::execution_result"],[746,"cairo_lang_runner"],[747,"scarb_metadata"],[748,"cairo_lang_test_plugin::test_config"],[749,"cairo_lang_sierra::ids"],[750,"cairo_lang_sierra::extensions::modules::gas"]],"i":"Ad`0``0Ab101Af111201201201201201201201201201201201201201201201201201212121112012020120120`12012012011201212011120111120111111122222220000000120120120120120`12021201201201201201201201201201201201201201201201201201201201201112012012012012012010120112212012012012012012011`20120120120120120Dl0``0Fj1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101Fl0```ElFn2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"``````{{bd}f}0{{bh}{{j{{b{c}}}}}{}}00{ll}0{{bn}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000000000{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00222222222222222222222222222222{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{b{b{A`c}}}f{}}0{bf}0{{}l}0777777{{}Ad}{{}Af}{Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00{{{b{Aj}}Al}{{B`{An}}}}<<<{Ahf}00>>>`{{bBb}{{j{{b{c}}}}}{}}00{{{b{Ab}}{b{A`Bd}}}Bf}{{{b{Ad}}{b{A`Bd}}}Bf}{cc{}}00{{{b{Bh}}}{{Bl{AbBj}}}}{{{b{A`Bh}}}{{Bl{AbBj}}}}{b{{j{{b{c}}}}}{}}00{{}{{C`{Bn}}}}``{{}Ah}00{{{b{A`}}{b{A`{Bl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cd{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cf{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Ch{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cj{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{C`{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cl{ce}}}}}{{Bl{Cbg}}}{}{}{}}64105321623504{{}c{}}00::::::::::::{{}{{B`{f}}}};;;{{{b{Ad}}{b{Cn}}}D`}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{{bBb}{{j{{b{c}}}}}{}}00============{{bBbBbBb}{{j{{b{c}}}}}{}}00>>>>>>``>>>{{bDb}{{j{{b{c}}}}}{}}00?????????111``???`{bc{}}0{{{b{Ad}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{bDf}00{b{{j{{b{c}}}}}{}}00{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00{{{b{A`Ab}}{b{Bh}}}{{Bl{fBj}}}}{{{b{A`Ab}}{b{A`Bh}}}{{Bl{fBj}}}}`{{}{{b{{Dh{Ad}}}}}}{{{b{A`Af}}AlAl}D`}{{}c{}}00{{bDj}{{j{{b{c}}}}}{}}00888888888````{{bd}f}{{bh}{{j{{b{c}}}}}{}}0{{bn}{{j{{b{c}}}}}{}}0;;;;;;;;::99;;;;;;;;;;;;;;;;;;;;{{{b{Dl}}}Dl}{{b{b{A`c}}}f{}}{bf}>>>>{Ah{{b{c}}}{}}0{Ah{{b{A`c}}}{}}0{b{{j{{b{c}}}}}{}}0{Ahf}077{{{b{Dn}}{b{Cn}}}{{B`{{b{E`}}}}}}{{bBb}{{j{{b{c}}}}}{}}0{{{b{Dl}}{b{A`Bd}}}Bf}{{{Ed{Eb}}}Al}{cc{}}066{{}Ah}0{{{b{A`}}{b{A`{Cj{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cf{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Bl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cd{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Ch{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{C`{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cl{ce}}}}}{{Bl{Cbg}}}{}{}{}}3260145{{}c{}}0????{{{b{Ef}}}{{Cf{Eb}}}}{b{{j{{b{c}}}}}{}}00000000000000000000000000000>>00000000{{bBbBbBb}{{j{{b{c}}}}}{}}01111`11{{bDb}{{j{{b{c}}}}}{}}0222222{{{b{Eh}}}{{B`{Ej}}}}22`33`{bc{}}{{{b{Dl}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{bDf}088{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{}{{b{{Dh{Dl}}}}}}=={{bDj}{{j{{b{c}}}}}{}}0<<<<<<`````{{bh}{{j{{b{c}}}}}{}}00{{bn}{{j{{b{c}}}}}{}}00>>>>>>>>>>>>555444>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00{b{{j{{b{c}}}}}{}}00{{{b{El}}Ah}f}{Ahf}00``555{{AnD`D`Al}{{Cl{AnAh}}}}{{{b{En}}}{{Cf{{b{F`}}}}}}{{bBb}{{j{{b{c}}}}}{}}00{cc{}}00`666`{{}Ah}00{{{b{A`}}{b{A`{C`{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cj{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cf{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Bl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cd{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Ch{c}}}}}{{Bl{Cbe}}}{}{}}63215044015632{{}c{}}00???????????????????????????????????????????????????:::????????????{{bBbBbBb}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000`000{{bDb}{{j{{b{c}}}}}{}}00111111111222{{{Cf{{Cl{AlFb}}}}Dn{Cd{Fd{Cd{FfFh}}}}Fj}{{B`{El}}}}`222{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{bDf}00555{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00999{{bDj}{{j{{b{c}}}}}{}}00888888888","D":"COj","p":[[1,"reference"],[5,"Private",718],[1,"unit"],[6,"Attribute",719],[5,"Painted",720],[5,"Command",721],[6,"Color",722],[0,"mut"],[5,"Args",0],[6,"TestKind",0],[5,"TargetGroupDeduplicator",0],[1,"usize"],[5,"Path",723],[5,"String",724],[5,"TestCompilation",725],[8,"Result",726],[1,"u8"],[5,"Formatter",727],[8,"Result",727],[5,"ArgMatches",728],[8,"Error",729],[6,"Result",730],[5,"Id",731],[6,"Option",732],[6,"RewriteResult",733],[5,"OrderedHashMap",734],[5,"Vec",735],[5,"Box",736],[5,"VecDeque",737],[1,"tuple"],[1,"str"],[1,"bool"],[6,"Quirk",719],[5,"PossibleValue",738],[5,"TypeId",739],[1,"slice"],[5,"Condition",740],[6,"RunMode",284],[5,"Program",741],[8,"Function",741],[5,"Felt",742],[5,"IntoIter",743],[6,"Value",744],[5,"ExecutionResult",745],[6,"RunResultValue",746],[5,"TestsSummary",463],[5,"PackageMetadata",747],[5,"TargetMetadata",747],[5,"TestConfig",748],[5,"FunctionId",749],[6,"CostTokenType",750],[1,"i32"],[5,"RunArgs",284],[6,"TestStatus",463],[5,"TestResult",463]],"r":[],"b":[],"c":"OzAAAAEAAAcAAwA+AAIARAEBAAgCAgA=","e":"OzAAAAEAANEAJQAAAAEAAwAFAAwAAQAdAAUAQQAHAE8ACABbAAIAZQABAGoAAQBvAAAAcgAXAJkAAACdAAAA2wAAAO8AAAD0AAsAAwEJAA4BAgAdAQQALgEDAEYBAgBNAQMAUwEBAFoBAABgAQ8ApQEAALMBAAC2AQgAwQEGANABAQDnAQUAEQIFABsCBAAvAhgAlgIAAK4CCAC6AggA"}]]')); +var searchIndex = new Map(JSON.parse('[["cairo_native",{"t":"PPPPPPPPPPPPPPGPPPPPPPPPPPPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNHNNCNNCNNNNNNNNCNNNNNNNNNNNNCCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCHQQHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNCNNNNNNNNNNOOOOOOOOOOOPEPEGCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCCCCCCCCPPPPPGPPPGPPPPPPPPPPPPPPPPPPPPIPPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNFFFNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNOONNNOONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNCNNNNNNNNNNNNNNNNNNNCNNNNNCCCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNCNNNNNNNNNNNFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFFGFPNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFPFFFPFSFFKIFFFNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHMNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNMNMNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNOONNNNNNNNNNNNMNMNMNMNMNMNMNMNMNMNMNONNNNNNNNNMNOOOMNMNNNNNNNNNNNNNONNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNFFFNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHNNNNNNNNNNNNNNNNHOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNFJFJSNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNOHNNHHNNNNNNNNNNONNNNNHHHNNHHHNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHOONNNNNNNNHNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNH","n":["Aggressive","Array","BoundedInt","Bytes31","Default","EcPoint","EcState","Enum","Felt252","Felt252Dict","IntRange","Less","None","Null","OptLevel","Secp256K1Point","Secp256R1Point","Sint128","Sint16","Sint32","Sint64","Sint8","Struct","Uint128","Uint16","Uint32","Uint64","Uint8","Value","__clone_box","","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","cache","clear","","clone","","clone_into","","clone_to_uninit","","cmp","compare","compile","conceal","","context","cyan","","debug","default","deref","","deref_mut","","deserialize","dim","","docs","drop","","eq","","equivalent","","","","","","","","error","execution_result","executor","fg","","fixed","","fmt","","from","","","","","","","","","","","","","","","","","","green","","hash","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","mask","","metadata","module","module_to_object","native_assert","native_panic","object_to_shared_lib","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","partial_cmp","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","serialize","starknet","starknet_stub","strike","","to_owned","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","utils","vzip","","whenever","","white","","wrap","","yellow","","debug_name","","","fields","range","tag","value","","","x","y","Aot","AotProgramCache","Jit","JitProgramCache","ProgramCache","aot","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","","","green","init","internal_rewrite","","","","","","","into","invert","italic","jit","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AotProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","JitProgramCache","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile_and_insert","conceal","context","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeContext","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","compile","conceal","context","cyan","default","deref","deref_mut","dim","drop","eq","equivalent","","","","fg","fixed","fmt","from","green","init","initialize_mlir","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","libfunc_to_name","section01","section02","section03","section04","section05","section06","section07","section08","BadTypeInfo","BadTypeInit","BoundedIntOutOfRange","Cast","Compiler","CompilerError","ConstDataMismatch","EditStateError","Err","Error","GasMetadataError","ImpossibleCircuit","IntegerConversion","IntegerLikeTypeExpected","IoError","LLVMCompileError","LayoutError","LayoutErrorPolyfill","LibraryLoadError","LinkError","MissingBuiltinCostsSymbol","MissingMetadata","MissingParameter","MissingSyscallHandler","MlirError","NativeAssert","Ok","ParseAttributeError","ProgramRegistryErrorBoxed","Range","Result","SelectorNotFound","SerdeJsonError","SierraAssert","SierraAssertError","TryFromIntError","UnexpectedValue","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","drop","","","fg","","","fixed","","","fmt","","","","","","from","","","","","","","","","","","","","","","","green","","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","make_missing_parameter","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","panic","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","source","strike","","","to_smolstr","","","to_string","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","range","value","ranges","NativeAssertError","ToNativeAssertError","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","to_native_assert_error","to_smolstr","to_string","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","BuiltinStats","ContractExecutionResult","ExecutionResult","__clone_box","","","attr","","","bg","","","bitwise","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","builtin_stats","circuit_add","circuit_mul","clear","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","conceal","","","cyan","","","default","","deref","","","deref_mut","","","deserialize","","","dim","","","drop","","","ec_op","eq","","","equivalent","","","","","","","","","","","","error_msg","failure_flag","fg","","","fixed","","","fmt","","","from","","","from_execution_result","green","","","hash","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","partial_cmp","","pedersen","poseidon","primary","","","quirk","","","range_check","range_check_96","rapid_blink","","","red","","","remaining_gas","","resetting","","","return_value","return_values","rgb","","","segment_arena","serialize","","","strike","","","to_owned","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","AotContractExecutor","AotNativeExecutor","JitNativeExecutor","__clone_box","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","clone","clone_into","clone_to_uninit","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","drop","","","","fg","","","find_function_ptr","","","find_symbol_ptr","","","fixed","","","fmt","","","from","","","from_native_module","","green","","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","invoke_contract_dynamic","","invoke_dynamic","","invoke_dynamic_with_syscall_handler","","italic","","","linger","","","load","magenta","","","mask","","","module","new","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","primary","","","program_registry","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run","save","strike","","","to_owned","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","MetadataStorage","attr","auto_breakpoint","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_utils","default","deref","deref_mut","dim","drop","drop_overrides","dup_overrides","enum_snapshot_variants","fg","fixed","fmt","from","gas","get","get_mut","get_or_insert_with","green","init","insert","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc_bindings","red","remove","resetting","rgb","runtime_bindings","strike","tail_recursion","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","AutoBreakpoint","BreakpointEvent","EnumInit","__clone_box","","add_event","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","","clone_into","","clone_to_uninit","","conceal","","cyan","","default","deref","","deref_mut","","dim","","drop","","eq","equivalent","","","","fg","","fixed","","fmt","","from","","green","","has_event","hash","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","mask","","maybe_breakpoint","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","strike","","to_owned","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","vzip","","whenever","","white","","wrap","","yellow","","type_id","variant_idx","DebugUtils","attr","bg","black","blink","blue","bold","borrow","borrow_mut","breakpoint_marker","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","debug_breakpoint_trap","debug_print","default","deref","deref_mut","dim","drop","dump_mem","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","print_felt252","print_i1","print_i128","print_i32","print_i64","print_i8","print_pointer","quirk","rapid_blink","red","register_impls","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DropOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","DupOverridesMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","EnumSnapshotVariantsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dim","drop","fg","fixed","from","get_variants","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","set_mapping","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ApChangeError","CostError","GasCost","GasMetadata","GasMetadataError","MetadataComputationConfig","NotEnoughGas","__clone_box","","","ap_change_info","attr","","","","bg","","","","black","","","","blink","","","","blue","","","","bold","","","","borrow","","","","borrow_mut","","","","bright","","","","bright_black","","","","bright_blue","","","","bright_cyan","","","","bright_green","","","","bright_magenta","","","","bright_red","","","","bright_white","","","","bright_yellow","","","","clear","","","","clone","","","clone_into","","","clone_to_uninit","","","conceal","","","","cyan","","","","default","","deref","","","","deref_mut","","","","dim","","","","drop","","","","eq","","","equivalent","","","","","","","","","","","","fg","","","","fixed","","","","fmt","","","","","from","","","","","","function_set_costs","gas_info","get_gas_cost_for_statement_and_cost_token_type","get_gas_costs_for_statement","get_initial_available_gas","green","","","","hash","init","","","","initial_required_gas","initial_required_gas_for_entry_points","internal_rewrite","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","invert","","","","italic","","","","linear_ap_change_solver","linear_gas_solver","linger","","","","magenta","","","","mask","","","","new","on_black","","","","on_blue","","","","on_bright","","","","on_bright_black","","","","on_bright_blue","","","","on_bright_cyan","","","","on_bright_green","","","","on_bright_magenta","","","","on_bright_red","","","","on_bright_white","","","","on_bright_yellow","","","","on_cyan","","","","on_fixed","","","","on_green","","","","on_magenta","","","","on_primary","","","","on_red","","","","on_rgb","","","","on_white","","","","on_yellow","","","","primary","","","","quirk","","","","rapid_blink","","","","red","","","","resetting","","","","rgb","","","","source","strike","","","","to_owned","","","to_smolstr","to_string","try_from","","","","try_into","","","","type_id","","","","underline","","","","upcast","","","","upcast_mut","","","","vzip","","","","whenever","","","","white","","","","wrap","","","","yellow","","","","gas","ReallocBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","free","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","realloc","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","RuntimeBindingsMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","default","deref","deref_mut","dict_drop","dict_dup","dict_gas_refund","dict_get","dict_insert","dict_new","dim","drop","fg","fixed","fmt","from","get_gas_builtin","green","init","internal_rewrite","","","","","","","into","invert","italic","libfunc_debug_print","libfunc_ec_point_from_x_nz","libfunc_ec_point_try_new_nz","libfunc_ec_state_add","libfunc_ec_state_add_mul","libfunc_ec_state_init","libfunc_ec_state_try_finalize_nz","libfunc_hades_permutation","libfunc_pedersen","linger","magenta","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","red","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vtable_cheatcode","vzip","whenever","white","wrap","yellow","TailRecursionMeta","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","depth_counter","deref","deref_mut","dim","drop","fg","fixed","fmt","from","green","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","quirk","rapid_blink","recursion_target","red","resetting","return_target","rgb","set_return_target","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","NativeModule","attr","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","conceal","cyan","deref","deref_mut","dim","drop","fg","fixed","fmt","from","get_metadata","green","init","insert_metadata","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","mask","metadata","module","new","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","primary","program_registry","quirk","rapid_blink","red","remove_metadata","resetting","rgb","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","vzip","whenever","white","wrap","yellow","ArrayAbi","BlockInfo","DummySyscallHandler","Err","ExecutionInfo","ExecutionInfoV2","Felt252Abi","Ok","ResourceBounds","SYSCALL_HANDLER_VTABLE","Secp256k1Point","Secp256r1Point","StarknetSyscallHandler","SyscallResult","TxInfo","TxV2Info","U256","__clone_box","","","","","","","","","","account_contract_address","","account_deployment_data","attr","","","","","","","","","","","","bg","","","","","","","","","","","","black","","","","","","","","","","","","blink","","","","","","","","","","","","block_info","","block_number","block_timestamp","blue","","","","","","","","","","","","bold","","","","","","","","","","","","borrow","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","bright","","","","","","","","","","","","bright_black","","","","","","","","","","","","bright_blue","","","","","","","","","","","","bright_cyan","","","","","","","","","","","","bright_green","","","","","","","","","","","","bright_magenta","","","","","","","","","","","","bright_red","","","","","","","","","","","","bright_white","","","","","","","","","","","","bright_yellow","","","","","","","","","","","","cairo_native__vtable_cheatcode","call_contract","","caller_address","","capacity","chain_id","","cheatcode","clear","","","","","","","","","","","","clone","","","","","","","","","","clone_into","","","","","","","","","","clone_to_uninit","","","","","","","","","","cmp","","","","","","","compare","","","","","","","conceal","","","","","","","","","","","","contract_address","","cyan","","","","","","","","","","","","default","","","deploy","","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","deserialize","","","","","","","","","dim","","","","","","","","","","","","drop","","","","","","","","","","","","emit_event","","entry_point_selector","","eq","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fee_data_availability_mode","fg","","","","","","","","","","","","fixed","","","","","","","","","","","","fmt","","","","","","","","","","","from","","","","","","","","","","","","get_block_hash","","get_class_hash_at","","get_execution_info","","get_execution_info_v2","","green","","","","","","","","","","","","hash","","","","","","","","","hi","init","","","","","","","","","","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","invert","","","","","","","","","","","","is_infinity","","italic","","","","","","","","","","","","keccak","","library_call","","linger","","","","","","","","","","","","lo","magenta","","","","","","","","","","","","mask","","","","","","","","","","","","max_amount","max_fee","","max_price_per_unit","new","","nonce","","nonce_data_availability_mode","on_black","","","","","","","","","","","","on_blue","","","","","","","","","","","","on_bright","","","","","","","","","","","","on_bright_black","","","","","","","","","","","","on_bright_blue","","","","","","","","","","","","on_bright_cyan","","","","","","","","","","","","on_bright_green","","","","","","","","","","","","on_bright_magenta","","","","","","","","","","","","on_bright_red","","","","","","","","","","","","on_bright_white","","","","","","","","","","","","on_bright_yellow","","","","","","","","","","","","on_cyan","","","","","","","","","","","","on_fixed","","","","","","","","","","","","on_green","","","","","","","","","","","","on_magenta","","","","","","","","","","","","on_primary","","","","","","","","","","","","on_red","","","","","","","","","","","","on_rgb","","","","","","","","","","","","on_white","","","","","","","","","","","","on_yellow","","","","","","","","","","","","partial_cmp","","","","","","","paymaster_data","primary","","","","","","","","","","","","ptr","quirk","","","","","","","","","","","","rapid_blink","","","","","","","","","","","","red","","","","","","","","","","","","replace_class","","resetting","","","","","","","","","","","","resource","resource_bounds","rgb","","","","","","","","","","","","secp256k1_add","","secp256k1_get_point_from_x","","secp256k1_get_xy","","secp256k1_mul","","secp256k1_new","","secp256r1_add","","secp256r1_get_point_from_x","","secp256r1_get_xy","","secp256r1_mul","","secp256r1_new","","send_message_to_l1","","sequencer_address","serialize","","","","","","","","","sha256_process_block","","signature","","since","storage_read","","storage_write","","strike","","","","","","","","","","","","tip","to_owned","","","","","","","","","","transaction_hash","","try_from","","","","","","","","","","","","try_into","","","","","","","","","","","","tx_info","","type_id","","","","","","","","","","","","underline","","","","","","","","","","","","until","upcast","","","","","","","","","","","","upcast_mut","","","","","","","","","","","","version","","vzip","","","","","","","","","","","","whenever","","","","","","","","","","","","white","","","","","","","","","","","","wrap","","","","","","","","","","","","x","","y","","yellow","","","","","","","","","","","","ContractLogs","StubEvent","StubSyscallHandler","__clone_box","","","attr","","","bg","","","big4int_to_u256","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","call_contract","cheatcode","clear","","","clone","","","clone_into","","","clone_to_uninit","","","conceal","","","cyan","","","data","decode_felts_as_str","default","","deploy","deref","","","deref_mut","","","dim","","","drop","","","emit_event","encode_str_as_felts","events","","execution_info","fg","","","fixed","","","fmt","","","from","","","get_block_hash","get_class_hash_at","get_execution_info","get_execution_info_v2","green","","","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","keccak","keys","l2_to_l1_messages","library_call","linger","","","logs","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","primary","","","quirk","","","rapid_blink","","","red","","","replace_class","resetting","","","rgb","","","secp256k1_add","secp256k1_get_point_from_x","secp256k1_get_xy","secp256k1_mul","secp256k1_new","secp256r1_add","secp256r1_get_point_from_x","secp256r1_get_xy","secp256r1_mul","secp256r1_new","send_message_to_l1","sha256_process_block","storage","storage_read","storage_write","strike","","","to_owned","","","try_from","","","try_into","","","type_id","","","u256_to_biguint","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","","","BuiltinCosts","HALF_PRIME","LayoutError","PRIME","SHARED_LIBRARY_EXT","__clone_box","","add_mod","attr","","bg","","bitwise","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","cairo_to_sierra","clear","","clone","","clone_into","","clone_to_uninit","","conceal","","const","create_engine","cyan","","debug_with","decode_error_message","default","deref","","deref_mut","","deserialize","dim","","drop","","ecop","eq","equivalent","","","","felt252_bigint","felt252_short_str","felt252_str","fg","","find_entry_point","find_entry_point_by_idx","find_function_id","fixed","","fmt","","","from","","generate_function_name","get_integer_layout","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","layout_repeat","linger","","magenta","","mask","","mem_tracing","mul_mod","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","padding_needed_for","pedersen","poseidon","primary","","quirk","","rapid_blink","","red","","register_runtime_symbols","resetting","","rgb","","run_pass_manager","serialize","strike","","to_owned","","to_smolstr","to_string","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","vzip","","whenever","","white","","wrap","","yellow","","report_stats"],"q":[[0,"cairo_native"],[251,"cairo_native::Value"],[262,"cairo_native::cache"],[352,"cairo_native::cache::aot"],[437,"cairo_native::cache::jit"],[523,"cairo_native::context"],[615,"cairo_native::debug"],[616,"cairo_native::docs"],[624,"cairo_native::error"],[929,"cairo_native::error::CompilerError"],[931,"cairo_native::error::SierraAssertError"],[932,"cairo_native::error::panic"],[1020,"cairo_native::execution_result"],[1329,"cairo_native::executor"],[1602,"cairo_native::metadata"],[1700,"cairo_native::metadata::auto_breakpoint"],[1885,"cairo_native::metadata::auto_breakpoint::BreakpointEvent"],[1887,"cairo_native::metadata::debug_utils"],[1982,"cairo_native::metadata::drop_overrides"],[2065,"cairo_native::metadata::dup_overrides"],[2148,"cairo_native::metadata::enum_snapshot_variants"],[2232,"cairo_native::metadata::gas"],[2613,"cairo_native::metadata::gas::GasMetadataError"],[2614,"cairo_native::metadata::realloc_bindings"],[2699,"cairo_native::metadata::runtime_bindings"],[2799,"cairo_native::metadata::tail_recursion"],[2886,"cairo_native::module"],[2975,"cairo_native::starknet"],[4209,"cairo_native::starknet_stub"],[4509,"cairo_native::utils"],[4721,"cairo_native::utils::mem_tracing"],[4722,"dyn_clone::sealed"],[4723,"yansi::attr_quirk"],[4724,"yansi::paint"],[4725,"yansi::color"],[4726,"cairo_native::ffi"],[4727,"cairo_native::values"],[4728,"core::cmp"],[4729,"melior::context"],[4730,"melior::ir::module"],[4731,"cairo_lang_sierra::program"],[4732,"cairo_lang_sierra::extensions::core"],[4733,"cairo_lang_sierra::program_registry"],[4734,"melior::ir::attribute"],[4735,"core::result"],[4736,"serde::de"],[4737,"core::fmt"],[4738,"core::convert"],[4739,"starknet_types_core::felt"],[4740,"core::clone"],[4741,"alloc::vec"],[4742,"core::hash"],[4743,"alloc::boxed"],[4744,"cairo_lang_semantic::substitution"],[4745,"alloc::collections::vec_deque"],[4746,"core::option"],[4747,"cairo_lang_utils::ordered_hash_map"],[4748,"std::path"],[4749,"serde::ser"],[4750,"core::any"],[4751,"yansi::condition"],[4752,"cairo_native::executor::aot"],[4753,"alloc::sync"],[4754,"cairo_native::executor::jit"],[4755,"core::alloc::layout"],[4756,"melior::error"],[4757,"serde_json::error"],[4758,"libloading::error"],[4759,"std::io::error"],[4760,"cairo_lang_sierra::edit_state"],[4761,"core::num::error"],[4762,"cairo_lang_sierra::ids"],[4763,"core::error"],[4764,"smol_str"],[4765,"alloc::string"],[4766,"cairo_native::executor::contract"],[4767,"core::ffi"],[4768,"libloading::safe"],[4769,"cairo_lang_starknet_classes::contract_class"],[4770,"core::ops::function"],[4771,"melior::ir::block"],[4772,"melior::ir::location"],[4773,"melior::ir::value"],[4774,"melior::execution_engine"],[4775,"cairo_lang_sierra_ap_change"],[4776,"cairo_lang_sierra_gas"],[4777,"cairo_lang_sierra::extensions::modules::gas"],[4778,"alloc::collections::btree::map"],[4779,"melior::ir::operation"],[4780,"ark_ff::biginteger"],[4781,"num_bigint::biguint"],[4782,"anyhow"],[4783,"num_bigint::bigint"],[4784,"alloc::borrow"],[4785,"cairo_native::compiler"]],"i":"A`Ab001000000110`0000000000000`101010101010101010101010101010101010`1010101011`10`10`11010010`101011110000```1010101110000000000000001011011111110000000101010101010``````101010101010101010101010101010101010101011010101010100``1010101010101010`1010101010ABjABlABn2AC`2210ACb0Fn`0```000000000000000000000000000000000000000000`00000000000000000000000000000000000000000`Gj00000000000000000000000000000000000000000000000000000000000000000000000000000000000`Gh000000000000000000000000000000000000000000000000000000000000000000000000000000000000`H`0000000000000000000000000000000000000`0000000000000000000000000000000000000000000000000000`````````Hl0Hn1Bh`00Fb`13111111111111110113`111`1113213213213213213213213213213213213213213213213213213213213213213213213213213211332211111111111111321321321111111333333322222221321321321321321132132132132132132132132132132132132132132132132132132132132132`1321321321321321321132132132132132132132132132132132132132132ACd0ACf``In00000000000000000000000000000000000000000000000000000000000000000000000Jn1111111111111```K`KbKd210210221021021021021021021021021021021021021021021012221021021021020202102102021021021021021022102222111100000021021021021002102021022222221111111000000021021021021021021021021021021021021021021021021021021021021021021021021021021020222102102221021010210102102210210210210210210210210210210210210210210```KfHbGl210210210210210210210210210210210210210210210210210222210210210210210210221021021021021021021010210211111110000000222222210210210101010210221021021021021021021021021021021021021021021021021021021021021021021021021102102102102102221022102102102102102102102102102102102`Bb`0000000000000000000`00000```0000`0000000000000000000000000000000000000000000`0000`0`00000000000``M`0Ln010101010101010101010101010101010101010101010100101010101111110101010100110111111100000001010101010100101010101010101010101010101010101010101010101010101010101010101010101010101010ACh0`Mf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Ml000000000000000000000000000000000000000000000000000000000000000000000000000000000`Mn000000000000000000000000000000000000000000000000000000000000000000000000000000000`N`0000000000000000000000000000000000000000000000000000000000000000000000000000000000Ij0````0L`NbHd22103210321032103210321032103210321032103210321032103210321032103210321032102102102103210320210321032103210321322221111333321032103210332103330222221031210322222222211111110000000333333321032103210300210321032103221032103210321032103210321032103210321032103210321032103210321032103210321032103210321032103210321032103321032103321032103210321032103210321032103210321032103ACj`Nn00000000000000000000000000000000000000000000000000000000000000000000000000000000000`Ob00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Of0000000000000000000000000000000000000000000000000000000000000000000000000000000000000`Hf000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```On```0`````````OjA@bA@dA@fA@hA@jA@lA@nAA`AAb525A@`Ol;:9876543210;:9876543210;:9876543210;:98765432985510;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:9876543210;:98765432`Kl2:9185021<;:9876543<;:9876543<;:9876543<;:9876543;:98765;:9876521<;:9876543:921<;:9876543;430221<;:987654321<;:9876543;:987654321<;:987654321<;:987654302:9;:9876543;;;;::::9999888877776666555544443333821<;:987654321<;:98765431<;:987654321<;:98765430202020221<;:9876543;:9876543;21<;:987654322222221111111<<<<<<<;;;;;;;:::::::999999988888887777777666666655555554444444333333321<;:987654321<;:98765434321<;:9876543020221<;:9876543;21<;:987654321<;:987654378574385821<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:987654321<;:9876543;:98765821<;:9876543121<;:987654321<;:987654321<;:98765430221<;:98765437821<;:987654302020202020202020202026;:987654302851020221<;:98765438<;:98765438521<;:987654321<;:9876543:921<;:987654321<;:9876543121<;:987654321<;:98765438521<;:987654321<;:987654321<;:987654321<;:9876543434321<;:9876543```AAfAAhAAj210210`210210210210210210210210210210210210210210210222102102102102102101`2022102102102102`2022102102102102222210210222222211111110000000210210210210221022102102102102102102102102102102102102102102102102102102102102102102102102102102210210222222222222222210210210210210`210210210210210210210210`````LdJd110101101010101010101010101010101010`10101010101`10``1101011010100000```10```1010010``101011111110000000101010`101010`11010101010101010101010101010101010101010`1110101010`1010`11010001010101010101010101010`","f":"`````````````````````````````{{bd}f}0{{bh}{{j{{b{c}}}}}{}}0{{bl}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0222222222222222222`22{{{b{A`}}}A`}{{{b{Ab}}}Ab}{{b{b{nc}}}f{}}0{bf}0{{{b{A`}}{b{A`}}}Ad}{{b{b{c}}}Ad{}}{{{b{Af}}{b{Ah}}{b{Aj}}{b{{B`{AlAn}}}}{b{nBb}}BdBf}{{Bj{fBh}}}}99`99`{{}A`}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}0{c{{Bj{Ab}}}Bn}==`{Blf}0{{{b{A`}}{b{A`}}}Bf}{{{b{Ab}}{b{Ab}}}Bf}{{b{b{c}}}Bf{}}0000000```{{bl}{{j{{b{c}}}}}{}}0{{bC`}{{j{{b{c}}}}}{}}0{{{b{A`}}{b{nCb}}}Cd}{{{b{Ab}}{b{nCb}}}Cd}{C`A`}{BlA`}{cc{}}{CfAb}1{ChAb}{CjAb}{{{Cl{c}}}Ab{{Cn{Ab}}}}{D`Ab}{DbAb}{{{b{{Dd{c}}}}}Ab{{Cn{Ab}}Df}}{C`Ab}{DhAb}{DjAb}{DlAb}{DnAb}{E`Ab}{{{Eb{c}}}Ab{{Cn{Ab}}}}{b{{j{{b{c}}}}}{}}0{{{b{A`}}{b{nc}}}fEd}{{}Bl}0{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}4312650{{}c{}}0::::::::::``{{{b{Ah}}A`}{{Fb{{Eb{C`}}}}}}``{{{b{{Dd{C`}}}}{b{Fd}}}{{Fb{f}}}}<<<<<<<<<<<<<<<<<<<<<<<<{{bC`}{{j{{b{c}}}}}{}}0========{{bC`C`C`}{{j{{b{c}}}}}{}}0>>>>{{{b{A`}}{b{A`}}}{{El{Ad}}}}??{{bFf}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000033{{{b{Ab}}c}BjFh}``11{bc{}}0{c{{Bj{e}}}{}{}}0{{}{{Bj{c}}}{}}0{bFj}055{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0`>>{{bFl}{{j{{b{c}}}}}{}}0888888`````````````````{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}::::43::::::::::::{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{{Fn{c}}}}{b{nCb}}}Cd{G`GbGdGf}}{{{Gh{c}}}{{Fn{c}}}{G`GbGd}}{{{Gj{c}}}{{Fn{c}}}{G`GbGd}}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}99`999999999999999>9999{{bC`C`C`}{{j{{b{c}}}}}{}}:::{{bFf}{{j{{b{c}}}}}{}};;;1;{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}>{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}7{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}2222542222222222{{{b{n{Gj{c}}}}c{b{Aj}}A`}{{Fb{{Gn{Gl}}}}}{G`GbGd}}33{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{{Gj{c}}}}{b{nCb}}}Cd{G`GbGd}}{cc{}}{{{b{{Gj{c}}}}{b{c}}}{{El{{Gn{Gl}}}}}{G`GbGd}}:{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{{b{H`}}}{{Gj{c}}}{G`GbGd}}111111111111>1111{{bC`C`C`}{{j{{b{c}}}}}{}}222{{bFf}{{j{{b{c}}}}}{}}33313{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}6{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}9{{bFl}{{j{{b{c}}}}}{}}999`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}};;;;43;;;;;;;;;;{{{b{n{Gh{c}}}}c{b{Aj}}A`}{{Fb{{Gn{Hb}}}}}{GbGdG`}}<{{{b{{Gh{c}}}}}{{b{H`}}}{GbGdG`}}={Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}?{Blf}5{{bC`}{{j{{b{c}}}}}{}}{{{b{{Gh{c}}}}{b{nCb}}}Cd{GbGdG`}}{cc{}}{{{b{{Gh{c}}}}{b{c}}}{{El{{Gn{Hb}}}}}{GbGdG`}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999{{{b{H`}}}{{Gh{c}}}{GbGdG`}}::::::::::::>::::{{bC`C`C`}{{j{{b{c}}}}}{}};;;{{bFf}{{j{{b{c}}}}}{}}<<<1<{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}?{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}8{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}2222542222222222{{{b{H`}}{b{Aj}}Bf{El{Hd}}}{{Bj{HfBh}}}}3{{{b{H`}}}{{b{Af}}}}4{{}H`}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}{{{b{H`}}{b{H`}}}Bf}{{b{b{c}}}Bf{}}0008{{bC`}{{j{{b{c}}}}}{}}{{{b{H`}}{b{nCb}}}Cd}{cc{}}={{}Bl}{{}Af}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{}H`}111111111111>1111{{bC`C`C`}{{j{{b{c}}}}}{}}222{{bFf}{{j{{b{c}}}}}{}}33313{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}6{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}9{{bFl}{{j{{b{c}}}}}{}}999{{{b{Hh}}}{{b{Hj}}}}`````````````````````````````````````````````{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00<<<<<<<<<<<<555444<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00>>>{Blf}00333{{bC`}{{j{{b{c}}}}}{}}00{{{b{Bh}}{b{nCb}}}Cd}0{{{b{Hl}}{b{nCb}}}Cd}0{{{b{Hn}}{b{nCb}}}Cd}0{I`Bh}{IbBh}{IdBh}{IfBh}{IhBh}{IjBh}{IlBh}{cc{}}{HnBh}{InBh}{HlBh}{J`Bh}{{{Ef{Jb}}}Bh}{JdBh}66{b{{j{{b{c}}}}}{}}00{{}Bl}00{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}65432103240156{{}c{}}00999999999999{{{b{Jf}}}Bh}:::::::::::::::::::::::::::::::::::::::{{bC`}{{j{{b{c}}}}}{}}00;;;;;;;;;;;;{{bC`C`C`}{{j{{b{c}}}}}{}}00<<<<<<`<<<{{bFf}{{j{{b{c}}}}}{}}00=========111{{{b{Bh}}}{{El{{b{Jh}}}}}}>>>{bJj}00{bJl}00{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00{b{{j{{b{c}}}}}{}}00{b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00==={{bFl}{{j{{b{c}}}}}{}}00333333333`````{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}555543555555555555{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{In}}{b{nCb}}}Cd}0{cc{}};{{}Bl}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{JlIn}111111111111=1111{{bC`C`C`}{{j{{b{c}}}}}{}}222{{bFf}{{j{{b{c}}}}}{}}33313{{Jn{b{Hj}}}{{Fb{c}}}{}}{bJj}{bJl}{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}9{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}<{{bFl}{{j{{b{c}}}}}{}}<<<```{{bd}f}00{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00`????????????555444???????????????????????????```???{{{b{K`}}}K`}{{{b{Kb}}}Kb}{{{b{Kd}}}Kd}{{b{b{nc}}}f{}}00{bf}00{{{b{K`}}{b{K`}}}Ad}{{{b{Kd}}{b{Kd}}}Ad}{{b{b{c}}}Ad{}}0{b{{j{{b{c}}}}}{}}00000{{}K`}{{}Kd}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00{c{{Bj{K`}}}Bn}{c{{Bj{Kb}}}Bn}{c{{Bj{Kd}}}Bn}777{Blf}00`{{{b{K`}}{b{K`}}}Bf}{{{b{Kb}}{b{Kb}}}Bf}{{{b{Kd}}{b{Kd}}}Bf}{{b{b{c}}}Bf{}}00000000000``{{bl}{{j{{b{c}}}}}{}}00{{bC`}{{j{{b{c}}}}}{}}00{{{b{K`}}{b{nCb}}}Cd}{{{b{Kb}}{b{nCb}}}Cd}{{{b{Kd}}{b{nCb}}}Cd}{cc{}}00{Kb{{Bj{KdBh}}}}{b{{j{{b{c}}}}}{}}00{{{b{K`}}{b{nc}}}fEd}{{{b{Kd}}{b{nc}}}fEd}{{}Bl}00{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}50124360634215{{}c{}}00;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{bC`}{{j{{b{c}}}}}{}}00<<<<<<<<<<<<{{bC`C`C`}{{j{{b{c}}}}}{}}00======{{{b{K`}}{b{K`}}}{{El{Ad}}}}{{{b{Kd}}{b{Kd}}}{{El{Ad}}}}``???{{bFf}{{j{{b{c}}}}}{}}00``{b{{j{{b{c}}}}}{}}00000``000``444`{{{b{K`}}c}BjFh}{{{b{Kb}}c}BjFh}{{{b{Kd}}c}BjFh}333{bc{}}00{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00777{b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00???{{bFl}{{j{{b{c}}}}}{}}00:::::::::```{{bd}f}{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00============555444=============================={{{b{Kf}}}Kf}{{b{b{nc}}}f{}}{bf}{b{{j{{b{c}}}}}{}}00000{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00222{Blf}00{{{b{nKf}}}f}888{{{b{Hb}}{b{Kh}}}Kj}{{{b{Gl}}{b{Kh}}}{{Bj{KjBh}}}}{{{b{Kf}}{b{Kh}}Bf}{{Fb{Kj}}}}{{{b{Hb}}{b{Hj}}}{{El{Kj}}}}{{{b{Gl}}{b{Hj}}}{{El{Kj}}}}{{{b{Kf}}{b{Hj}}}{{El{Kj}}}}{{bC`}{{j{{b{c}}}}}{}}00{{{b{Hb}}{b{nCb}}}Cd}{{{b{Gl}}{b{nCb}}}Cd}{{{b{Kf}}{b{nCb}}}Cd}{cc{}}00{{HfA`}{{Bj{HbBh}}}}{{HfA`}{{Bj{GlBh}}}}{b{{j{{b{c}}}}}{}}00{{}Bl}00{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}32106450321564{{}c{}}00999{{{b{Hb}}{b{Kh}}{b{{Dd{D`}}}}{El{Dl}}c}{{Bj{KdBh}}}Kl}{{{b{Gl}}{b{Kh}}{b{{Dd{D`}}}}{El{Dl}}c}{{Bj{KdBh}}}Kl}{{{b{Hb}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}}{{Bj{KbBh}}}}{{{b{Gl}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}}{{Bj{KbBh}}}}{{{b{Hb}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}c}{{Bj{KbBh}}}Kl}{{{b{Gl}}{b{Kh}}{b{{Dd{Ab}}}}{El{Dl}}c}{{Bj{KbBh}}}Kl}??????{{{b{Fd}}}{{Fb{Kf}}}}{b{{j{{b{c}}}}}{}}00000{{{b{Hb}}}{{b{Ah}}}}{{Kn{B`{AlAn}}L`}Gl}{{{b{Aj}}{b{Lb}}A`}{{Fb{Kf}}}}333333333333333333333333333333333333{{bC`}{{j{{b{c}}}}}{}}00444444444444{{bC`C`C`}{{j{{b{c}}}}}{}}00555555555{{{b{Hb}}}{{b{{B`{AlAn}}}}}}{{bFf}{{j{{b{c}}}}}{}}00777777777222{{{b{Kf}}D`{b{{Dd{D`}}}}Dl{El{Ld}}c}{{Fb{Kd}}}Kl}{{{b{nKf}}c}{{Fb{f}}}{{Lf{Fd}}}}999{bc{}}{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00==={b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00{{}c{}}00{{bFl}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000000`{{bh}{{j{{b{c}}}}}{}}`{{bl}{{j{{b{c}}}}}{}}222265222222222222`{{}Bb}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}```4{{bC`}{{j{{b{c}}}}}{}}{{{b{Bb}}{b{nCb}}}Cd}{cc{}}`{{{b{Bb}}}{{El{{b{c}}}}}Lh}{{{b{nBb}}}{{El{{b{nc}}}}}Lh}{{{b{nBb}}e}{{b{nc}}}Lh{{Ll{}{{Lj{c}}}}}}<{{}Bl}{{{b{nBb}}c}{{El{{b{nc}}}}}Lh}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{}Bb}111111111111{{bC`}{{j{{b{c}}}}}{}}2222{{bC`C`C`}{{j{{b{c}}}}}{}}333{{bFf}{{j{{b{c}}}}}{}}4`4{{{b{nBb}}}{{El{c}}}Lh}52`5`{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}8{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}};{{bFl}{{j{{b{c}}}}}{}};;;```{{bd}f}0{{{b{nLn}}M`}f}{{bh}{{j{{b{c}}}}}{}}0{{bl}{{j{{b{c}}}}}{}}0????????6655????????????????????{{{b{M`}}}M`}{{{b{Ln}}}Ln}{{b{b{nc}}}f{}}0{bf}0{b{{j{{b{c}}}}}{}}000{{}Ln}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}033{Blf}0{{{b{M`}}{b{M`}}}Bf}{{b{b{c}}}Bf{}}000;;{{bC`}{{j{{b{c}}}}}{}}0{{{b{M`}}{b{nCb}}}Cd}{{{b{Ln}}{b{nCb}}}Cd}{cc{}}0::{{{b{Ln}}{b{M`}}}Bf}{{{b{M`}}{b{nc}}}fEd}{{}Bl}0{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}4123056{{}c{}}0{b{{j{{b{c}}}}}{}}000000000{{{b{Ln}}{b{Mb}}Md{b{Bb}}{b{M`}}}{{Bj{fBh}}}}111111111111111111111111{{bC`}{{j{{b{c}}}}}{}}022222222{{bC`C`C`}{{j{{b{c}}}}}{}}0333333{{bFf}{{j{{b{c}}}}}{}}04444441144{bc{}}0{c{{Bj{e}}}{}{}}0{{}{{Bj{c}}}{}}0{bFj}088{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0;;{{bFl}{{j{{b{c}}}}}{}}0;;;;;;```{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}====43{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}Md}{{Fb{f}}}}>>>>>>>>>>>>{{{b{Mf}}{b{Mb}}Md}{{Fb{f}}}}{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}{b{Hj}}Md}{{Fb{f}}}}{{}Mf}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{b{{j{{b{c}}}}}{}}{Blf}{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}MhBlMd}{{Fb{f}}}}9{{bC`}{{j{{b{c}}}}}{}}{{{b{Mf}}{b{nCb}}}Cd}{cc{}}5{{}Bl}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}>>>>>>>>>>>>>>>>>;>>>>{{bC`C`C`}{{j{{b{c}}}}}{}}???{{{b{nMf}}{b{Af}}{b{Ah}}{b{Mb}}MhMd}{{Fb{f}}}}000000{{bFf}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}0{{{b{Mf}}{b{Mj}}}f}141{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}4{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}:{{bFl}{{j{{b{c}}}}}{}}777`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}999943999999999999{{}Ml}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{Ml}}{b{nCb}}}Cd}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}99999999999999999<9999{{bC`C`C`}{{j{{b{c}}}}}{}}:::{{bFf}{{j{{b{c}}}}}{}};;;1;{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}>{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}7{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}222254222222222222{{}Mn}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}5{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{Mn}}{b{nCb}}}Cd}{cc{}}9{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000000000000000<0000{{bC`C`C`}{{j{{b{c}}}}}{}}111{{bFf}{{j{{b{c}}}}}{}}22212{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}5{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}8{{bFl}{{j{{b{c}}}}}{}}888`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}::::43::::::::::::{{}N`}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}={Blf}4{{bC`}{{j{{b{c}}}}}{}}{cc{}}{{{b{N`}}{b{Jf}}}{{El{{b{{Eb{Jf}}}}}}}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999999999999999<9999{{bC`C`C`}{{j{{b{c}}}}}{}}:::{{bFf}{{j{{b{c}}}}}{}};;;1{{{b{nN`}}{b{Jf}}{b{{Dd{Jf}}}}}f}<{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}?{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}8{{bFl}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}00```````{{bd}f}00`{{bh}{{j{{b{c}}}}}{}}000{{bl}{{j{{b{c}}}}}{}}0003333333333333333666655553333333333333333333333333333333333333333{{{b{L`}}}L`}{{{b{Nb}}}Nb}{{{b{Hd}}}Hd}{{b{b{nc}}}f{}}00{bf}0088888888{{}L`}{{}Hd}{Bl{{b{c}}}{}}000{Bl{{b{nc}}}{}}000<<<<{Blf}000{{{b{L`}}{b{L`}}}Bf}{{{b{Nb}}{b{Nb}}}Bf}{{{b{Ij}}{b{Ij}}}Bf}{{b{b{c}}}Bf{}}00000000000>>>>{{bC`}{{j{{b{c}}}}}{}}000{{{b{L`}}{b{nCb}}}Cd}{{{b{Nb}}{b{nCb}}}Cd}{{{b{Hd}}{b{nCb}}}Cd}{{{b{Ij}}{b{nCb}}}Cd}0{cc{}}00{NdIj}{NfIj}2``{{{b{L`}}NhNj}{{El{Dl}}}}{{{b{L`}}Nh}{{Eb{{F`{DlNj}}}}}}{{{b{L`}}{b{Kh}}{El{Dl}}}{{Bj{DlIj}}}}{b{{j{{b{c}}}}}{}}000{{{b{Nb}}{b{nc}}}fEd}{{}Bl}000{{{b{L`}}{b{Kh}}}{{El{Dl}}}}{{{b{L`}}}{{Fb{{Nl{Dl{Nl{DlDl}}}}}}}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}156042315602431436052{{}c{}}000<<<<<<<<``<<<<<<<<<<<<{{{b{Aj}}{El{Hd}}}{{Bj{L`Ij}}}}================================================{{bC`}{{j{{b{c}}}}}{}}000>>>>>>>>>>>>>>>>{{bC`C`C`}{{j{{b{c}}}}}{}}000????????????{{bFf}{{j{{b{c}}}}}{}}000{b{{j{{b{c}}}}}{}}000000000002222{{{b{Ij}}}{{El{{b{Jh}}}}}}1111{bc{}}00{bJj}{bJl}{c{{Bj{e}}}{}{}}000{{}{{Bj{c}}}{}}000{bFj}0007777{b{{b{c}}}{}}000{{{b{n}}}{{b{nc}}}{}}000>>>>{{bFl}{{j{{b{c}}}}}{}}000::::::::::::``{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}<<<<43<<<<<<<<<<<<{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}>{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{Nn}}{b{nCb}}}Cd}{{{b{Af}}MhMd}{{Bj{O`Ib}}}}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999{{{b{Af}}{b{Ah}}}Nn}::::::::::::>::::{{bC`C`C`}{{j{{b{c}}}}}{}};;;{{bFf}{{j{{b{c}}}}}{}}<{{{b{Af}}MhMhMd}{{Bj{O`Ib}}}}==2={c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}{b{{j{{b{c}}}}}{}}{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}:{{bFl}{{j{{b{c}}}}}{}}333`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}555543555555555555{{}Ob}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}Mh{El{Mh}}Md}{{Fb{Od}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMd}{{Fb{Mh}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMd}{{Fb{Od}}}}1{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMhMd}{{Fb{Od}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}Md}{{Fb{Mh}}}}={Blf}9{{bC`}{{j{{b{c}}}}}{}}{{{b{Ob}}{b{nCb}}}Cd}{cc{}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}Md}{{Fb{Od}}}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMhMd}{{Fb{Mh}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMd}{{Fb{Od}}}}0{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMd}{{Fb{Od}}}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MhMhMhMd}{{Fb{Od}}}}2100==============={{bC`}{{j{{b{c}}}}}{}}>>>>{{bC`C`C`}{{j{{b{c}}}}}{}}???{{bFf}{{j{{b{c}}}}}{}}{b{{j{{b{c}}}}}{}}0020{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}3{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}{{{b{nOb}}{b{Af}}{b{Ah}}{b{Mb}}MdMhMhMh}{{Fb{Od}}}}>{{bFl}{{j{{b{c}}}}}{}}777`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}999954999999999999{{{b{Of}}}Mh}{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}<{Blf}4{{bC`}{{j{{b{c}}}}}{}}{{{b{Of}}{b{nCb}}}Cd}{cc{}}{b{{j{{b{c}}}}}{}}{{}Bl}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{}c{}}99999{{Mh{b{Mb}}}Of}::::::::::::=::::{{bC`C`C`}{{j{{b{c}}}}}{}};;;{{bFf}{{j{{b{c}}}}}{}}<{{{b{Of}}}Oh}=={{{b{Of}}}{{El{Oh}}}}3{{{b{nOf}}{b{Mb}}}f}?{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj}{b{{j{{b{c}}}}}{}}{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}<{{bFl}{{j{{b{c}}}}}{}}333`{{bh}{{j{{b{c}}}}}{}}{{bl}{{j{{b{c}}}}}{}}555543555555555555{Bl{{b{c}}}{}}{Bl{{b{nc}}}{}}7{Blf}3{{bC`}{{j{{b{c}}}}}{}}{{{b{Hf}}{b{nCb}}}Cd}{cc{}}{{{b{Hf}}}{{El{{b{c}}}}}Lh}<{{}Bl}{{{b{nHf}}c}{{El{{b{nc}}}}}Lh}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{}c{}}{b{{j{{b{c}}}}}{}}0000{{{b{Hf}}}{{b{Bb}}}}{{{b{Hf}}}{{b{Ah}}}}{{Ah{B`{AlAn}}Bb}Hf}333333333333{{bC`}{{j{{b{c}}}}}{}}4444{{bC`C`C`}{{j{{b{c}}}}}{}}555{{{b{Hf}}}{{b{{B`{AlAn}}}}}}{{bFf}{{j{{b{c}}}}}{}}77{{{b{nHf}}}{{El{c}}}Lh}838{c{{Bj{e}}}{}{}}{{}{{Bj{c}}}{}}{bFj};{b{{b{c}}}{}}{{{b{n}}}{{b{nc}}}{}}>{{bFl}{{j{{b{c}}}}}{}}>>>`````````````````{{bd}f}000000000```{{bh}{{j{{b{c}}}}}{}}00000000000{{bl}{{j{{b{c}}}}}{}}00000000000{b{{j{{b{c}}}}}{}}00000000000000000000000````000000000000000000000000666666666666555555555555000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{b{n{Ol{Oj}}}}{b{Oj}}{b{{Ol{Oj}}}}}f}{{{b{nKl}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}{{{b{nA@`}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}`````{{{b{nKl}}D`{b{{Dd{D`}}}}}{{Eb{D`}}}}444444444444{{{b{Oj}}}Oj}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{A@h}}}A@h}{{{b{A@j}}}A@j}{{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{AAb}}}AAb}{{b{b{nc}}}f{}}000000000{bf}000000000{{{b{A@b}}{b{A@b}}}Ad}{{{b{A@d}}{b{A@d}}}Ad}{{{b{A@f}}{b{A@f}}}Ad}{{{b{A@h}}{b{A@h}}}Ad}{{{b{A@j}}{b{A@j}}}Ad}{{{b{A@l}}{b{A@l}}}Ad}{{{b{A@n}}{b{A@n}}}Ad}{{b{b{c}}}Ad{}}000000{b{{j{{b{c}}}}}{}}00000000000``000000000000{{}A@b}{{}AA`}{{}AAb}{{{b{nKl}}D`D`{b{{Dd{D`}}}}Bf{b{nDl}}}{{On{{F`{D`{Eb{D`}}}}}}}}{{{b{nA@`}}D`D`{b{{Dd{D`}}}}Bf{b{nDl}}}{{On{{F`{D`{Eb{D`}}}}}}}}{Bl{{b{c}}}{}}00000000000{Bl{{b{nc}}}{}}00000000000{c{{Bj{A@b}}}Bn}{c{{Bj{A@d}}}Bn}{c{{Bj{A@f}}}Bn}{c{{Bj{A@h}}}Bn}{c{{Bj{A@j}}}Bn}{c{{Bj{A@l}}}Bn}{c{{Bj{A@n}}}Bn}{c{{Bj{AA`}}}Bn}{c{{Bj{AAb}}}Bn}{b{{j{{b{c}}}}}{}}00000000000{Blf}00000000000{{{b{nKl}}{b{{Dd{D`}}}}{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{nA@`}}{b{{Dd{D`}}}}{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}``{{{b{A@b}}{b{A@b}}}Bf}{{{b{A@d}}{b{A@d}}}Bf}{{{b{A@f}}{b{A@f}}}Bf}{{{b{A@h}}{b{A@h}}}Bf}{{{b{A@j}}{b{A@j}}}Bf}{{{b{A@l}}{b{A@l}}}Bf}{{{b{A@n}}{b{A@n}}}Bf}{{{b{AA`}}{b{AA`}}}Bf}{{{b{AAb}}{b{AAb}}}Bf}{{b{b{c}}}Bf{}}00000000000000000000000000000000000`{{bl}{{j{{b{c}}}}}{}}00000000000{{bC`}{{j{{b{c}}}}}{}}00000000000{{{b{{Ol{c}}}}{b{nCb}}}CdGf}{{{b{Oj}}{b{nCb}}}Cd}{{{b{A@b}}{b{nCb}}}Cd}{{{b{A@d}}{b{nCb}}}Cd}{{{b{A@f}}{b{nCb}}}Cd}{{{b{A@h}}{b{nCb}}}Cd}{{{b{A@j}}{b{nCb}}}Cd}{{{b{A@l}}{b{nCb}}}Cd}{{{b{A@n}}{b{nCb}}}Cd}{{{b{AA`}}{b{nCb}}}Cd}{{{b{AAb}}{b{nCb}}}Cd}{cc{}}00000000000{{{b{nKl}}Dl{b{nDl}}}{{On{D`}}}}{{{b{nA@`}}Dl{b{nDl}}}{{On{D`}}}}{{{b{nKl}}D`{b{nDl}}}{{On{D`}}}}{{{b{nA@`}}D`{b{nDl}}}{{On{D`}}}}{{{b{nKl}}{b{nDl}}}{{On{A@d}}}}{{{b{nA@`}}{b{nDl}}}{{On{A@d}}}}{{{b{nKl}}{b{nDl}}}{{On{A@f}}}}{{{b{nA@`}}{b{nDl}}}{{On{A@f}}}}{b{{j{{b{c}}}}}{}}00000000000{{{b{A@b}}{b{nc}}}fEd}{{{b{A@d}}{b{nc}}}fEd}{{{b{A@f}}{b{nc}}}fEd}{{{b{A@h}}{b{nc}}}fEd}{{{b{A@j}}{b{nc}}}fEd}{{{b{A@l}}{b{nc}}}fEd}{{{b{A@n}}{b{nc}}}fEd}{{{b{AA`}}{b{nc}}}fEd}{{{b{AAb}}{b{nc}}}fEd}`{{}Bl}00000000000{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}12436502561304016453212650345124306305162440561236320541150634251634203654210{{}c{}}00000000000{b{{j{{b{c}}}}}{}}00000000000``000000000000{{{b{nKl}}{b{{Dd{Dl}}}}{b{nDl}}}{{On{A@b}}}}{{{b{nA@`}}{b{{Dd{Dl}}}}{b{nDl}}}{{On{A@b}}}}{{{b{nKl}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}{{{b{nA@`}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}444444444444`444444444444444444444444````{{E`E`E`E`Bf}AA`}{{E`E`E`E`Bf}AAb}```666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666{{bC`}{{j{{b{c}}}}}{}}00000000000777777777777777777777777777777777777777777777777{{bC`C`C`}{{j{{b{c}}}}}{}}00000000000888888888888888888888888{{{b{A@b}}{b{A@b}}}{{El{Ad}}}}{{{b{A@d}}{b{A@d}}}{{El{Ad}}}}{{{b{A@f}}{b{A@f}}}{{El{Ad}}}}{{{b{A@h}}{b{A@h}}}{{El{Ad}}}}{{{b{A@j}}{b{A@j}}}{{El{Ad}}}}{{{b{A@l}}{b{A@l}}}{{El{Ad}}}}{{{b{A@n}}{b{A@n}}}{{El{Ad}}}}`????????????`{{bFf}{{j{{b{c}}}}}{}}00000000000{b{{j{{b{c}}}}}{}}00000000000000000000000{{{b{nKl}}D`{b{nDl}}}{{On{f}}}}{{{b{nA@`}}D`{b{nDl}}}{{On{f}}}}222222222222``;;;;;;;;;;;;{{{b{nKl}}AA`AA`{b{nDl}}}{{On{AA`}}}}{{{b{nA@`}}AA`AA`{b{nDl}}}{{On{AA`}}}}{{{b{nKl}}A@bBf{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nA@`}}A@bBf{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nKl}}AA`{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nA@`}}AA`{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nKl}}AA`A@b{b{nDl}}}{{On{AA`}}}}{{{b{nA@`}}AA`A@b{b{nDl}}}{{On{AA`}}}}{{{b{nKl}}A@bA@b{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nA@`}}A@bA@b{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{nKl}}AAbAAb{b{nDl}}}{{On{AAb}}}}{{{b{nA@`}}AAbAAb{b{nDl}}}{{On{AAb}}}}{{{b{nKl}}A@bBf{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nA@`}}A@bBf{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nKl}}AAb{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nA@`}}AAb{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{nKl}}AAbA@b{b{nDl}}}{{On{AAb}}}}{{{b{nA@`}}AAbA@b{b{nDl}}}{{On{AAb}}}}{{{b{nKl}}A@bA@b{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nA@`}}A@bA@b{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{nKl}}D`{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{nA@`}}D`{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}`{{{b{A@b}}c}BjFh}{{{b{A@d}}c}BjFh}{{{b{A@f}}c}BjFh}{{{b{A@h}}c}BjFh}{{{b{A@j}}c}BjFh}{{{b{A@l}}c}BjFh}{{{b{A@n}}c}BjFh}{{{b{AA`}}c}BjFh}{{{b{AAb}}c}BjFh}{{{b{nKl}}{b{n{Cl{Dj}}}}{b{{Cl{Dj}}}}{b{nDl}}}{{On{f}}}}{{{b{nA@`}}{b{n{Cl{Dj}}}}{b{{Cl{Dj}}}}{b{nDl}}}{{On{f}}}}```{{{b{nKl}}DjD`{b{nDl}}}{{On{D`}}}}{{{b{nA@`}}DjD`{b{nDl}}}{{On{D`}}}}{{{b{nKl}}DjD`D`{b{nDl}}}{{On{f}}}}{{{b{nA@`}}DjD`D`{b{nDl}}}{{On{f}}}}{b{{j{{b{c}}}}}{}}00000000000`{bc{}}000000000``{c{{Bj{e}}}{}{}}00000000000{{}{{Bj{c}}}{}}00000000000``{bFj}00000000000444444444444`{b{{b{c}}}{}}00000000000{{{b{n}}}{{b{nc}}}{}}00000000000``{{}c{}}00000000000{{bFl}{{j{{b{c}}}}}{}}00000000000888888888888888888888888````888888888888```{{bd}f}00{{bh}{{j{{b{c}}}}}{}}00{{bl}{{j{{b{c}}}}}{}}00{AAdA@b}<<<<<<<<<<<<777666<<<<<<<<<<<<<<<<<<<<<<<<<<<{{{b{n{b{nAAf}}}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}}{{{b{n{b{nAAf}}}}D`{b{{Dd{D`}}}}}{{Eb{D`}}}}>>>{{{b{AAf}}}AAf}{{{b{AAh}}}AAh}{{{b{AAj}}}AAj}{{b{b{nc}}}f{}}00{bf}00{b{{j{{b{c}}}}}{}}00000`{{{b{{Dd{D`}}}}}Jl}{{}AAf}{{}AAj}{{{b{n{b{nAAf}}}}D`D`{b{{Dd{D`}}}}Bf{b{nDl}}}{{On{{F`{D`{Eb{D`}}}}}}}}{Bl{{b{c}}}{}}00{Bl{{b{nc}}}{}}00666{Blf}00{{{b{n{b{nAAf}}}}{b{{Dd{D`}}}}{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{Hj}}}{{Eb{D`}}}}```{{bl}{{j{{b{c}}}}}{}}00{{bC`}{{j{{b{c}}}}}{}}00{{{b{AAf}}{b{nCb}}}Cd}{{{b{AAh}}{b{nCb}}}Cd}{{{b{AAj}}{b{nCb}}}Cd}{cc{}}00{{{b{n{b{nAAf}}}}Dl{b{nDl}}}{{On{D`}}}}{{{b{n{b{nAAf}}}}D`{b{nDl}}}{{On{D`}}}}{{{b{n{b{nAAf}}}}{b{nDl}}}{{On{A@d}}}}{{{b{n{b{nAAf}}}}{b{nDl}}}{{On{A@f}}}}{b{{j{{b{c}}}}}{}}00{{}Bl}00{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}32416052341605{{}c{}}00999999{{{b{n{b{nAAf}}}}{b{{Dd{Dl}}}}{b{nDl}}}{{On{A@b}}}}``{{{b{n{b{nAAf}}}}D`D`{b{{Dd{D`}}}}{b{nDl}}}{{On{{Eb{D`}}}}}};;;`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;{{bC`}{{j{{b{c}}}}}{}}00<<<<<<<<<<<<{{bC`C`C`}{{j{{b{c}}}}}{}}00========={{bFf}{{j{{b{c}}}}}{}}00>>>>>>{{{b{n{b{nAAf}}}}D`{b{nDl}}}{{On{f}}}}???222{{{b{n{b{nAAf}}}}AA`AA`{b{nDl}}}{{On{AA`}}}}{{{b{n{b{nAAf}}}}A@bBf{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{n{b{nAAf}}}}AA`{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{n{b{nAAf}}}}AA`A@b{b{nDl}}}{{On{AA`}}}}{{{b{n{b{nAAf}}}}A@bA@b{b{nDl}}}{{On{{El{AA`}}}}}}{{{b{n{b{nAAf}}}}AAbAAb{b{nDl}}}{{On{AAb}}}}{{{b{n{b{nAAf}}}}A@bBf{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{n{b{nAAf}}}}AAb{b{nDl}}}{{On{{F`{A@bA@b}}}}}}{{{b{n{b{nAAf}}}}AAbA@b{b{nDl}}}{{On{AAb}}}}{{{b{n{b{nAAf}}}}A@bA@b{b{nDl}}}{{On{{El{AAb}}}}}}{{{b{n{b{nAAf}}}}D`{b{{Dd{D`}}}}{b{nDl}}}{{On{f}}}}{{{b{n{b{nAAf}}}}{b{n{Cl{Dj}}}}{b{{Cl{Dj}}}}{b{nDl}}}{{On{f}}}}`{{{b{n{b{nAAf}}}}DjD`{b{nDl}}}{{On{D`}}}}{{{b{n{b{nAAf}}}}DjD`D`{b{nDl}}}{{On{f}}}}{b{{j{{b{c}}}}}{}}00{bc{}}00{c{{Bj{e}}}{}{}}00{{}{{Bj{c}}}{}}00{bFj}00{A@bAAl}555{b{{b{c}}}{}}00{{{b{n}}}{{b{nc}}}{}}00{{}c{}}00{{bFl}{{j{{b{c}}}}}{}}00999999999`````{{bd}f}0`{{bh}{{j{{b{c}}}}}{}}0{{bl}{{j{{b{c}}}}}{}}0`<<<<<<<<6655<<<<<<<<<<<<<<<<<<{{{b{Fd}}}{{AAn{{Gn{Aj}}}}}}=={{{b{Ld}}}Ld}{{{b{Jd}}}Jd}{{b{b{nc}}}f{}}0{bf}0{b{{j{{b{c}}}}}{}}0`{{{b{Ah}}{b{Bb}}A`}Mj}11{c{{`{Gf}}}{{AB`{{b{nCb}}}{{Lj{Cd}}}}}}{{{b{{Dd{C`}}}}}Jl}{{}Ld}{Bl{{b{c}}}{}}0{Bl{{b{nc}}}{}}0{c{{Bj{Ld}}}Bn}77{Blf}0`{{{b{Jd}}{b{Jd}}}Bf}{{b{b{c}}}Bf{}}000{cD`{{Cn{ABb}}}}{{{b{Hj}}}D`}0{{bl}{{j{{b{c}}}}}{}}0{{{b{Aj}}{b{Hj}}}{{El{{b{{ABd{Nh}}}}}}}}{{{b{Aj}}Bl}{{El{{b{{ABd{Nh}}}}}}}}{{{b{Aj}}{b{Hj}}}{{El{{b{Kh}}}}}}{{bC`}{{j{{b{c}}}}}{}}0{{{b{Ld}}{b{nCb}}}Cd}{{{b{Jd}}{b{nCb}}}Cd}0{cc{}}0{{{b{Kh}}Bf}{{ABf{Hj}}}}{DjABh}{b{{j{{b{c}}}}}{}}0{{}Bl}0{{{b{n}}{b{n{Bj{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{El{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{F`{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{En{ce}}}}}{{Bj{Ehg}}}{}{}{}}{{{b{n}}{b{n{Ef{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Ej{c}}}}}{{Bj{Ehe}}}{}{}}{{{b{n}}{b{n{Eb{c}}}}}{{Bj{Ehe}}}{}{}}3012456{{}c{}}09999{{{b{ABh}}Bl}{{Bj{{F`{ABhBl}}Jd}}}}::::::``::::::::::::::::::::::::{{bC`}{{j{{b{c}}}}}{}}0;;;;;;;;{{bC`C`C`}{{j{{b{c}}}}}{}}0<<<<{{{b{ABh}}Bl}Bl}``=={{bFf}{{j{{b{c}}}}}{}}0>>>>{{{b{Mj}}}f}??33{{{b{Af}}{b{nAh}}}{{Bj{fIb}}}}{{{b{Ld}}c}BjFh}{b{{j{{b{c}}}}}{}}0{bc{}}0{bJj}{bJl}{c{{Bj{e}}}{}{}}0{{}{{Bj{c}}}{}}0{bFj}066{b{{b{c}}}{}}0{{{b{n}}}{{b{nc}}}{}}0{{}c{}}0{{bFl}{{j{{b{c}}}}}{}}0::::::{{}f}","D":"L@nKKj","p":[[1,"reference"],[5,"Private",4722],[1,"unit"],[6,"Attribute",4723],[5,"Painted",4724],[6,"Color",4725],[0,"mut"],[6,"OptLevel",0,4726],[6,"Value",0,4727],[6,"Ordering",4728],[5,"Context",4729],[5,"Module",4730],[5,"Program",4731],[6,"CoreType",4732],[6,"CoreLibfunc",4732],[5,"ProgramRegistry",4733],[5,"MetadataStorage",1602],[5,"Attribute",4734],[1,"bool"],[6,"Error",624],[6,"Result",4735],[1,"usize"],[10,"Deserializer",4736],[1,"u8"],[5,"Formatter",4737],[8,"Result",4737],[1,"i128"],[1,"i16"],[1,"i8"],[1,"array"],[10,"Into",4738],[5,"Felt",4739],[1,"i32"],[1,"slice"],[10,"Clone",4740],[1,"u16"],[1,"u32"],[1,"u64"],[1,"i64"],[1,"u128"],[5,"Vec",4741],[10,"Hasher",4742],[5,"Box",4743],[6,"RewriteResult",4744],[5,"VecDeque",4745],[6,"Option",4746],[5,"OrderedHashMap",4747],[1,"tuple"],[8,"Result",624],[5,"Path",4748],[6,"Quirk",4723],[10,"Serializer",4749],[5,"TypeId",4750],[5,"Condition",4751],[6,"ProgramCache",262],[10,"PartialEq",4728],[10,"Eq",4728],[10,"Hash",4742],[10,"Debug",4737],[5,"JitProgramCache",437],[5,"AotProgramCache",352],[5,"AotNativeExecutor",1329,4752],[5,"Arc",4753],[5,"NativeContext",523],[5,"JitNativeExecutor",1329,4754],[5,"MetadataComputationConfig",2232],[5,"NativeModule",2886],[6,"CoreConcreteLibfunc",4732],[1,"str"],[6,"SierraAssertError",624],[6,"CompilerError",624],[5,"LayoutError",4755],[6,"Error",4756],[5,"Error",4757],[6,"Error",4758],[5,"Error",4759],[6,"GasMetadataError",2232],[6,"EditStateError",4760],[5,"NativeAssertError",932],[5,"TryFromIntError",4761],[6,"ProgramRegistryError",4733],[5,"LayoutError",4509],[5,"ConcreteTypeId",4762],[10,"Error",4763],[5,"SmolStr",4764],[5,"String",4765],[10,"ToNativeAssertError",932],[5,"BuiltinStats",1020],[5,"ExecutionResult",1020],[5,"ContractExecutionResult",1020],[5,"AotContractExecutor",1329,4766],[5,"FunctionId",4762],[6,"c_void",4767],[10,"StarknetSyscallHandler",2975],[5,"Library",4768],[5,"GasMetadata",2232],[5,"ContractEntryPoints",4769],[5,"BuiltinCosts",4509],[10,"AsRef",4738],[10,"Any",4750],[17,"Output"],[10,"FnOnce",4770],[5,"AutoBreakpoint",1700],[6,"BreakpointEvent",1700],[5,"Block",4771],[5,"Location",4772],[5,"DebugUtils",1887],[5,"Value",4773],[5,"ExecutionEngine",4774],[5,"DropOverridesMeta",1982],[5,"DupOverridesMeta",2065],[5,"EnumSnapshotVariantsMeta",2148],[5,"GasCost",2232],[6,"ApChangeError",4775],[6,"CostError",4776],[5,"StatementIdx",4731],[6,"CostTokenType",4777],[5,"BTreeMap",4778],[5,"ReallocBindingsMeta",2614],[5,"Operation",4779],[5,"RuntimeBindingsMeta",2699],[5,"OperationRef",4779],[5,"TailRecursionMeta",2799],[5,"BlockRef",4771],[5,"Felt252Abi",2975],[5,"ArrayAbi",2975],[8,"SyscallResult",2975],[5,"DummySyscallHandler",2975],[5,"U256",2975],[5,"ExecutionInfo",2975],[5,"ExecutionInfoV2",2975],[5,"TxV2Info",2975],[5,"ResourceBounds",2975],[5,"BlockInfo",2975],[5,"TxInfo",2975],[5,"Secp256k1Point",2975],[5,"Secp256r1Point",2975],[5,"BigInt",4780],[5,"StubSyscallHandler",4209],[5,"StubEvent",4209],[5,"ContractLogs",4209],[5,"BigUint",4781],[8,"Result",4782],[10,"Fn",4770],[5,"BigInt",4783],[5,"GenFunction",4731],[6,"Cow",4784],[5,"Layout",4755],[15,"Struct",251],[15,"Enum",251],[15,"Felt252Dict",251],[15,"BoundedInt",251],[15,"IntRange",251],[15,"BoundedIntOutOfRange",929],[15,"Range",931],[15,"EnumInit",1885],[15,"NotEnoughGas",2613]],"r":[[14,4726],[28,4727],[76,4785],[164,4726],[167,4726],[263,352],[265,437],[1329,4766],[1330,4752],[1331,4754]],"b":[[113,"impl-From%3Cu8%3E-for-OptLevel"],[114,"impl-From%3Cusize%3E-for-OptLevel"],[116,"impl-From%3Ci128%3E-for-Value"],[118,"impl-From%3Ci16%3E-for-Value"],[119,"impl-From%3Ci8%3E-for-Value"],[120,"impl-From%3C%5BT;+N%5D%3E-for-Value"],[121,"impl-From%3CFelt%3E-for-Value"],[122,"impl-From%3Ci32%3E-for-Value"],[123,"impl-From%3C%26%5BT%5D%3E-for-Value"],[124,"impl-From%3Cu8%3E-for-Value"],[125,"impl-From%3Cu16%3E-for-Value"],[126,"impl-From%3Cu32%3E-for-Value"],[127,"impl-From%3Cu64%3E-for-Value"],[128,"impl-From%3Ci64%3E-for-Value"],[129,"impl-From%3Cu128%3E-for-Value"],[130,"impl-From%3CVec%3CT%3E%3E-for-Value"],[295,"impl-From%3CJitProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[296,"impl-From%3CAotProgramCache%3C\'a,+K%3E%3E-for-ProgramCache%3C\'a,+K%3E"],[739,"impl-Display-for-Error"],[740,"impl-Debug-for-Error"],[741,"impl-Display-for-SierraAssertError"],[742,"impl-Debug-for-SierraAssertError"],[743,"impl-Debug-for-CompilerError"],[744,"impl-Display-for-CompilerError"],[745,"impl-From%3CLayoutError%3E-for-Error"],[746,"impl-From%3CError%3E-for-Error"],[747,"impl-From%3CError%3E-for-Error"],[748,"impl-From%3CError%3E-for-Error"],[749,"impl-From%3CError%3E-for-Error"],[750,"impl-From%3CGasMetadataError%3E-for-Error"],[751,"impl-From%3CEditStateError%3E-for-Error"],[753,"impl-From%3CCompilerError%3E-for-Error"],[754,"impl-From%3CNativeAssertError%3E-for-Error"],[755,"impl-From%3CSierraAssertError%3E-for-Error"],[756,"impl-From%3CTryFromIntError%3E-for-Error"],[757,"impl-From%3CBox%3CProgramRegistryError%3E%3E-for-Error"],[758,"impl-From%3CLayoutError%3E-for-Error"],[960,"impl-Debug-for-NativeAssertError"],[961,"impl-Display-for-NativeAssertError"],[2376,"impl-Display-for-GasMetadataError"],[2377,"impl-Debug-for-GasMetadataError"],[2381,"impl-From%3CApChangeError%3E-for-GasMetadataError"],[2382,"impl-From%3CCostError%3E-for-GasMetadataError"],[4596,"impl-Display-for-LayoutError"],[4597,"impl-Debug-for-LayoutError"]],"c":"OzAAAAEAAC8AFwBDAAEAHgEAAHMBAADIAQAAHgIAAMkCAgC4AwAAOgQCAGkFAgBWBgAAzQYBAHMHAADRBwAAJAgAAHcIAAAICQMASQoAAJ4KAAACCwAAWQsAAJcMCwCuEAIAyhEBAA==","e":"OzAAAAEAAI4GHwEBAAAAAwAKABAADAAeAAEALAADAEIAAABFAAcAUAAAAFMABgBdAAsAagAAAHAAAwB1AAAAdwAMAIYAEACkAAAA0QAAAN4AAADjAAcA7QADAPIAAQD8ABAAEwEBACEBAQAkAQAAJwECACwBBwA3AQAAVgECAFoBAgBhAQAAaAEBAHQBAAB3AQEAegEAAH0BAAB/AQAAgQEHAI8BAACrAQIArwECAL0BAQDJAQAAywEAAM0BAQDQAQAA0wEAANUBAADXAQcA5QEAAAECAgAFAgIAEwIBACECAAAjAgIAJwIFAC8CAAAyAgAANAIGAEECAABdAgIAYQICAGgCAABxAgcAegIQAIwCCQCoAgUA0gIFANsCAgDkAgwA8gIFAP0CFwAkAwAAdwMAAHsDDgCNAwgAogMCAK0DAQC7AwEAvgMAAMEDAQDFAwcA0wMAAO8DBQD2AwIA/QMAAAAEAgAJBAAAFgQFADcEAgA9BAwAUAQKAF4EFAB5BAIAgwQZAOsEAwD1BAEA/QQBAAIFAQAHBQMADgULAB0FCAAzBQAANQUAAEgFBQBsBQIAdQUFAH4FAwCFBQUAjgUCAJQFAACZBRcAtwUBALoFAAC8BQAAygUBAAwGAAAhBgkALgYIAEUGAABLBgEAWgYCAF4GAABhBgAAZAYAAGYGAABpBgAAawYAAG0GBgCaBgIAngYCAKUGBQC3BgMAzwYFANkGBADgBgYA6wYBAPEGEQAPBwAARgcHAFAHBQBeBwIAZwcCAHYHAAB4BwIAfAcAAIAHAACDBwcApgcGALAHAAC0BwIAuAcCAL8HAADGBwEA1AcCANgHAADbBwAA3gcHAAcIAgALCAIAEggAABkIAQAnCAIAKwgAAC4IAAAxCAcAWggCAF4IAgBlCAAAbAgBAHoIAgB+CAAAgggAAIQIBwCsCAAArggCALIIAgC5CAIAvwgEANwIBwAMCQgAHQkJACsJEgBGCQQATgkBAFEJAwBaCSIAiQkBAJcJAAAACgAABQoQABoKCwA2CgAAPgoBAEwKAQBPCgAAUgoAAFYKBwCBCgIAhQoCAJMKAQChCgIAqwoAAK4KAACwCgAAsgoHAMMKAADkCgIA6AoBAOsKAAD3CgEABgsBAAkLAAAMCwAADwsHADwLAgBACwIATgsBAFwLAQBfCwAAYgsAAGYLAABoCwYAdQsCAI0LAACVCwIAmQsCAKALAgCkCwEAqAsHALELDADuCwMACgwXAI8MBwCjDCsA2wwBAOkMJQAbDT0AcQ0KAIgNBwCcDWkAHg4BACwOAwA8DgAAVQ4IAE4PBwBiDwAAhw8BAJUPAQCjDygA2A8yABcQJgBiEAMAchAAAHUQAgB+EAAAixAFAKwQAQCxEAgAwBAKAM4QBwDcEAIA4hADAOkQFwAKEQMAEREAAGARAABnEQ4AeREMAIkRCACeEQIAohEDAKoRAACzEQMAzBEFANQRAADaEQUA4hEHAPQRAgD9EQ8AGhIBAEUSAQBPEgAAVBIBAFgSCQBkEgUAchIAAA=="}],["cairo_native_compile",{"t":"PFPGNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","","augment_args","augment_args_for_update","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","fixed","","fmt","","from","","from_arg_matches","from_arg_matches_mut","green","","group_id","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","main","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","output_library","output_mlir","path","primary","","quirk","","rapid_blink","","red","","replace_ids","resetting","","rgb","","single_file","strike","","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","value_variants","vzip","","whenever","","white","","wrap","","yellow",""],"q":[[0,"cairo_native_compile"],[190,"dyn_clone::sealed"],[191,"yansi::attr_quirk"],[192,"yansi::paint"],[193,"clap_builder::builder::command"],[194,"yansi::color"],[195,"core::fmt"],[196,"clap_builder::parser::matches::arg_matches"],[197,"clap_builder"],[198,"core::result"],[199,"clap_builder::util::id"],[200,"core::option"],[201,"cairo_lang_utils::ordered_hash_map"],[202,"cairo_lang_semantic::substitution"],[203,"alloc::vec"],[204,"alloc::collections::vec_deque"],[205,"alloc::boxed"],[206,"anyhow"],[207,"clap_builder::builder::possible_value"],[208,"core::any"],[209,"yansi::condition"]],"i":"Ab`0`0Al1000101010101010101010101010101010101011100101010101010101010100010010111111100000001010101010`10101010101010101010101010101010101010101000001010101001010010111010101010100011010101010","f":"````{{bd}f}`{{bh}{{j{{b{c}}}}}{}}0{ll}0{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}022222222222222222222{{{b{Ab}}}Ab}{{b{b{A`c}}}f{}}{bf}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{bAf}{{j{{b{c}}}}}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`}}{b{A`{Bh{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{C`{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}4306215{{}c{}}0{b{{j{{b{c}}}}}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{bAf}{{j{{b{c}}}}}{}}022222222{{bAfAfAf}{{j{{b{c}}}}}{}}03333````33{{bCf}{{j{{b{c}}}}}{}}04444`4411`44{bc{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bCj}099{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}{{}{{b{{Cl{Ab}}}}}}??{{bCn}{{j{{b{c}}}}}{}}0??????","D":"A@d","p":[[1,"reference"],[5,"Private",190],[1,"unit"],[6,"Attribute",191],[5,"Painted",192],[5,"Command",193],[6,"Color",194],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",195],[8,"Result",195],[5,"Args",0],[5,"ArgMatches",196],[8,"Error",197],[6,"Result",198],[5,"Id",199],[6,"Option",200],[5,"OrderedHashMap",201],[6,"RewriteResult",202],[5,"Vec",203],[5,"VecDeque",204],[5,"Box",205],[1,"tuple"],[8,"Result",206],[6,"Quirk",191],[5,"PossibleValue",207],[5,"TypeId",208],[1,"slice"],[5,"Condition",209]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADwADQAAAAEAAwACAAkAAQAVAAMALQAEADYAAwA8AAEAQgABAEYAAQBKABAAZQAAAKQABwCuAAgA"}],["cairo_native_dump",{"t":"FGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOHHNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["CmdLine","CompilerOutput","Path","Stdout","__clone_box","","attr","","augment_args","augment_args_for_update","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","","clone_into","","clone_to_uninit","","command","command_for_update","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","fixed","","fmt","","from","","from_arg_matches","from_arg_matches_mut","green","","group_id","init","","input","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","load_program","magenta","","main","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","output","parse_input","parse_output","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","starknet","strike","","to_owned","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","vzip","","whenever","","white","","wrap","","yellow",""],"q":[[0,"cairo_native_dump"],[192,"dyn_clone::sealed"],[193,"yansi::attr_quirk"],[194,"yansi::paint"],[195,"clap_builder::builder::command"],[196,"yansi::color"],[197,"core::fmt"],[198,"clap_builder::parser::matches::arg_matches"],[199,"clap_builder"],[200,"core::result"],[201,"clap_builder::util::id"],[202,"core::option"],[203,"cairo_lang_semantic::substitution"],[204,"alloc::vec"],[205,"alloc::collections::vec_deque"],[206,"cairo_lang_utils::ordered_hash_map"],[207,"alloc::boxed"],[208,"std::path"],[209,"cairo_lang_sierra::program"],[210,"core::error"],[211,"alloc::string"],[212,"core::any"],[213,"yansi::condition"]],"i":"``Ad0Ab1010001010101010101010101010101010101010101010001010101010101010101000100100000000111111101010101`01`0101010101010101010101010101010101010101010``01010101010100101010101010101000101010101","f":"````{{bd}f}0{{bh}{{j{{b{c}}}}}{}}0{ll}0{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}022222222222222222222{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{b{b{A`c}}}f{}}0{bf}0{{}l}07777{Af{{b{c}}}{}}0{Af{{b{A`c}}}{}}099{Aff}0;;{{bAh}{{j{{b{c}}}}}{}}0{{{b{Ab}}{b{A`Aj}}}Al}{{{b{Ad}}{b{A`Aj}}}Al}{cc{}}0{{{b{An}}}{{Bb{AbB`}}}}{{{b{A`An}}}{{Bb{AbB`}}}}{b{{j{{b{c}}}}}{}}0{{}{{Bf{Bd}}}}{{}Af}0`{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`}}{b{A`{Bj{c}}}}}{{Bb{Bhe}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bhe}}}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bhe}}}{}{}}{{{b{A`}}{b{A`{Bn{ce}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bhg}}}{}{}{}}{{{b{A`}}{b{A`{Cb{c}}}}}{{Bb{Bhe}}}{}{}}4635210{{}c{}}0::::::{{{b{Cd}}Cf}{{Bb{Ch{Cb{Cj}}}}}};;{{}{{Bb{f{Cb{Cj}}}}}}<<<<<<<<<<<<<<<<<<<<<<<<<<{{bAh}{{j{{b{c}}}}}{}}0========{{bAhAhAh}{{j{{b{c}}}}}{}}0>>>>`{{{b{Cl}}}{{Bb{CnD`}}}}{{{b{Cl}}}{{Bb{AdD`}}}}{b{{j{{b{c}}}}}{}}0{{bDb}{{j{{b{c}}}}}{}}011111144`11{bc{}}0{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bDd}055{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{A`Ab}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Ab}}{b{A`An}}}{{Bb{fB`}}}}{{}c{}}0{{bDf}{{j{{b{c}}}}}{}}0;;;;;;","D":"Of","p":[[1,"reference"],[5,"Private",192],[1,"unit"],[6,"Attribute",193],[5,"Painted",194],[5,"Command",195],[6,"Color",196],[0,"mut"],[5,"CmdLine",0],[6,"CompilerOutput",0],[1,"usize"],[1,"u8"],[5,"Formatter",197],[8,"Result",197],[5,"ArgMatches",198],[8,"Error",199],[6,"Result",200],[5,"Id",201],[6,"Option",202],[6,"RewriteResult",203],[5,"Vec",204],[5,"VecDeque",205],[1,"tuple"],[5,"OrderedHashMap",206],[5,"Box",207],[5,"Path",208],[1,"bool"],[5,"Program",209],[10,"Error",210],[1,"str"],[5,"PathBuf",208],[5,"String",211],[6,"Quirk",193],[5,"TypeId",212],[5,"Condition",213]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAAEUADgAAAAYACQABABUAAwAtAAcAOQADAD8AAQBFAAEASQABAE0AEQBnAAAAagAAAJUAAgCnAAcAsQAHAA=="}],["cairo_native_run",{"t":"PFPGNONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNCNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Aot","Args","Jit","RunMode","__clone_box","allow_warnings","attr","","augment_args","augment_args_for_update","available_gas","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","command","command_for_update","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","fixed","","fmt","","from","","from_arg_matches","from_arg_matches_mut","green","","group_id","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","main","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","path","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","run_mode","single_file","strike","","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"cairo_native_run"],[190,"cairo_native_run::utils"],[369,"cairo_native_run::utils::test"],[624,"dyn_clone::sealed"],[625,"yansi::attr_quirk"],[626,"yansi::paint"],[627,"clap_builder::builder::command"],[628,"yansi::color"],[629,"core::fmt"],[630,"clap_builder::parser::matches::arg_matches"],[631,"clap_builder"],[632,"core::result"],[633,"clap_builder::util::id"],[634,"core::option"],[635,"alloc::vec"],[636,"cairo_lang_semantic::substitution"],[637,"alloc::collections::vec_deque"],[638,"alloc::boxed"],[639,"cairo_lang_utils::ordered_hash_map"],[640,"anyhow"],[641,"clap_builder::builder::possible_value"],[642,"core::any"],[643,"yansi::condition"],[644,"cairo_lang_sierra::program"],[645,"starknet_types_core::felt"],[646,"alloc::vec::into_iter"],[647,"alloc::string"],[648,"cairo_native::values"],[649,"cairo_native::execution_result"],[650,"cairo_lang_runner"],[651,"cairo_lang_test_plugin"],[652,"scarb_metadata"],[653,"cairo_lang_test_plugin::test_config"],[654,"cairo_lang_sierra::ids"],[655,"cairo_lang_sierra::extensions::modules::gas"]],"i":"Ab`0`0Al10000101010101010101010101010101010101011100101010101010101010100010010111111100000001010101010`1010101010101010101010101010101010101010100010101010101000101110101010101000`11010101010D`0``0Ff1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101Fh0```EdFj2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"````{{bd}f}`{{bh}{{j{{b{c}}}}}{}}0{ll}0`{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}022222222222222222222{{{b{Ab}}}Ab}{{b{b{A`c}}}f{}}{bf}{{}l}06666{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}088{Adf}0::{{bAf}{{j{{b{c}}}}}{}}0{{{b{Ab}}{b{A`Ah}}}Aj}{{{b{Al}}{b{A`Ah}}}Aj}{cc{}}0{{{b{An}}}{{Bb{AlB`}}}}{{{b{A`An}}}{{Bb{AlB`}}}}??{{}{{Bf{Bd}}}}{{}Ad}0{{{b{A`}}{b{A`{Bh{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}3460125{{}c{}}0{b{{j{{b{c}}}}}{}}0000000{{}{{Cd{f}}}}11111111111111111111111111{{bAf}{{j{{b{c}}}}}{}}022222222{{bAfAfAf}{{j{{b{c}}}}}{}}03333``33{{bCf}{{j{{b{c}}}}}{}}044444411``44{bc{}}{{{b{Ab}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bCj}099{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{A`Al}}{b{An}}}{{Bb{fB`}}}}{{{b{A`Al}}{b{A`An}}}{{Bb{fB`}}}}`{{}{{b{{Cl{Ab}}}}}}??{{bCn}{{j{{b{c}}}}}{}}0??????````{{bd}f}{{bh}{{j{{b{c}}}}}{}}0{{bn}{{j{{b{c}}}}}{}}0{b{{j{{b{c}}}}}{}}0000000998800000000000000000000{{{b{D`}}}D`}{{b{b{A`c}}}f{}}{bf}3333{Ad{{b{c}}}{}}0{Ad{{b{A`c}}}{}}055{Adf}077{{{b{Db}}{b{Dd}}}{{Cd{{b{Df}}}}}}{{bAf}{{j{{b{c}}}}}{}}0{{{b{D`}}{b{A`Ah}}}Aj}{{{Dj{Dh}}}Dl}{cc{}}0;;{{}Ad}0{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bh{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}5210346{{}c{}}0{b{{j{{b{c}}}}}{}}000{{{b{Dn}}}{{Bh{Dh}}}}111111111111111111111111111111>>11111111{{bAfAfAf}{{j{{b{c}}}}}{}}02222`22{{bCf}{{j{{b{c}}}}}{}}0333333{{{b{E`}}}{{Cd{Eb}}}}22`44`{bc{}}{{{b{D`}}}{{Bf{Ch}}}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{bCj}099{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{}{{b{{Cl{D`}}}}}}=={{bCn}{{j{{b{c}}}}}{}}0======`````{{bh}{{j{{b{c}}}}}{}}00{{bn}{{j{{b{c}}}}}{}}00????????????555444????????????????????????????????????{Ad{{b{c}}}{}}00{Ad{{b{A`c}}}{}}00{b{{j{{b{c}}}}}{}}00{{{b{Ed}}Ad}f}{Adf}00``555{{EfEhEhDl}{{Cb{EfAd}}}}{{{b{Ej}}}{{Bh{{b{El}}}}}}{{bAf}{{j{{b{c}}}}}{}}00{cc{}}00`666`{{}Ad}00{{{b{A`}}{b{A`{Bh{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bl{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bn{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{C`{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Cb{ce}}}}}{{Bb{Bjg}}}{}{}{}}{{{b{A`}}{b{A`{Bf{c}}}}}{{Bb{Bje}}}{}{}}{{{b{A`}}{b{A`{Bb{ce}}}}}{{Bb{Bjg}}}{}{}{}}36145024532106{{}c{}}00???????????????????????????????????????????????????:::????????????{{bAfAfAf}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000`000{{bCf}{{j{{b{c}}}}}{}}00111111111222{{{Bh{{Cb{DlEn}}}}Db{C`{F`{C`{FbFd}}}}Ff}{{Cd{Ed}}}}`222{c{{Bb{e}}}{}{}}00{{}{{Bb{c}}}{}}00{bCj}00555{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00999{{bCn}{{j{{b{c}}}}}{}}00888888888","D":"CGn","p":[[1,"reference"],[5,"Private",624],[1,"unit"],[6,"Attribute",625],[5,"Painted",626],[5,"Command",627],[6,"Color",628],[0,"mut"],[6,"RunMode",0],[1,"usize"],[1,"u8"],[5,"Formatter",629],[8,"Result",629],[5,"Args",0],[5,"ArgMatches",630],[8,"Error",631],[6,"Result",632],[5,"Id",633],[6,"Option",634],[5,"Vec",635],[6,"RewriteResult",636],[5,"VecDeque",637],[5,"Box",638],[5,"OrderedHashMap",639],[1,"tuple"],[8,"Result",640],[6,"Quirk",625],[5,"PossibleValue",641],[5,"TypeId",642],[1,"slice"],[5,"Condition",643],[6,"RunMode",190],[5,"Program",644],[1,"str"],[8,"Function",644],[5,"Felt",645],[5,"IntoIter",646],[5,"String",647],[6,"Value",648],[5,"ExecutionResult",649],[6,"RunResultValue",650],[5,"TestsSummary",369],[5,"TestCompilation",651],[1,"bool"],[5,"PackageMetadata",652],[5,"TargetMetadata",652],[5,"TestConfig",653],[5,"FunctionId",654],[6,"CostTokenType",655],[1,"i32"],[5,"RunArgs",190],[6,"TestStatus",369],[5,"TestResult",369]],"r":[],"b":[],"c":"OzAAAAEAAAYAAwAsAAEA5gABAKoBAgA=","e":"OzAAAAEAALEAIAAAAAEAAwACAAkAAQAWAAMALgAEADcAAwA9AAEAQwABAEcAAQBLABAAZgAAAKMABwCtAAkAvwAEANAAAwDoAAIA7wADAPUAAQD8AAAAAgEPAEcBAABVAQAAWAEIAGMBBgByAQEAiQEFALMBBQC9AQQA0QEYADgCAABQAggAXAIIAA=="}],["cairo_native_runtime",{"t":"SSFFFFHHNNNNNNNNHHHHHHHHHHHHHHHHONNNHONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["BYTES_IN_WORD","BYTE_ARRAY_MAGIC","DICT_GAS_REFUND_PER_ACCESS","FeltDict","FormattedItem","HALF_PRIME","as_cairo_short_string","as_cairo_short_string_ex","borrow","","","","borrow_mut","","","","cairo_native__dict_drop","cairo_native__dict_dup","cairo_native__dict_gas_refund","cairo_native__dict_get","cairo_native__dict_new","cairo_native__get_costs_builtin","cairo_native__libfunc__debug__print","cairo_native__libfunc__ec__ec_point_from_x_nz","cairo_native__libfunc__ec__ec_point_try_new_nz","cairo_native__libfunc__ec__ec_state_add","cairo_native__libfunc__ec__ec_state_add_mul","cairo_native__libfunc__ec__ec_state_init","cairo_native__libfunc__ec__ec_state_try_finalize_nz","cairo_native__libfunc__hades_permutation","cairo_native__libfunc__pedersen","cairo_native__set_costs_builtin","count","deref","","fmt","format_next_item","free_fn","from","","","","get","inner","into","","","","quote_if_string","try_from","","","","try_into","","","","type_id","","","","upcast","","","","upcast_mut","","","","vzip","","",""],"q":[[0,"cairo_native_runtime"],[73,"starknet_types_core::felt"],[74,"alloc::string"],[75,"core::option"],[76,"core::ffi"],[77,"core::fmt"],[78,"core::iter::traits::iterator"],[79,"core::clone"],[80,"core::result"],[81,"core::any"]],"i":"````````BlBdBfn3210````````````````0210`032103032103321032103210321032103210","f":"``````{{{d{b}}}{{h{f}}}}{{{d{b}}j}{{h{f}}}}{d{{d{c}}}{}}000{{{d{l}}}{{d{lc}}}{}}000{{n{h{{Af{A`}{{Ab{Ad}}}}}}}Ad}{{n{Af{A`}{{Ab{A`}}}}}n}{nAh}{{{d{ln}}{d{{Al{Aj}}}}}A`}{{{Af{A`}{{Ab{Ad}}}}}n}{{}Ah}{{AnAlB`}An}{{{d{l{Al{{Al{Aj}}}}}}}Bb}0{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{Aj}}}}{d{{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}}Ad}{{{d{l{Al{{Al{Aj}}}}}}{d{{Al{{Al{Aj}}}}}}}Bb}{{{d{l{Al{Aj}}}}{d{l{Al{Aj}}}}{d{l{Al{Aj}}}}}Ad}{{{d{l{Al{Aj}}}}{d{{Al{Aj}}}}{d{{Al{Aj}}}}}Ad}{AhAh}`{{{d{Bd}}}{{d{b}}}}{{{d{Bf}}}{{d{Ah}}}}{{{d{n}}{d{lBh}}}Bj}{{{d{lc}}}{{h{Bl}}}{{C`{}{{Bn{b}}}}Cb}}`{cc{}}000{Blf}`{{}c{}}0001{c{{Cd{e}}}{}{}}000{{}{{Cd{c}}}{}}000{dCf}000{d{{d{c}}}{}}000{{{d{l}}}{{d{lc}}}{}}0005555","D":"Cn","p":[[5,"Felt",73],[1,"reference"],[5,"String",74],[6,"Option",75],[1,"usize"],[0,"mut"],[5,"FeltDict",0],[6,"c_void",76],[17,"Output"],[1,"unit"],[1,"fn"],[1,"u64"],[1,"u8"],[1,"array"],[1,"i32"],[1,"u32"],[1,"bool"],[5,"HALF_PRIME",0],[5,"DICT_GAS_REFUND_PER_ACCESS",0],[5,"Formatter",77],[8,"Result",77],[5,"FormattedItem",0],[17,"Item"],[10,"Iterator",78],[10,"Clone",79],[6,"Result",80],[5,"TypeId",81]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACoABwAAAAMABgAAAAkABwAhAAMAJgAAACwAAAAyABcA"}],["cairo_native_stress",{"t":"SJFFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNNNNNHHNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOHNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AOT_CACHE_DIR","GLOBAL_ALLOC","NaiveAotCache","StressTestCommand","UNIQUE_CONTRACT_VALUE","attr","","augment_args","augment_args_for_update","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","cache","clear","","command","command_for_update","compile_and_insert","conceal","","context","cyan","","deref","","deref_mut","","dim","","directory_get_size","directory_is_empty","drop","","fg","","fixed","","fmt","from","","from_arg_matches","from_arg_matches_mut","generate_starknet_contract","get","green","","group_id","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","linger","","magenta","","main","mask","","modify_starknet_contract","new","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","output","primary","","quirk","","rapid_blink","","red","","resetting","","rgb","","rounds","set_global_subscriber","strike","","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","update_from_arg_matches","update_from_arg_matches_mut","vzip","","whenever","","white","","wrap","","yellow",""],"q":[[0,"cairo_native_stress"],[188,"yansi::attr_quirk"],[189,"yansi::paint"],[190,"clap_builder::builder::command"],[191,"yansi::color"],[192,"cairo_lang_sierra::program"],[193,"cairo_native::ffi"],[194,"cairo_native::executor::aot"],[195,"alloc::sync"],[196,"core::cmp"],[197,"core::hash"],[198,"core::fmt"],[199,"std::io::error"],[200,"std::path"],[201,"core::convert"],[202,"clap_builder::parser::matches::arg_matches"],[203,"clap_builder"],[204,"core::result"],[205,"cairo_lang_sierra::ids"],[206,"core::option"],[207,"clap_builder::util::id"],[208,"alloc::boxed"],[209,"cairo_lang_semantic::substitution"],[210,"alloc::vec"],[211,"alloc::collections::vec_deque"],[212,"cairo_lang_utils::ordered_hash_map"],[213,"cairo_native::context"],[214,"core::any"],[215,"yansi::condition"]],"i":"`````nC`001010101010101010101010101010101011000110110101010``10101001000`110010111111100000001010101010`10`1101010101010101010101010101010101010101001010101010100`10101010101010001010101010","f":"`````{{bd}{{f{{b{c}}}}}{}}0{hh}0{{bj}{{f{{b{c}}}}}{}}0{b{{f{{b{c}}}}}{}}0000000{b{{b{c}}}{}}0{{{b{l}}}{{b{lc}}}{}}0222222222222222222`22{{}h}0{{{b{l{n{c}}}}c{b{A`}}Ab}{{Af{Ad}}}{AhAjAlAn}}44`44{B`{{b{c}}}{}}0{B`{{b{lc}}}{}}066{c{{Bd{Bb}}}{{Bh{Bf}}}}{c{{Bd{Bj}}}{{Bh{Bf}}}}{B`Bl}0::{{bBn}{{f{{b{c}}}}}{}}0{{{b{C`}}{b{lCb}}}Cd}{cc{}}0{{{b{Cf}}}{{Cj{C`Ch}}}}{{{b{lCf}}}{{Cj{C`Ch}}}}{Cl{{D`{CnA`}}}}{{{b{{n{c}}}}{b{c}}}{{Db{{Af{Ad}}}}}{AhAjAlAn}}{b{{f{{b{c}}}}}{}}0{{}{{Db{Dd}}}}{{}B`}0{{{b{l}}{b{l{Df{c}}}}}{{Cj{Dhe}}}{}{}}{{{b{l}}{b{l{Cj{ce}}}}}{{Cj{Dhg}}}{}{}{}}{{{b{l}}{b{l{D`{ce}}}}}{{Cj{Dhg}}}{}{}{}}{{{b{l}}{b{l{Dj{c}}}}}{{Cj{Dhe}}}{}{}}{{{b{l}}{b{l{Dl{c}}}}}{{Cj{Dhe}}}{}{}}{{{b{l}}{b{l{Dn{ce}}}}}{{Cj{Dhg}}}{}{}{}}{{{b{l}}{b{l{Db{c}}}}}{{Cj{Dhe}}}{}{}}1034265{{}c{}}0::::::::{{}Bl};;{{A`ClCl}A`}{{{b{E`}}}{{n{c}}}{AhAjAlAn}}========================{{bBn}{{f{{b{c}}}}}{}}0>>>>>>>>{{bBnBnBn}{{f{{b{c}}}}}{}}0????`??{{bEb}{{f{{b{c}}}}}{}}0{b{{f{{b{c}}}}}{}}0000022`{{{b{C`}}}Bl}11{c{{Cj{e}}}{}{}}0{{}{{Cj{c}}}{}}0{bEd}044{b{{b{c}}}{}}0{{{b{l}}}{{b{lc}}}{}}0{{{b{lC`}}{b{Cf}}}{{Cj{BlCh}}}}{{{b{lC`}}{b{lCf}}}{{Cj{BlCh}}}}??{{bEf}{{f{{b{c}}}}}{}}0999999","D":"A@j","p":[[1,"reference"],[6,"Attribute",188],[5,"Painted",189],[5,"Command",190],[6,"Color",191],[0,"mut"],[5,"NaiveAotCache",0],[5,"Program",192],[6,"OptLevel",193],[5,"AotNativeExecutor",194],[5,"Arc",195],[10,"PartialEq",196],[10,"Eq",196],[10,"Hash",197],[10,"Display",198],[1,"usize"],[1,"u64"],[8,"Result",199],[5,"Path",200],[10,"AsRef",201],[1,"bool"],[1,"unit"],[1,"u8"],[5,"StressTestCommand",0],[5,"Formatter",198],[8,"Result",198],[5,"ArgMatches",202],[8,"Error",203],[6,"Result",204],[1,"u32"],[5,"FunctionId",205],[1,"tuple"],[6,"Option",206],[5,"Id",207],[5,"Box",208],[6,"RewriteResult",209],[5,"Vec",210],[5,"VecDeque",211],[5,"OrderedHashMap",212],[5,"NativeContext",213],[6,"Quirk",188],[5,"TypeId",214],[5,"Condition",215]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAEAEAAAACsALAA=","e":"OzAAAAEAADcAEQACAAAACAABABQAAwAqAAAALQABADIAAAA1AAMAPAACAEMAAABGAAEASQAAAEwAEABnAAAAawAAAKIAAAClAAUArQAHAA=="}],["cairo_native_test",{"t":"FONNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNOONNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNOONNNNNNOOONNNNNNNNNCNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Args","allow_warnings","attr","augment_args","augment_args_for_update","bg","black","blink","blue","bold","borrow","borrow_mut","bright","bright_black","bright_blue","bright_cyan","bright_green","bright_magenta","bright_red","bright_white","bright_yellow","clear","command","command_for_update","conceal","cyan","deref","deref_mut","dim","drop","fg","filter","fixed","fmt","from","from_arg_matches","from_arg_matches_mut","green","group_id","ignored","include_ignored","init","internal_rewrite","","","","","","","into","invert","italic","linger","magenta","main","mask","on_black","on_blue","on_bright","on_bright_black","on_bright_blue","on_bright_cyan","on_bright_green","on_bright_magenta","on_bright_red","on_bright_white","on_bright_yellow","on_cyan","on_fixed","on_green","on_magenta","on_primary","on_red","on_rgb","on_white","on_yellow","opt_level","path","primary","quirk","rapid_blink","red","resetting","rgb","run_mode","single_file","starknet","strike","try_from","try_into","type_id","underline","upcast","upcast_mut","update_from_arg_matches","update_from_arg_matches_mut","utils","vzip","whenever","white","wrap","yellow","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"cairo_native_test"],[102,"cairo_native_test::utils"],[281,"cairo_native_test::utils::test"],[536,"yansi::attr_quirk"],[537,"yansi::paint"],[538,"clap_builder::builder::command"],[539,"yansi::color"],[540,"core::fmt"],[541,"clap_builder::parser::matches::arg_matches"],[542,"clap_builder"],[543,"core::result"],[544,"clap_builder::util::id"],[545,"core::option"],[546,"alloc::boxed"],[547,"cairo_lang_semantic::substitution"],[548,"cairo_lang_utils::ordered_hash_map"],[549,"alloc::collections::vec_deque"],[550,"alloc::vec"],[551,"anyhow"],[552,"core::any"],[553,"yansi::condition"],[554,"dyn_clone::sealed"],[555,"cairo_lang_sierra::program"],[556,"starknet_types_core::felt"],[557,"alloc::vec::into_iter"],[558,"alloc::string"],[559,"cairo_native::values"],[560,"cairo_native::execution_result"],[561,"cairo_lang_runner"],[562,"clap_builder::builder::possible_value"],[563,"cairo_lang_test_plugin"],[564,"scarb_metadata"],[565,"cairo_lang_test_plugin::test_config"],[566,"cairo_lang_sierra::ids"],[567,"cairo_lang_sierra::extensions::modules::gas"]],"i":"`Ad0000000000000000000000000000000000000000000000000000`00000000000000000000000000000000000000000`00000Cj0``0Fd1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101Ff0```EbFh2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"``{{bd}{{f{{b{c}}}}}{}}{hh}0{{bj}{{f{{b{c}}}}}{}}{b{{f{{b{c}}}}}{}}000{b{{b{c}}}{}}{{{b{l}}}{{b{lc}}}{}}2222222222{{}h}033{n{{b{c}}}{}}{n{{b{lc}}}{}}5{nA`}7`{{bAb}{{f{{b{c}}}}}{}}{{{b{Ad}}{b{lAf}}}Ah}{cc{}}{{{b{Aj}}}{{An{AdAl}}}}{{{b{lAj}}}{{An{AdAl}}}};{{}{{Bb{B`}}}}``{{}n}{{{b{l}}{b{l{Bd{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{An{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bb{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bh{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bj{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bl{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bn{c}}}}}{{An{Bfe}}}{}{}}{{}c{}}{b{{f{{b{c}}}}}{}}000{{}{{C`{A`}}}}1111111111111{{bAb}{{f{{b{c}}}}}{}}2222{{bAbAbAb}{{f{{b{c}}}}}{}}33``3{{bCb}{{f{{b{c}}}}}{}}4441```4{c{{An{e}}}{}{}}{{}{{An{c}}}{}}{bCd}7{b{{b{c}}}{}}{{{b{l}}}{{b{lc}}}{}}{{{b{lAd}}{b{Aj}}}{{An{A`Al}}}}{{{b{lAd}}{b{lAj}}}{{An{A`Al}}}}`<{{bCf}{{f{{b{c}}}}}{}}<<<````{{bCh}A`}{{bd}{{f{{b{c}}}}}{}}0{{bj}{{f{{b{c}}}}}{}}0????????7766????????????????????{{{b{Cj}}}Cj}{{b{b{lc}}}A`{}}{bA`}{b{{f{{b{c}}}}}{}}000{n{{b{c}}}{}}0{n{{b{lc}}}{}}022{nA`}077{{{b{Cl}}{b{Cn}}}{{C`{{b{D`}}}}}}{{bAb}{{f{{b{c}}}}}{}}0{{{b{Cj}}{b{lAf}}}Ah}{{{Dd{Db}}}Df}{cc{}}088{{}n}0{{{b{l}}{b{l{An{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bn{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bb{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bh{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bj{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bd{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bl{c}}}}}{{An{Bfe}}}{}{}}2631054{{}c{}}0{b{{f{{b{c}}}}}{}}000{{{b{Dh}}}{{Bn{Db}}}}111111111111111111111111111111>>11111111{{bAbAbAb}{{f{{b{c}}}}}{}}02222`22{{bCb}{{f{{b{c}}}}}{}}0333333{{{b{Dj}}}{{C`{Dl}}}}22`44`{bc{}}{{{b{Cj}}}{{Bb{Dn}}}}{c{{An{e}}}{}{}}0{{}{{An{c}}}{}}0{bCd}099{b{{b{c}}}{}}0{{{b{l}}}{{b{lc}}}{}}0{{}{{b{{E`{Cj}}}}}}=={{bCf}{{f{{b{c}}}}}{}}0======`````{{bd}{{f{{b{c}}}}}{}}00{{bj}{{f{{b{c}}}}}{}}00????????????555444????????????????????????????????????{n{{b{c}}}{}}00{n{{b{lc}}}{}}00{b{{f{{b{c}}}}}{}}00{{{b{Eb}}n}A`}{nA`}00``555{{EdEfEfDf}{{Bh{Edn}}}}{{{b{Eh}}}{{Bn{{b{Ej}}}}}}{{bAb}{{f{{b{c}}}}}{}}00{cc{}}00`666`{{}n}00{{{b{l}}{b{l{Bl{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{An{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bb{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bh{ce}}}}}{{An{Bfg}}}{}{}{}}{{{b{l}}{b{l{Bd{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bn{c}}}}}{{An{Bfe}}}{}{}}{{{b{l}}{b{l{Bj{ce}}}}}{{An{Bfg}}}{}{}{}}41620356203514{{}c{}}00???????????????????????????????????????????????????:::????????????{{bAbAbAb}{{f{{b{c}}}}}{}}00{b{{f{{b{c}}}}}{}}00000`000{{bCb}{{f{{b{c}}}}}{}}00111111111222{{{Bn{{Bh{DfEl}}}}Cl{Bj{En{Bj{F`Fb}}}}Fd}{{C`{Eb}}}}`222{c{{An{e}}}{}{}}00{{}{{An{c}}}{}}00{bCd}00555{b{{b{c}}}{}}00{{{b{l}}}{{b{lc}}}{}}00999{{bCf}{{f{{b{c}}}}}{}}00888888888","D":"C@j","p":[[1,"reference"],[6,"Attribute",536],[5,"Painted",537],[5,"Command",538],[6,"Color",539],[0,"mut"],[1,"usize"],[1,"unit"],[1,"u8"],[5,"Args",0],[5,"Formatter",540],[8,"Result",540],[5,"ArgMatches",541],[8,"Error",542],[6,"Result",543],[5,"Id",544],[6,"Option",545],[5,"Box",546],[6,"RewriteResult",547],[1,"tuple"],[5,"OrderedHashMap",548],[5,"VecDeque",549],[5,"Vec",550],[8,"Result",551],[6,"Quirk",536],[5,"TypeId",552],[5,"Condition",553],[5,"Private",554],[6,"RunMode",102],[5,"Program",555],[1,"str"],[8,"Function",555],[5,"Felt",556],[5,"IntoIter",557],[5,"String",558],[6,"Value",559],[5,"ExecutionResult",560],[6,"RunResultValue",561],[5,"PossibleValue",562],[1,"slice"],[5,"TestsSummary",281],[5,"TestCompilation",563],[1,"bool"],[5,"PackageMetadata",564],[5,"TargetMetadata",564],[5,"TestConfig",565],[5,"FunctionId",566],[6,"CostTokenType",567],[1,"i32"],[5,"RunArgs",102],[6,"TestStatus",281],[5,"TestResult",281]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAUAEAAAABYAjgCPAFIBUwFUAQ==","e":"OzAAAAEAAJMAIAAAAAAABAABAAsAAQAXAAEAGwABAB4AAAAiAAAAJAABACcAAAAqAAcANwAAAFkAAgBdAAUAZwAEAHgAAwCQAAIAlwADAJ0AAQCkAAAAqgAPAO8AAAD9AAAAAAEIAAsBBgAaAQEAMQEFAFsBBQBlAQQAeQEYAOABAAD4AQgABAIIAA=="}],["scarb_native_dump",{"t":"HCPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["main","utils","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"scarb_native_dump"],[2,"scarb_native_dump::utils"],[181,"scarb_native_dump::utils::test"],[436,"anyhow"],[437,"dyn_clone::sealed"],[438,"yansi::attr_quirk"],[439,"yansi::paint"],[440,"yansi::color"],[441,"cairo_lang_sierra::program"],[442,"core::fmt"],[443,"starknet_types_core::felt"],[444,"alloc::vec::into_iter"],[445,"alloc::string"],[446,"alloc::vec"],[447,"cairo_lang_semantic::substitution"],[448,"core::result"],[449,"core::option"],[450,"cairo_lang_utils::ordered_hash_map"],[451,"alloc::boxed"],[452,"alloc::collections::vec_deque"],[453,"cairo_native::values"],[454,"cairo_native::execution_result"],[455,"cairo_lang_runner"],[456,"clap_builder::builder::possible_value"],[457,"core::any"],[458,"yansi::condition"],[459,"cairo_lang_test_plugin"],[460,"scarb_metadata"],[461,"cairo_lang_test_plugin::test_config"],[462,"cairo_lang_sierra::ids"],[463,"cairo_lang_sierra::extensions::modules::gas"]],"i":"``Ab0``0Ej1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101El0```DhEn2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"{{}{{d{b}}}}`````{{fh}b}{{fj}{{l{{f{c}}}}}{}}0{{fn}{{l{{f{c}}}}}{}}0{f{{l{{f{c}}}}}{}}0000000{f{{f{c}}}{}}0{{{f{A`}}}{{f{A`c}}}{}}022222222222222222222{{{f{Ab}}}Ab}{{f{f{A`c}}}b{}}{fb}5555{Ad{{f{c}}}{}}0{Ad{{f{A`c}}}{}}077{Adb}099{{{f{Af}}{f{Ah}}}{{d{{f{Aj}}}}}}{{fAl}{{l{{f{c}}}}}{}}0{{{f{Ab}}{f{A`An}}}B`}{{{Bd{Bb}}}Bf}{cc{}}0=={{}Ad}0{{{f{A`}}{f{A`{Bh{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Bl{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Bn{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{C`{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Cb{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Cd{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Cf{c}}}}}{{Bl{Bje}}}{}{}}6510342{{}c{}}0{f{{l{{f{c}}}}}{}}000{{{f{Ch}}}{{Bh{Bb}}}}111111111111111111111111111111>>11111111{{fAlAlAl}{{l{{f{c}}}}}{}}02222`22{{fCj}{{l{{f{c}}}}}{}}0333333{{{f{Cl}}}{{d{Cn}}}}22`44`{fc{}}{{{f{Ab}}}{{Bn{D`}}}}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fDb}099{f{{f{c}}}{}}0{{{f{A`}}}{{f{A`c}}}{}}0{{}{{f{{Dd{Ab}}}}}}=={{fDf}{{l{{f{c}}}}}{}}0======`````{{fj}{{l{{f{c}}}}}{}}00{{fn}{{l{{f{c}}}}}{}}00????????????555444????????????????????????????????????{Ad{{f{c}}}{}}00{Ad{{f{A`c}}}{}}00{f{{l{{f{c}}}}}{}}00{{{f{Dh}}Ad}b}{Adb}00``555{{DjDlDlBf}{{C`{DjAd}}}}{{{f{Dn}}}{{Bh{{f{E`}}}}}}{{fAl}{{l{{f{c}}}}}{}}00{cc{}}00`666`{{}Ad}00{{{f{A`}}{f{A`{Cd{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Bl{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{C`{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Cf{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Cb{ce}}}}}{{Bl{Bjg}}}{}{}{}}{{{f{A`}}{f{A`{Bh{c}}}}}{{Bl{Bje}}}{}{}}{{{f{A`}}{f{A`{Bn{c}}}}}{{Bl{Bje}}}{}{}}63504210245631{{}c{}}00???????????????????????????????????????????????????:::????????????{{fAlAlAl}{{l{{f{c}}}}}{}}00{f{{l{{f{c}}}}}{}}00000`000{{fCj}{{l{{f{c}}}}}{}}00111111111222{{{Bh{{C`{BfEb}}}}Af{Cb{Ed{Cb{EfEh}}}}Ej}{{d{Dh}}}}`222{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{fDb}00555{f{{f{c}}}{}}00{{{f{A`}}}{{f{A`c}}}{}}00999{{fDf}{{l{{f{c}}}}}{}}00888888888","D":"BGn","p":[[1,"unit"],[8,"Result",436],[1,"reference"],[5,"Private",437],[6,"Attribute",438],[5,"Painted",439],[6,"Color",440],[0,"mut"],[6,"RunMode",2],[1,"usize"],[5,"Program",441],[1,"str"],[8,"Function",441],[1,"u8"],[5,"Formatter",442],[8,"Result",442],[5,"Felt",443],[5,"IntoIter",444],[5,"String",445],[5,"Vec",446],[6,"RewriteResult",447],[6,"Result",448],[6,"Option",449],[1,"tuple"],[5,"OrderedHashMap",450],[5,"Box",451],[5,"VecDeque",452],[6,"Value",453],[6,"Quirk",438],[5,"ExecutionResult",454],[6,"RunResultValue",455],[5,"PossibleValue",456],[5,"TypeId",457],[1,"slice"],[5,"Condition",458],[5,"TestsSummary",181],[5,"TestCompilation",459],[1,"bool"],[5,"PackageMetadata",460],[5,"TargetMetadata",460],[5,"TestConfig",461],[5,"FunctionId",462],[6,"CostTokenType",463],[1,"i32"],[5,"RunArgs",2],[6,"TestStatus",181],[5,"TestResult",181]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAQAEAAAACoAKwDuAO8A8AA=","e":"OzAAAAEAAHUAFAAAAAAAAgAFABQAAwAsAAIAMwADADkAAQBAAAAARgAPAIsAAACZAAAAnAAIAKcABgC2AAEAzQAFAPcABQABAQQAFQEYAHwBAACUAQgAoAEIAA=="}],["scarb_native_test",{"t":"PFPFGPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOONNNONNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNPPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNHNNONNCNNNNNNNNNNNNNNNNNNNNNNNNNPPFGFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNOONNNHHNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["All","Args","Integration","TargetGroupDeduplicator","TestKind","Unit","__clone_box","","attr","","","augment_args","augment_args_for_update","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","clone","","clone_into","","clone_to_uninit","","command","command_for_update","conceal","","","cyan","","","default","","deref","","","deref_mut","","","deserialize_test_compilation","dim","","","drop","","","fg","","","filter","fixed","","","fmt","","from","","","from_arg_matches","from_arg_matches_mut","green","","","group_id","ignored","include_ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","main","mask","","","matches","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","opt_level","packages_filter","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_mode","seen","strike","","","test_kind","to_owned","","to_possible_value","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","update_from_arg_matches","update_from_arg_matches_mut","utils","value_variants","visit","vzip","","","whenever","","","white","","","wrap","","","yellow","","","Aot","Jit","RunArgs","RunMode","__clone_box","attr","","bg","","black","","blink","","blue","","bold","","borrow","","borrow_mut","","bright","","bright_black","","bright_blue","","bright_cyan","","bright_green","","bright_magenta","","bright_red","","bright_white","","bright_yellow","","clear","","clone","clone_into","clone_to_uninit","conceal","","cyan","","deref","","deref_mut","","dim","","drop","","fg","","find_function","fixed","","fmt","format_for_panic","from","","green","","init","","internal_rewrite","","","","","","","","","","","","","","into","","invert","","italic","","jitvalue_to_felt","linger","","magenta","","mask","","on_black","","on_blue","","on_bright","","on_bright_black","","on_bright_blue","","on_bright_cyan","","on_bright_green","","on_bright_magenta","","on_bright_red","","on_bright_white","","on_bright_yellow","","on_cyan","","on_fixed","","on_green","","on_magenta","","on_primary","","on_red","","on_rgb","","on_white","","on_yellow","","opt_level","primary","","quirk","","rapid_blink","","red","","resetting","","result_to_runresult","rgb","","run_mode","strike","","test","to_owned","to_possible_value","try_from","","try_into","","type_id","","underline","","upcast","","upcast_mut","","value_variants","vzip","","whenever","","white","","wrap","","yellow","","Fail","Success","TestResult","TestStatus","TestsSummary","attr","","","bg","","","black","","","blink","","","blue","","","bold","","","borrow","","","borrow_mut","","","bright","","","bright_black","","","bright_blue","","","bright_cyan","","","bright_green","","","bright_magenta","","","bright_red","","","bright_white","","","bright_yellow","","","clear","","","conceal","","","cyan","","","deref","","","deref_mut","","","dim","","","display_tests_summary","drop","","","failed","failed_run_results","fg","","","filter_test_cases","find_testable_targets","fixed","","","from","","","gas_usage","green","","","ignored","init","","","internal_rewrite","","","","","","","","","","","","","","","","","","","","","into","","","invert","","","italic","","","linger","","","magenta","","","mask","","","on_black","","","on_blue","","","on_bright","","","on_bright_black","","","on_bright_blue","","","on_bright_cyan","","","on_bright_green","","","on_bright_magenta","","","on_bright_red","","","on_bright_white","","","on_bright_yellow","","","on_cyan","","","on_fixed","","","on_green","","","on_magenta","","","on_primary","","","on_red","","","on_rgb","","","on_white","","","on_yellow","","","passed","primary","","","quirk","","","rapid_blink","","","red","","","resetting","","","rgb","","","run_tests","status","strike","","","try_from","","","try_into","","","type_id","","","underline","","","upcast","","","upcast_mut","","","vzip","","","whenever","","","white","","","wrap","","","yellow","",""],"q":[[0,"scarb_native_test"],[284,"scarb_native_test::utils"],[463,"scarb_native_test::utils::test"],[718,"dyn_clone::sealed"],[719,"yansi::attr_quirk"],[720,"yansi::paint"],[721,"clap_builder::builder::command"],[722,"yansi::color"],[723,"std::path"],[724,"alloc::string"],[725,"cairo_lang_test_plugin"],[726,"anyhow"],[727,"core::fmt"],[728,"clap_builder::parser::matches::arg_matches"],[729,"clap_builder"],[730,"core::result"],[731,"clap_builder::util::id"],[732,"core::option"],[733,"cairo_lang_semantic::substitution"],[734,"cairo_lang_utils::ordered_hash_map"],[735,"alloc::vec"],[736,"alloc::boxed"],[737,"alloc::collections::vec_deque"],[738,"clap_builder::builder::possible_value"],[739,"core::any"],[740,"yansi::condition"],[741,"cairo_lang_sierra::program"],[742,"starknet_types_core::felt"],[743,"alloc::vec::into_iter"],[744,"cairo_native::values"],[745,"cairo_native::execution_result"],[746,"cairo_lang_runner"],[747,"scarb_metadata"],[748,"cairo_lang_test_plugin::test_config"],[749,"cairo_lang_sierra::ids"],[750,"cairo_lang_sierra::extensions::modules::gas"]],"i":"Ad`0``0Ab101Af111201201201201201201201201201201201201201201201201201212121112012020120120`12012012011201212011120111120111111122222220000000120120120120120`12021201201201201201201201201201201201201201201201201201201201201112012012012012012010120112212012012012012012011`20120120120120120Dl0``0Fj1010101010101010101010101010101010111101010101010101`011`01010100000001111111010101`010101010101010101010101010101010101010101010100101010101`01001`1101010101010110101010101Fl0```ElFn2102102102102102102102102102102102102102102102102102102102102102102`10211102``102102010211021111111000000022222221021021021021021021021021021021021021021021021021021021021021021021021021021021102102102102102102`0102102102102102102102102102102102102","f":"``````{{bd}f}0{{bh}{{j{{b{c}}}}}{}}00{ll}0{{bn}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000000000{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00222222222222222222222222222222{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{b{b{A`c}}}f{}}0{bf}0{{}l}0777777{{}Ad}{{}Af}{Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00{{{b{Aj}}Al}{{B`{An}}}}<<<{Ahf}00>>>`{{bBb}{{j{{b{c}}}}}{}}00{{{b{Ab}}{b{A`Bd}}}Bf}{{{b{Ad}}{b{A`Bd}}}Bf}{cc{}}00{{{b{Bh}}}{{Bl{AbBj}}}}{{{b{A`Bh}}}{{Bl{AbBj}}}}{b{{j{{b{c}}}}}{}}00{{}{{C`{Bn}}}}``{{}Ah}00{{{b{A`}}{b{A`{Bl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cd{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cf{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Ch{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cj{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{C`{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cl{ce}}}}}{{Bl{Cbg}}}{}{}{}}64105321623504{{}c{}}00::::::::::::{{}{{B`{f}}}};;;{{{b{Ad}}{b{Cn}}}D`}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{{bBb}{{j{{b{c}}}}}{}}00============{{bBbBbBb}{{j{{b{c}}}}}{}}00>>>>>>``>>>{{bDb}{{j{{b{c}}}}}{}}00?????????111``???`{bc{}}0{{{b{Ad}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{bDf}00{b{{j{{b{c}}}}}{}}00{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00{{{b{A`Ab}}{b{Bh}}}{{Bl{fBj}}}}{{{b{A`Ab}}{b{A`Bh}}}{{Bl{fBj}}}}`{{}{{b{{Dh{Ad}}}}}}{{{b{A`Af}}AlAl}D`}{{}c{}}00{{bDj}{{j{{b{c}}}}}{}}00888888888````{{bd}f}{{bh}{{j{{b{c}}}}}{}}0{{bn}{{j{{b{c}}}}}{}}0;;;;;;;;::99;;;;;;;;;;;;;;;;;;;;{{{b{Dl}}}Dl}{{b{b{A`c}}}f{}}{bf}>>>>{Ah{{b{c}}}{}}0{Ah{{b{A`c}}}{}}0{b{{j{{b{c}}}}}{}}0{Ahf}077{{{b{Dn}}{b{Cn}}}{{B`{{b{E`}}}}}}{{bBb}{{j{{b{c}}}}}{}}0{{{b{Dl}}{b{A`Bd}}}Bf}{{{Ed{Eb}}}Al}{cc{}}066{{}Ah}0{{{b{A`}}{b{A`{Cj{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cf{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Bl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cd{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Ch{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{C`{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cl{ce}}}}}{{Bl{Cbg}}}{}{}{}}3260145{{}c{}}0????{{{b{Ef}}}{{Cf{Eb}}}}{b{{j{{b{c}}}}}{}}00000000000000000000000000000>>00000000{{bBbBbBb}{{j{{b{c}}}}}{}}01111`11{{bDb}{{j{{b{c}}}}}{}}0222222{{{b{Eh}}}{{B`{Ej}}}}22`33`{bc{}}{{{b{Dl}}}{{C`{Dd}}}}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{bDf}088{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{}{{b{{Dh{Dl}}}}}}=={{bDj}{{j{{b{c}}}}}{}}0<<<<<<`````{{bh}{{j{{b{c}}}}}{}}00{{bn}{{j{{b{c}}}}}{}}00>>>>>>>>>>>>555444>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{Ah{{b{c}}}{}}00{Ah{{b{A`c}}}{}}00{b{{j{{b{c}}}}}{}}00{{{b{El}}Ah}f}{Ahf}00``555{{AnD`D`Al}{{Cl{AnAh}}}}{{{b{En}}}{{Cf{{b{F`}}}}}}{{bBb}{{j{{b{c}}}}}{}}00{cc{}}00`666`{{}Ah}00{{{b{A`}}{b{A`{C`{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cj{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Cf{c}}}}}{{Bl{Cbe}}}{}{}}{{{b{A`}}{b{A`{Bl{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Cd{ce}}}}}{{Bl{Cbg}}}{}{}{}}{{{b{A`}}{b{A`{Ch{c}}}}}{{Bl{Cbe}}}{}{}}63215044015632{{}c{}}00???????????????????????????????????????????????????:::????????????{{bBbBbBb}{{j{{b{c}}}}}{}}00{b{{j{{b{c}}}}}{}}00000`000{{bDb}{{j{{b{c}}}}}{}}00111111111222{{{Cf{{Cl{AlFb}}}}Dn{Cd{Fd{Cd{FfFh}}}}Fj}{{B`{El}}}}`222{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{bDf}00555{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00999{{bDj}{{j{{b{c}}}}}{}}00888888888","D":"COj","p":[[1,"reference"],[5,"Private",718],[1,"unit"],[6,"Attribute",719],[5,"Painted",720],[5,"Command",721],[6,"Color",722],[0,"mut"],[5,"Args",0],[6,"TestKind",0],[5,"TargetGroupDeduplicator",0],[1,"usize"],[5,"Path",723],[5,"String",724],[5,"TestCompilation",725],[8,"Result",726],[1,"u8"],[5,"Formatter",727],[8,"Result",727],[5,"ArgMatches",728],[8,"Error",729],[6,"Result",730],[5,"Id",731],[6,"Option",732],[6,"RewriteResult",733],[5,"OrderedHashMap",734],[5,"Vec",735],[5,"Box",736],[5,"VecDeque",737],[1,"tuple"],[1,"str"],[1,"bool"],[6,"Quirk",719],[5,"PossibleValue",738],[5,"TypeId",739],[1,"slice"],[5,"Condition",740],[6,"RunMode",284],[5,"Program",741],[8,"Function",741],[5,"Felt",742],[5,"IntoIter",743],[6,"Value",744],[5,"ExecutionResult",745],[6,"RunResultValue",746],[5,"TestsSummary",463],[5,"PackageMetadata",747],[5,"TargetMetadata",747],[5,"TestConfig",748],[5,"FunctionId",749],[6,"CostTokenType",750],[1,"i32"],[5,"RunArgs",284],[6,"TestStatus",463],[5,"TestResult",463]],"r":[],"b":[],"c":"OzAAAAEAAAcAAwA+AAIARAEBAAgCAgA=","e":"OzAAAAEAANEAJQAAAAEAAwAFAAwAAQAdAAUAQQAHAE8ACABbAAIAZQABAGoAAQBvAAAAcgAXAJkAAACdAAAA2wAAAO8AAAD0AAsAAwEJAA4BAgAdAQQALgEDAEYBAgBNAQMAUwEBAFoBAABgAQ8ApQEAALMBAAC2AQgAwQEGANABAQDnAQUAEQIFABsCBAAvAhgAlgIAAK4CCAC6AggA"}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[80988,4248,4400,10771,2697,4820,10005,7613,11631]} \ No newline at end of file +//{"start":39,"fragment_lengths":[80978,4248,4400,10771,2697,4820,10005,7613,11631]} \ No newline at end of file diff --git a/settings.html b/settings.html index 267049dc2..d5cca9ee8 100644 --- a/settings.html +++ b/settings.html @@ -1 +1 @@ -Settings

Rustdoc settings

Back
\ No newline at end of file +Settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/src/cairo_native/arch/x86_64.rs.html b/src/cairo_native/arch/x86_64.rs.html index 89667bdbc..ea9668373 100644 --- a/src/cairo_native/arch/x86_64.rs.html +++ b/src/cairo_native/arch/x86_64.rs.html @@ -210,45 +210,6 @@ 210 211 212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251
//! # Implementations of `AbiArgument` for the `x86_64` architecture.
 //!
 //! The x86_64 architecture uses 6 64-bit registers for arguments. This means that the first 48
@@ -271,93 +232,55 @@
 
 impl AbiArgument for bool {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() < 48 {
-            buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
-        } else {
-            align_to(buffer, get_integer_layout(1).align());
-            buffer.push((*self) as u8);
-        }
+        buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
         Ok(())
     }
 }
 
 impl AbiArgument for u8 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() < 48 {
-            buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
-        } else {
-            align_to(buffer, get_integer_layout(8).align());
-            buffer.push(*self);
-        }
+        buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
         Ok(())
     }
 }
 
 impl AbiArgument for i8 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() < 48 {
-            buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
-        } else {
-            align_to(buffer, get_integer_layout(8).align());
-            buffer.extend_from_slice(&self.to_ne_bytes());
-        }
+        buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
         Ok(())
     }
 }
 
 impl AbiArgument for u16 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() < 48 {
-            buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
-        } else {
-            align_to(buffer, get_integer_layout(16).align());
-            buffer.extend_from_slice(&self.to_ne_bytes());
-        }
+        buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
         Ok(())
     }
 }
 
 impl AbiArgument for i16 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() < 48 {
-            buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
-        } else {
-            align_to(buffer, get_integer_layout(16).align());
-            buffer.extend_from_slice(&self.to_ne_bytes());
-        }
+        buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
         Ok(())
     }
 }
 
 impl AbiArgument for u32 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() < 48 {
-            buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
-        } else {
-            align_to(buffer, get_integer_layout(32).align());
-            buffer.extend_from_slice(&self.to_ne_bytes());
-        }
+        buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
         Ok(())
     }
 }
 
 impl AbiArgument for i32 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() < 48 {
-            buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
-        } else {
-            align_to(buffer, get_integer_layout(32).align());
-            buffer.extend_from_slice(&self.to_ne_bytes());
-        }
+        buffer.extend_from_slice(&(*self as u64).to_ne_bytes());
         Ok(())
     }
 }
 
 impl AbiArgument for u64 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() >= 48 {
-            align_to(buffer, get_integer_layout(64).align());
-        }
         buffer.extend_from_slice(&self.to_ne_bytes());
         Ok(())
     }
@@ -365,9 +288,6 @@
 
 impl AbiArgument for i64 {
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
-        if buffer.len() >= 48 {
-            align_to(buffer, get_integer_layout(64).align());
-        }
         buffer.extend_from_slice(&self.to_ne_bytes());
         Ok(())
     }
@@ -378,6 +298,7 @@
         if buffer.len() >= 40 {
             align_to(buffer, get_integer_layout(128).align());
         }
+
         buffer.extend_from_slice(&self.to_ne_bytes());
         Ok(())
     }
@@ -388,6 +309,7 @@
         if buffer.len() >= 40 {
             align_to(buffer, get_integer_layout(128).align());
         }
+
         buffer.extend_from_slice(&self.to_ne_bytes());
         Ok(())
     }
@@ -415,13 +337,13 @@
     fn to_bytes(&self, buffer: &mut Vec<u8>) -> Result<(), Error> {
         // The `bytes31` type is treated as a 248-bit integer, therefore it follows the same
         // splitting rules as them.
+
         if buffer.len() >= 40 {
             align_to(buffer, get_integer_layout(252).align());
         }
 
         buffer.extend_from_slice(self);
         buffer.push(0);
-
         Ok(())
     }
 }
diff --git a/src/cairo_native/executor.rs.html b/src/cairo_native/executor.rs.html
index 79b0e4508..73a2f1b74 100644
--- a/src/cairo_native/executor.rs.html
+++ b/src/cairo_native/executor.rs.html
@@ -766,6 +766,8 @@
 766
 767
 768
+769
+770
 
//! # Executors
 //!
 //! This module provides methods to execute the programs, either via JIT or compiled ahead
@@ -1119,7 +1121,6 @@
     #[cfg(target_arch = "aarch64")] mut ret_registers: [u64; 4],
 ) -> Result<Value, Error> {
     let type_info = registry.get_type(type_id)?;
-    let debug_name = type_info.info().long_id.to_string();
 
     // Align the pointer to the actual return value.
     if let Some(return_ptr) = &mut return_ptr {
@@ -1141,11 +1142,12 @@
             return_ptr.to_native_assert_error("return pointer should be valid")?,
             type_id,
             registry,
+            true,
         )?),
         CoreTypeConcrete::Box(info) => unsafe {
             let ptr =
                 return_ptr.unwrap_or_else(|| NonNull::new_unchecked(ret_registers[0] as *mut ()));
-            let value = Value::from_ptr(ptr, &info.ty, registry)?;
+            let value = Value::from_ptr(ptr, &info.ty, registry, true)?;
             libc_free(ptr.cast().as_ptr());
             Ok(value)
         },
@@ -1153,6 +1155,7 @@
             return_ptr.to_native_assert_error("return pointer should be valid")?,
             type_id,
             registry,
+            true,
         )?),
         CoreTypeConcrete::Felt252(_)
         | CoreTypeConcrete::StarkNet(
@@ -1161,7 +1164,7 @@
             | StarkNetTypeConcrete::StorageAddress(_)
             | StarkNetTypeConcrete::StorageBaseAddress(_),
         ) => match return_ptr {
-            Some(return_ptr) => Ok(Value::from_ptr(return_ptr, type_id, registry)?),
+            Some(return_ptr) => Ok(Value::from_ptr(return_ptr, type_id, registry, true)?),
             None => {
                 #[cfg(target_arch = "x86_64")]
                 // Since x86_64's return values hold at most two different 64bit registers,
@@ -1180,7 +1183,7 @@
             }
         },
         CoreTypeConcrete::Bytes31(_) => match return_ptr {
-            Some(return_ptr) => Ok(Value::from_ptr(return_ptr, type_id, registry)?),
+            Some(return_ptr) => Ok(Value::from_ptr(return_ptr, type_id, registry, true)?),
             None => {
                 #[cfg(target_arch = "x86_64")]
                 // Since x86_64's return values hold at most two different 64bit registers,
@@ -1195,7 +1198,7 @@
             }
         },
         CoreTypeConcrete::BoundedInt(info) => match return_ptr {
-            Some(return_ptr) => Ok(Value::from_ptr(return_ptr, type_id, registry)?),
+            Some(return_ptr) => Ok(Value::from_ptr(return_ptr, type_id, registry, true)?),
             None => {
                 let mut data = if info.range.offset_bit_width() <= 64 {
                     BigInt::from(ret_registers[0])
@@ -1267,7 +1270,7 @@
                 Ok(Value::Null)
             } else {
                 let ptr = NonNull::new_unchecked(ptr);
-                let value = Value::from_ptr(ptr, &info.ty, registry)?;
+                let value = Value::from_ptr(ptr, &info.ty, registry, true)?;
                 libc_free(ptr.as_ptr().cast());
                 Ok(value)
             }
@@ -1323,7 +1326,7 @@
                 }
             };
             let value = match ptr {
-                Ok(ptr) => Box::new(Value::from_ptr(ptr, &info.variants[tag], registry)?),
+                Ok(ptr) => Box::new(Value::from_ptr(ptr, &info.variants[tag], registry, true)?),
                 Err(offset) => {
                     ret_registers.copy_within(offset.., 0);
                     Box::new(parse_result(
@@ -1338,27 +1341,28 @@
             Ok(Value::Enum {
                 tag,
                 value,
-                debug_name: Some(debug_name),
+                debug_name: Some(type_info.info().long_id.to_string()),
             })
         }
         CoreTypeConcrete::Struct(info) => {
             if info.members.is_empty() {
                 Ok(Value::Struct {
                     fields: Vec::new(),
-                    debug_name: Some(debug_name),
+                    debug_name: Some(type_info.info().long_id.to_string()),
                 })
             } else {
                 Ok(Value::from_ptr(
                     return_ptr.to_native_assert_error("return pointer should be valid")?,
                     type_id,
                     registry,
+                    true,
                 )?)
             }
         }
         CoreTypeConcrete::Felt252Dict(_) | CoreTypeConcrete::SquashedFelt252Dict(_) => unsafe {
             let ptr = return_ptr
                 .unwrap_or_else(|| NonNull::new_unchecked((&raw mut ret_registers[0]) as *mut ()));
-            Ok(Value::from_ptr(ptr, type_id, registry)?)
+            Ok(Value::from_ptr(ptr, type_id, registry, true)?)
         },
 
         CoreTypeConcrete::Snapshot(info) => {
diff --git a/src/cairo_native/executor/contract.rs.html b/src/cairo_native/executor/contract.rs.html
index 67b25e846..2ccbbdc54 100644
--- a/src/cairo_native/executor/contract.rs.html
+++ b/src/cairo_native/executor/contract.rs.html
@@ -831,6 +831,24 @@
 831
 832
 833
+834
+835
+836
+837
+838
+839
+840
+841
+842
+843
+844
+845
+846
+847
+848
+849
+850
+851
 
//! A specialized executor for Starknet contracts, avoiding the overhead of storing the sierra program registry and
 //! enabling efficient serialization of the program/data once compiled.
 //!
@@ -867,7 +885,7 @@
 use crate::{
     arch::AbiArgument,
     context::NativeContext,
-    error::{panic::ToNativeAssertError, Error},
+    error::{panic::ToNativeAssertError, Error, Result},
     execution_result::{BuiltinStats, ContractExecutionResult},
     executor::invoke_trampoline,
     metadata::gas::MetadataComputationConfig,
@@ -979,7 +997,7 @@
         sierra_program: &Program,
         entry_points: &ContractEntryPoints,
         opt_level: OptLevel,
-    ) -> Result<Self, Error> {
+    ) -> Result<Self> {
         let native_context = NativeContext::new();
 
         let mut entry_point_selector_to_id = BTreeMap::new();
@@ -1094,7 +1112,7 @@
     }
 
     /// Save the library to the desired path, alongside it is saved also a json file with additional info.
-    pub fn save(&mut self, to: impl AsRef<Path>) -> Result<(), Error> {
+    pub fn save(&mut self, to: impl AsRef<Path>) -> Result<()> {
         let to = to.as_ref();
         std::fs::copy(&self.path, to)?;
 
@@ -1109,7 +1127,7 @@
     }
 
     /// Load the executor from an already compiled library with the additional info json file.
-    pub fn load(library_path: &Path) -> Result<Self, Error> {
+    pub fn load(library_path: &Path) -> Result<Self> {
         let info_str = std::fs::read_to_string(library_path.with_extension("json"))?;
         let contract_info: NativeContractInfo = serde_json::from_str(&info_str)?;
         Ok(Self {
@@ -1136,7 +1154,7 @@
         gas: u64,
         builtin_costs: Option<BuiltinCosts>,
         mut syscall_handler: impl StarknetSyscallHandler,
-    ) -> Result<ContractExecutionResult, Error> {
+    ) -> Result<ContractExecutionResult> {
         let arena = Bump::new();
         let mut invoke_data = Vec::<u8>::new();
 
@@ -1150,12 +1168,7 @@
         };
         let function_ptr = self.find_function_ptr(&function_id, true)?;
 
-        let builtin_costs = builtin_costs.unwrap_or_default();
-        let builtin_costs_stack: [u64; 7] = builtin_costs.into();
-        // Note: the ptr into a slice is valid, it can be used with cast()
-        // Care should be taken if you dereference it and take the .as_ptr() of the slice, since when you
-        // deref it, it will be a copy on the stack, so you will get the ptr of the value in the stack.
-        let builtin_costs: *mut [u64; 7] = Box::into_raw(Box::new(builtin_costs_stack));
+        let builtin_costs: [u64; 7] = builtin_costs.unwrap_or_default().into();
         let set_costs_builtin = unsafe {
             self.library
                 .get::<extern "C" fn(*const u64) -> *const u64>(
@@ -1163,7 +1176,7 @@
                 )?
         };
         // We may be inside a recursive contract, save the possible saved builtin costs to restore it after our call.
-        let old_builtincosts_ptr = set_costs_builtin(builtin_costs.cast());
+        let old_builtincosts_ptr = set_costs_builtin(builtin_costs.as_ptr());
 
         //  it can vary from contract to contract thats why we need to store/ load it.
         let builtins_size: usize = self.contract_info.entry_points_info[&function_id.id]
@@ -1189,7 +1202,7 @@
                 }
                 BuiltinType::BuiltinCosts => {
                     // todo: check if valid
-                    builtin_costs_stack.as_ptr().to_bytes(&mut invoke_data)?;
+                    builtin_costs.as_ptr().to_bytes(&mut invoke_data)?;
                 }
                 BuiltinType::System => {
                     (&mut syscall_handler as *mut StarknetSyscallHandlerCallbacks<_>)
@@ -1202,18 +1215,42 @@
         }
 
         let felt_layout = get_integer_layout(252).pad_to_align();
-        let ptr: *mut () = unsafe { libc_malloc(felt_layout.size() * args.len()).cast() };
+        let refcount_offset = get_integer_layout(32)
+            .align_to(felt_layout.align())
+            .unwrap()
+            .pad_to_align()
+            .size();
+
+        let ptr = match args.len() {
+            0 => std::ptr::null_mut(),
+            _ => unsafe {
+                let ptr: *mut () =
+                    libc_malloc(felt_layout.size() * args.len() + refcount_offset).cast();
+
+                // Write reference count.
+                ptr.cast::<u32>().write(1);
+                ptr.byte_add(refcount_offset)
+            },
+        };
         let len: u32 = args
             .len()
             .try_into()
             .to_native_assert_error("number of arguments should fit into a u32")?;
 
         ptr.to_bytes(&mut invoke_data)?;
-        0u32.to_bytes(&mut invoke_data)?; // start
-        len.to_bytes(&mut invoke_data)?; // end
-        len.to_bytes(&mut invoke_data)?; // cap
+        if cfg!(target_arch = "aarch64") {
+            0u32.to_bytes(&mut invoke_data)?; // start
+            len.to_bytes(&mut invoke_data)?; // end
+            len.to_bytes(&mut invoke_data)?; // cap
+        } else if cfg!(target_arch = "x86_64") {
+            (0u32 as u64).to_bytes(&mut invoke_data)?; // start
+            (len as u64).to_bytes(&mut invoke_data)?; // end
+            (len as u64).to_bytes(&mut invoke_data)?; // cap
+        } else {
+            unreachable!("unsupported architecture");
+        }
 
-        for (idx, elem) in args.iter().enumerate() {
+        for (idx, elem) in args.iter().enumerate() {
             let f = elem.to_bytes_le();
             unsafe {
                 std::ptr::copy_nonoverlapping(
@@ -1354,7 +1391,12 @@
         }
 
         if !array_ptr.is_null() {
-            unsafe { libc_free(array_ptr.cast()) };
+            unsafe {
+                let ptr = array_ptr.byte_sub(refcount_offset);
+                assert_eq!(ptr.cast::<u32>().read(), 1);
+
+                libc_free(ptr.cast());
+            }
         }
 
         let error_msg = if tag != 0 {
@@ -1371,14 +1413,8 @@
             None
         };
 
-        // Restore the old ptr and get back our builtincost box and free it.
-        let our_builtincosts_ptr = set_costs_builtin(old_builtincosts_ptr);
-
-        if !our_builtincosts_ptr.is_null() && old_builtincosts_ptr.is_aligned() {
-            unsafe {
-                let _ = Box::<[u64; 7]>::from_raw(our_builtincosts_ptr.cast_mut().cast());
-            };
-        }
+        // Restore the original builtin costs pointer.
+        set_costs_builtin(old_builtincosts_ptr);
 
         #[cfg(feature = "with-mem-tracing")]
         crate::utils::mem_tracing::report_stats();
@@ -1395,7 +1431,7 @@
         &self,
         function_id: &FunctionId,
         is_for_contract_executor: bool,
-    ) -> Result<*mut c_void, Error> {
+    ) -> Result<*mut c_void> {
         let function_name = generate_function_name(function_id, is_for_contract_executor);
         let function_name = format!("_mlir_ciface_{function_name}");
 
diff --git a/src/cairo_native/libfuncs.rs.html b/src/cairo_native/libfuncs.rs.html
index e8fb9dcdb..78455dd94 100644
--- a/src/cairo_native/libfuncs.rs.html
+++ b/src/cairo_native/libfuncs.rs.html
@@ -632,9 +632,9 @@
             Self::Const(selector) => self::r#const::build(
                 context, registry, entry, location, helper, metadata, selector,
             ),
-            Self::Coupon(info) => {
-                self::coupon::build(context, registry, entry, location, helper, metadata, info)
-            }
+            Self::Coupon(selector) => self::coupon::build(
+                context, registry, entry, location, helper, metadata, selector,
+            ),
             Self::CouponCall(info) => self::function_call::build(
                 context, registry, entry, location, helper, metadata, info,
             ),
diff --git a/src/cairo_native/libfuncs/array.rs.html b/src/cairo_native/libfuncs/array.rs.html
index c7616528f..070d7878a 100644
--- a/src/cairo_native/libfuncs/array.rs.html
+++ b/src/cairo_native/libfuncs/array.rs.html
@@ -2513,44 +2513,474 @@
 2513
 2514
 2515
+2516
+2517
+2518
+2519
+2520
+2521
+2522
+2523
+2524
+2525
+2526
+2527
+2528
+2529
+2530
+2531
+2532
+2533
+2534
+2535
+2536
+2537
+2538
+2539
+2540
+2541
+2542
+2543
+2544
+2545
+2546
+2547
+2548
+2549
+2550
+2551
+2552
+2553
+2554
+2555
+2556
+2557
+2558
+2559
+2560
+2561
+2562
+2563
+2564
+2565
+2566
+2567
+2568
+2569
+2570
+2571
+2572
+2573
+2574
+2575
+2576
+2577
+2578
+2579
+2580
+2581
+2582
+2583
+2584
+2585
+2586
+2587
+2588
+2589
+2590
+2591
+2592
+2593
+2594
+2595
+2596
+2597
+2598
+2599
+2600
+2601
+2602
+2603
+2604
+2605
+2606
+2607
+2608
+2609
+2610
+2611
+2612
+2613
+2614
+2615
+2616
+2617
+2618
+2619
+2620
+2621
+2622
+2623
+2624
+2625
+2626
+2627
+2628
+2629
+2630
+2631
+2632
+2633
+2634
+2635
+2636
+2637
+2638
+2639
+2640
+2641
+2642
+2643
+2644
+2645
+2646
+2647
+2648
+2649
+2650
+2651
+2652
+2653
+2654
+2655
+2656
+2657
+2658
+2659
+2660
+2661
+2662
+2663
+2664
+2665
+2666
+2667
+2668
+2669
+2670
+2671
+2672
+2673
+2674
+2675
+2676
+2677
+2678
+2679
+2680
+2681
+2682
+2683
+2684
+2685
+2686
+2687
+2688
+2689
+2690
+2691
+2692
+2693
+2694
+2695
+2696
+2697
+2698
+2699
+2700
+2701
+2702
+2703
+2704
+2705
+2706
+2707
+2708
+2709
+2710
+2711
+2712
+2713
+2714
+2715
+2716
+2717
+2718
+2719
+2720
+2721
+2722
+2723
+2724
+2725
+2726
+2727
+2728
+2729
+2730
+2731
+2732
+2733
+2734
+2735
+2736
+2737
+2738
+2739
+2740
+2741
+2742
+2743
+2744
+2745
+2746
+2747
+2748
+2749
+2750
+2751
+2752
+2753
+2754
+2755
+2756
+2757
+2758
+2759
+2760
+2761
+2762
+2763
+2764
+2765
+2766
+2767
+2768
+2769
+2770
+2771
+2772
+2773
+2774
+2775
+2776
+2777
+2778
+2779
+2780
+2781
+2782
+2783
+2784
+2785
+2786
+2787
+2788
+2789
+2790
+2791
+2792
+2793
+2794
+2795
+2796
+2797
+2798
+2799
+2800
+2801
+2802
+2803
+2804
+2805
+2806
+2807
+2808
+2809
+2810
+2811
+2812
+2813
+2814
+2815
+2816
+2817
+2818
+2819
+2820
+2821
+2822
+2823
+2824
+2825
+2826
+2827
+2828
+2829
+2830
+2831
+2832
+2833
+2834
+2835
+2836
+2837
+2838
+2839
+2840
+2841
+2842
+2843
+2844
+2845
+2846
+2847
+2848
+2849
+2850
+2851
+2852
+2853
+2854
+2855
+2856
+2857
+2858
+2859
+2860
+2861
+2862
+2863
+2864
+2865
+2866
+2867
+2868
+2869
+2870
+2871
+2872
+2873
+2874
+2875
+2876
+2877
+2878
+2879
+2880
+2881
+2882
+2883
+2884
+2885
+2886
+2887
+2888
+2889
+2890
+2891
+2892
+2893
+2894
+2895
+2896
+2897
+2898
+2899
+2900
+2901
+2902
+2903
+2904
+2905
+2906
+2907
+2908
+2909
+2910
+2911
+2912
+2913
+2914
+2915
+2916
+2917
+2918
+2919
+2920
+2921
+2922
+2923
+2924
+2925
+2926
+2927
+2928
+2929
+2930
+2931
+2932
+2933
+2934
+2935
+2936
+2937
+2938
+2939
+2940
+2941
+2942
+2943
+2944
+2945
+2946
+2947
+2948
+2949
+2950
+2951
+2952
 

//! # Array libfuncs
 
-// TODO: A future possible improvement would be to put the array behind a double pointer and a
-//   reference counter, to avoid unnecessary clones.
-
 use super::LibfuncHelper;
 use crate::{
-    error::{panic::ToNativeAssertError, Error, Result},
+    error::{Error, Result, SierraAssertError},
     metadata::{
-        drop_overrides::DropOverridesMeta, realloc_bindings::ReallocBindingsMeta, MetadataStorage,
+        drop_overrides::DropOverridesMeta, dup_overrides::DupOverridesMeta,
+        realloc_bindings::ReallocBindingsMeta, MetadataStorage,
     },
-    native_assert, native_panic,
-    types::TypeBuilder,
-    utils::{BlockExt, GepIndex, ProgramRegistryExt},
+    utils::{get_integer_layout, BlockExt, GepIndex, ProgramRegistryExt},
 };
 use cairo_lang_sierra::{
     extensions::{
         array::{ArrayConcreteLibfunc, ConcreteMultiPopLibfunc},
         core::{CoreLibfunc, CoreType, CoreTypeConcrete},
         lib_func::{SignatureAndTypeConcreteLibfunc, SignatureOnlyConcreteLibfunc},
-        ConcreteLibfunc,
+        types::InfoAndTypeConcreteType,
     },
     program_registry::ProgramRegistry,
 };
 use melior::{
     dialect::{
         arith::{self, CmpiPredicate},
-        cf,
-        llvm::{self, r#type::pointer},
-        ods, scf,
+        cf, llvm, ods, scf,
     },
     ir::{
-        attribute::{DenseI32ArrayAttribute, IntegerAttribute},
-        r#type::IntegerType,
-        Block, Location, Region, Value, ValueLike,
+        attribute::IntegerAttribute, r#type::IntegerType, Block, Location, Region, Value, ValueLike,
     },
     Context,
 };
+use std::alloc::Layout;
 
 /// Select and call the correct libfunc builder function from the selector.
 pub fn build<'ctx, 'this>(
@@ -2566,15 +2996,33 @@
         ArrayConcreteLibfunc::New(info) => {
             build_new(context, registry, entry, location, helper, metadata, info)
         }
-        ArrayConcreteLibfunc::Append(info) => {
-            build_append(context, registry, entry, location, helper, metadata, info)
+        ArrayConcreteLibfunc::SpanFromTuple(info) => {
+            build_span_from_tuple(context, registry, entry, location, helper, metadata, info)
         }
-        ArrayConcreteLibfunc::PopFront(info) => {
-            build_pop_front(context, registry, entry, location, helper, metadata, info)
+        ArrayConcreteLibfunc::TupleFromSpan(info) => {
+            build_tuple_from_span(context, registry, entry, location, helper, metadata, info)
         }
-        ArrayConcreteLibfunc::PopFrontConsume(info) => {
-            build_pop_front_consume(context, registry, entry, location, helper, metadata, info)
+        ArrayConcreteLibfunc::Append(info) => {
+            build_append(context, registry, entry, location, helper, metadata, info)
         }
+        ArrayConcreteLibfunc::PopFront(info) => build_pop::<false, false>(
+            context,
+            registry,
+            entry,
+            location,
+            helper,
+            metadata,
+            PopInfo::Single(info),
+        ),
+        ArrayConcreteLibfunc::PopFrontConsume(info) => build_pop::<true, false>(
+            context,
+            registry,
+            entry,
+            location,
+            helper,
+            metadata,
+            PopInfo::Single(info),
+        ),
         ArrayConcreteLibfunc::Get(info) => {
             build_get(context, registry, entry, location, helper, metadata, info)
         }
@@ -2584,23 +3032,41 @@
         ArrayConcreteLibfunc::Len(info) => {
             build_len(context, registry, entry, location, helper, metadata, info)
         }
-        ArrayConcreteLibfunc::SnapshotPopFront(info) => {
-            build_snapshot_pop_front(context, registry, entry, location, helper, metadata, info)
-        }
-        ArrayConcreteLibfunc::SnapshotPopBack(info) => {
-            build_snapshot_pop_back(context, registry, entry, location, helper, metadata, info)
-        }
-        ArrayConcreteLibfunc::SpanFromTuple(info) => {
-            build_span_from_tuple(context, registry, entry, location, helper, metadata, info)
-        }
-        ArrayConcreteLibfunc::TupleFromSpan(info) => {
-            build_tuple_from_span(context, registry, entry, location, helper, metadata, info)
-        }
-        ArrayConcreteLibfunc::SnapshotMultiPopFront(info) => build_snapshot_multi_pop_front(
-            context, registry, entry, location, helper, metadata, info,
+        ArrayConcreteLibfunc::SnapshotPopFront(info) => build_pop::<false, false>(
+            context,
+            registry,
+            entry,
+            location,
+            helper,
+            metadata,
+            PopInfo::Single(info),
+        ),
+        ArrayConcreteLibfunc::SnapshotPopBack(info) => build_pop::<false, true>(
+            context,
+            registry,
+            entry,
+            location,
+            helper,
+            metadata,
+            PopInfo::Single(info),
         ),
-        ArrayConcreteLibfunc::SnapshotMultiPopBack(info) => build_snapshot_multi_pop_back(
-            context, registry, entry, location, helper, metadata, info,
+        ArrayConcreteLibfunc::SnapshotMultiPopFront(info) => build_pop::<false, false>(
+            context,
+            registry,
+            entry,
+            location,
+            helper,
+            metadata,
+            PopInfo::Multi(info),
+        ),
+        ArrayConcreteLibfunc::SnapshotMultiPopBack(info) => build_pop::<false, true>(
+            context,
+            registry,
+            entry,
+            location,
+            helper,
+            metadata,
+            PopInfo::Multi(info),
         ),
     }
 }
@@ -2608,37 +3074,33 @@
 /// Generate MLIR operations for the `array_new` libfunc.
 pub fn build_new<'ctx, 'this>(
     context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
+    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
     entry: &'this Block<'ctx>,
     location: Location<'ctx>,
     helper: &LibfuncHelper<'ctx, 'this>,
-    metadata: &mut MetadataStorage,
-    info: &SignatureOnlyConcreteLibfunc,
+    _metadata: &mut MetadataStorage,
+    _info: &SignatureOnlyConcreteLibfunc,
 ) -> Result<()> {
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.branch_signatures()[0].vars[0].ty,
-    )?;
+    let ptr_ty = llvm::r#type::pointer(context, 0);
+    let len_ty = IntegerType::new(context, 32).into();
 
-    let ptr = entry
-        .append_op_result(ods::llvm::mlir_zero(context, pointer(context, 0), location).into())?;
+    let nullptr = entry.append_op_result(llvm::zero(ptr_ty, location))?;
+    let k0 = entry.const_int_from_type(context, location, 0, len_ty)?;
 
-    let k0 = entry.const_int(context, location, 0, 32)?;
-    let value = entry.append_op_result(llvm::undef(array_ty, location))?;
-    let value = entry.insert_value(context, location, value, ptr, 0)?;
-    let value = entry.insert_value(context, location, value, k0, 1)?;
-    let value = entry.insert_value(context, location, value, k0, 2)?;
-    let value = entry.insert_value(context, location, value, k0, 3)?;
+    let value = entry.append_op_result(llvm::undef(
+        llvm::r#type::r#struct(context, &[ptr_ty, len_ty, len_ty, len_ty], false),
+        location,
+    ))?;
+    let value = entry.insert_values(context, location, value, &[nullptr, k0, k0, k0])?;
 
     entry.append_operation(helper.br(0, &[value], location));
     Ok(())
 }
 
-/// Generate MLIR operations for the `array_append` libfunc.
-pub fn build_append<'ctx, 'this>(
+/// Generate MLIR operations for the `span_from_tuple` libfunc.
+///
+/// Note: The `&info.ty` field has the entire `[T; N]` tuple. It is not the `T` in `Array<T>`.
+pub fn build_span_from_tuple<'ctx, 'this>(
     context: &'ctx Context,
     registry: &ProgramRegistry<CoreType, CoreLibfunc>,
     entry: &'this Block<'ctx>,
@@ -2647,237 +3109,264 @@
     metadata: &mut MetadataStorage,
     info: &SignatureAndTypeConcreteLibfunc,
 ) -> Result<()> {
-    // Algorithm:
-    //   - If array_end < capacity, then append.
-    //   - If array_end == capacity:
-    //     - If array_start == 0: realloc, then append.
-    //     - If array_start != 0: memmove, then append.
-
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
+    metadata.get_or_insert_with(|| ReallocBindingsMeta::new(context, helper));
 
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.param_signatures()[0].ty,
-    )?;
+    let tuple_len = {
+        let CoreTypeConcrete::Struct(info) = registry.get_type(&info.ty)? else {
+            return Err(Error::SierraAssert(SierraAssertError::BadTypeInfo));
+        };
 
-    let ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
-    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
+        info.members.len()
+    };
 
-    let elem_ty = registry.get_type(&info.ty)?;
-    let elem_layout = elem_ty.layout(registry)?;
-    let elem_stride = elem_layout.pad_to_align().size();
+    let ptr_ty = llvm::r#type::pointer(context, 0);
+    let len_ty = IntegerType::new(context, 32).into();
+    let (_, tuple_layout) =
+        registry.build_type_with_layout(context, helper, registry, metadata, &info.ty)?;
 
-    let k1 = entry.const_int(context, location, 1, 32)?;
+    let array_len_bytes = tuple_layout.pad_to_align().size();
+    let array_len_bytes_with_offset = entry.const_int(
+        context,
+        location,
+        array_len_bytes + calc_refcount_offset(tuple_layout),
+        64,
+    )?;
+    let array_len_bytes = entry.const_int(context, location, array_len_bytes, 64)?;
+    let array_len = entry.const_int_from_type(context, location, tuple_len, len_ty)?;
 
-    let elem_stride = entry.const_int(context, location, elem_stride, 64)?;
+    let k0 = entry.const_int_from_type(context, location, 0, len_ty)?;
+    let k1 = entry.const_int_from_type(context, location, 1, len_ty)?;
 
-    let array_end = entry.extract_value(context, location, entry.arg(0)?, len_ty, 2)?;
-    let array_capacity = entry.extract_value(context, location, entry.arg(0)?, len_ty, 3)?;
+    let array_ptr = entry.append_op_result(llvm::zero(ptr_ty, location))?;
+    let array_ptr = entry.append_op_result(ReallocBindingsMeta::realloc(
+        context,
+        array_ptr,
+        array_len_bytes_with_offset,
+        location,
+    )?)?;
+    entry.store(context, location, array_ptr, k1)?;
 
-    let has_tail_space = entry.cmpi(
+    let array_ptr = entry.gep(
         context,
-        CmpiPredicate::Ult,
-        array_end,
-        array_capacity,
         location,
+        array_ptr,
+        &[GepIndex::Const(calc_refcount_offset(tuple_layout) as i32)],
+        IntegerType::new(context, 8).into(),
     )?;
+    entry.memcpy(
+        context,
+        location,
+        entry.argument(0)?.into(),
+        array_ptr,
+        array_len_bytes,
+    );
+    entry.append_operation(ReallocBindingsMeta::free(
+        context,
+        entry.argument(0)?.into(),
+        location,
+    )?);
 
-    let handle_block = helper.append_block(Block::new(&[]));
-    let memmove_block = helper.append_block(Block::new(&[]));
-    let realloc_block = helper.append_block(Block::new(&[]));
-    let append_block = helper.append_block(Block::new(&[(array_ty, location)]));
-
-    entry.append_operation(cf::cond_br(
+    let value = entry.append_op_result(llvm::undef(
+        llvm::r#type::r#struct(context, &[ptr_ty, len_ty, len_ty, len_ty], false),
+        location,
+    ))?;
+    let value = entry.insert_values(
         context,
-        has_tail_space,
-        append_block,
-        handle_block,
-        &[entry.arg(0)?],
-        &[],
         location,
-    ));
+        value,
+        &[array_ptr, k0, array_len, array_len],
+    )?;
 
-    {
-        let k0 = handle_block.const_int(context, location, 0, 32)?;
-        let array_start =
-            handle_block.extract_value(context, location, entry.arg(0)?, len_ty, 1)?;
+    entry.append_operation(helper.br(0, &[value], location));
+    Ok(())
+}
 
-        let has_head_space =
-            handle_block.cmpi(context, CmpiPredicate::Ne, array_start, k0, location)?;
-        handle_block.append_operation(cf::cond_br(
-            context,
-            has_head_space,
-            memmove_block,
-            realloc_block,
-            &[],
-            &[],
-            location,
-        ));
-    }
+/// Generate MLIR operations for the `tuple_from_span` libfunc.
+///
+/// Note: The `&info.ty` field has the entire `[T; N]` tuple. It is not the `T` in `Array<T>`.
+pub fn build_tuple_from_span<'ctx, 'this>(
+    context: &'ctx Context,
+    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
+    entry: &'this Block<'ctx>,
+    location: Location<'ctx>,
+    helper: &LibfuncHelper<'ctx, 'this>,
+    metadata: &mut MetadataStorage,
+    info: &SignatureAndTypeConcreteLibfunc,
+) -> Result<()> {
+    metadata.get_or_insert_with(|| ReallocBindingsMeta::new(context, helper));
 
-    {
-        let array_start =
-            memmove_block.extract_value(context, location, entry.arg(0)?, len_ty, 1)?;
+    let elem_id = {
+        let CoreTypeConcrete::Snapshot(info) =
+            registry.get_type(&info.signature.param_signatures[0].ty)?
+        else {
+            return Err(Error::SierraAssert(SierraAssertError::BadTypeInfo));
+        };
+        let CoreTypeConcrete::Array(info) = registry.get_type(&info.ty)? else {
+            return Err(Error::SierraAssert(SierraAssertError::BadTypeInfo));
+        };
 
-        let start_offset =
-            memmove_block.extui(array_start, IntegerType::new(context, 64).into(), location)?;
-        let start_offset = memmove_block.muli(start_offset, elem_stride, location)?;
+        &info.ty
+    };
+    let tuple_len_const = {
+        let CoreTypeConcrete::Struct(param) = registry.get_type(&info.ty)? else {
+            return Err(Error::SierraAssert(SierraAssertError::BadTypeInfo));
+        };
 
-        let dst_ptr = memmove_block.extract_value(context, location, entry.arg(0)?, ptr_ty, 0)?;
-        let src_ptr = memmove_block.append_op_result(llvm::get_element_ptr_dynamic(
-            context,
-            dst_ptr,
-            &[start_offset],
-            IntegerType::new(context, 8).into(),
-            llvm::r#type::pointer(context, 0),
-            location,
-        ))?;
+        param.members.len()
+    };
 
-        let array_len =
-            memmove_block.append_op_result(arith::subi(array_end, array_start, location))?;
-        let memmove_len =
-            memmove_block.extui(array_len, IntegerType::new(context, 64).into(), location)?;
+    let ptr_ty = llvm::r#type::pointer(context, 0);
+    let len_ty = IntegerType::new(context, 32).into();
+    let (_, elem_layout) =
+        registry.build_type_with_layout(context, helper, registry, metadata, elem_id)?;
+    let (tuple_ty, tuple_layout) =
+        registry.build_type_with_layout(context, helper, registry, metadata, &info.ty)?;
 
-        let memmove_len = memmove_block.muli(memmove_len, elem_stride, location)?;
-        memmove_block.append_operation(
-            ods::llvm::intr_memmove(
-                context,
-                dst_ptr,
-                src_ptr,
-                memmove_len,
-                IntegerAttribute::new(IntegerType::new(context, 1).into(), 0),
-                location,
-            )
-            .into(),
-        );
+    let array_ptr = entry.extract_value(context, location, entry.argument(0)?.into(), ptr_ty, 0)?;
+    let array_start =
+        entry.extract_value(context, location, entry.argument(0)?.into(), len_ty, 1)?;
+    let array_end = entry.extract_value(context, location, entry.argument(0)?.into(), len_ty, 2)?;
 
-        let k0 = memmove_block.const_int_from_type(context, location, 0, len_ty)?;
-        let value = memmove_block.insert_value(context, location, entry.arg(0)?, k0, 1)?;
-        let value = memmove_block.insert_value(context, location, value, array_len, 2)?;
+    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
+    let tuple_len = entry.const_int_from_type(context, location, tuple_len_const, len_ty)?;
+    let len_matches = entry.append_op_result(arith::cmpi(
+        context,
+        CmpiPredicate::Eq,
+        array_len,
+        tuple_len,
+        location,
+    ))?;
 
-        memmove_block.append_operation(cf::br(append_block, &[value], location));
-    }
+    let valid_block = helper.append_block(Block::new(&[]));
+    let error_block = helper.append_block(Block::new(&[]));
+    entry.append_operation(cf::cond_br(
+        context,
+        len_matches,
+        valid_block,
+        error_block,
+        &[],
+        &[],
+        location,
+    ));
+
+    // Ensure the type's clone and drop implementations are registered.
+    registry.build_type(
+        context,
+        helper,
+        registry,
+        metadata,
+        &info.signature.param_signatures[0].ty,
+    )?;
 
     {
-        let k8 = realloc_block.const_int(context, location, 8, 32)?;
-        let k1024 = realloc_block.const_int(context, location, 1024, 32)?;
-
-        // Array allocation growth formula:
-        //   new_len = max(8, old_len + min(1024, 2 * old_len));
-        let new_capacity = realloc_block.shli(array_end, k1, location)?;
-        let new_capacity =
-            realloc_block.append_op_result(arith::minui(new_capacity, k1024, location))?;
-        let new_capacity = realloc_block.addi(new_capacity, array_end, location)?;
-        let new_capacity =
-            realloc_block.append_op_result(arith::maxui(new_capacity, k8, location))?;
-
-        let realloc_size = {
-            let new_capacity = realloc_block.extui(
-                new_capacity,
-                IntegerType::new(context, 64).into(),
-                location,
-            )?;
-            realloc_block.muli(new_capacity, elem_stride, location)?
-        };
+        let value_size = valid_block.const_int(context, location, tuple_layout.size(), 64)?;
 
-        let ptr = realloc_block.extract_value(context, location, entry.arg(0)?, ptr_ty, 0)?;
-        let ptr = realloc_block.append_op_result(ReallocBindingsMeta::realloc(
-            context,
-            ptr,
-            realloc_size,
-            location,
+        let value = valid_block.append_op_result(llvm::zero(ptr_ty, location))?;
+        let value = valid_block.append_op_result(ReallocBindingsMeta::realloc(
+            context, value, value_size, location,
         )?)?;
 
-        // No need to memmove, guaranteed by the fact that if we needed to memmove we'd have gone
-        // through the memmove block instead of reallocating.
-
-        let value = realloc_block.insert_value(context, location, entry.arg(0)?, ptr, 0)?;
-        let value = realloc_block.insert_value(context, location, value, new_capacity, 3)?;
-
-        realloc_block.append_operation(cf::br(append_block, &[value], location));
-    }
-
-    {
-        let ptr = append_block.extract_value(context, location, append_block.arg(0)?, ptr_ty, 0)?;
-        let array_end =
-            append_block.extract_value(context, location, append_block.arg(0)?, len_ty, 2)?;
+        let is_shared = is_shared(context, valid_block, location, array_ptr, elem_layout)?;
 
-        let offset =
-            append_block.extui(array_end, IntegerType::new(context, 64).into(), location)?;
-        let offset = append_block.muli(offset, elem_stride, location)?;
-        let ptr = append_block.append_op_result(llvm::get_element_ptr_dynamic(
-            context,
-            ptr,
-            &[offset],
-            IntegerType::new(context, 8).into(),
-            llvm::r#type::pointer(context, 0),
+        let array_start_offset = valid_block.append_op_result(arith::extui(
+            array_start,
+            IntegerType::new(context, 64).into(),
             location,
         ))?;
+        let array_start_offset = valid_block.append_op_result(arith::muli(
+            array_start_offset,
+            valid_block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?,
+            location,
+        ))?;
+        let array_ptr = valid_block.gep(
+            context,
+            location,
+            array_ptr,
+            &[GepIndex::Value(array_start_offset)],
+            IntegerType::new(context, 8).into(),
+        )?;
 
-        append_block.store(context, location, ptr, entry.arg(1)?)?;
-
-        let array_len = append_block.addi(array_end, k1, location)?;
-        let value =
-            append_block.insert_value(context, location, append_block.arg(0)?, array_len, 2)?;
-
-        append_block.append_operation(helper.br(0, &[value], location));
-    }
-
-    Ok(())
-}
+        valid_block.append_operation(scf::r#if(
+            is_shared,
+            &[],
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                match metadata.get::<DupOverridesMeta>() {
+                    Some(dup_overrides_meta) if dup_overrides_meta.is_overriden(&info.ty) => {
+                        let src_ptr = array_ptr;
+                        let dst_ptr = value;
+
+                        let value = block.load(context, location, src_ptr, tuple_ty)?;
+                        let values = dup_overrides_meta
+                            .invoke_override(context, &block, location, &info.ty, value)?;
+                        block.store(context, location, src_ptr, values.0)?;
+                        block.store(context, location, dst_ptr, values.1)?;
+                    }
+                    _ => block.memcpy(context, location, array_ptr, value, value_size),
+                }
 
-/// Generate MLIR operations for the `array_len` libfunc.
-pub fn build_len<'ctx, 'this>(
-    context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
-    entry: &'this Block<'ctx>,
-    location: Location<'ctx>,
-    helper: &LibfuncHelper<'ctx, 'this>,
-    metadata: &mut MetadataStorage,
-    info: &SignatureAndTypeConcreteLibfunc,
-) -> Result<()> {
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.param_signatures()[0].ty,
-    )?;
+                // The following unwrap should be unreachable because an array always has a drop
+                // implementation.
+                metadata
+                    .get::<DropOverridesMeta>()
+                    .unwrap()
+                    .invoke_override(
+                        context,
+                        &block,
+                        location,
+                        &info.signature.param_signatures[0].ty,
+                        entry.argument(0)?.into(),
+                    )?;
+
+                block.append_operation(scf::r#yield(&[], location));
+                region
+            },
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
 
-    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
-    let array_value = entry.arg(0)?;
+                block.memcpy(context, location, array_ptr, value, value_size);
 
-    let array_start = entry.extract_value(context, location, array_value, len_ty, 1)?;
-    let array_end = entry.extract_value(context, location, array_value, len_ty, 2)?;
+                let array_ptr = block.gep(
+                    context,
+                    location,
+                    array_ptr,
+                    &[GepIndex::Const(-(calc_refcount_offset(elem_layout) as i32))],
+                    IntegerType::new(context, 8).into(),
+                )?;
+                block.append_operation(ReallocBindingsMeta::free(context, array_ptr, location)?);
+
+                block.append_operation(scf::r#yield(&[], location));
+                region
+            },
+            location,
+        ));
 
-    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
+        valid_block.append_operation(helper.br(0, &[value], location));
+    }
 
-    match metadata.get::<DropOverridesMeta>() {
-        Some(drop_overrides_meta)
-            if drop_overrides_meta.is_overriden(&info.signature.param_signatures[0].ty) =>
-        {
-            drop_overrides_meta.invoke_override(
+    {
+        metadata
+            .get::<DropOverridesMeta>()
+            .ok_or(Error::MissingMetadata)?
+            .invoke_override(
                 context,
-                entry,
+                error_block,
                 location,
                 &info.signature.param_signatures[0].ty,
-                entry.arg(0)?,
+                entry.argument(0)?.into(),
             )?;
-        }
-        _ => {}
+
+        error_block.append_operation(helper.br(1, &[], location));
     }
 
-    entry.append_operation(helper.br(0, &[array_len], location));
     Ok(())
 }
 
-/// Generate MLIR operations for the `array_get` libfunc.
-pub fn build_get<'ctx, 'this>(
+/// Generate MLIR operations for the `array_append` libfunc.
+pub fn build_append<'ctx, 'this>(
     context: &'ctx Context,
     registry: &ProgramRegistry<CoreType, CoreLibfunc>,
     entry: &'this Block<'ctx>,
@@ -2886,720 +3375,1116 @@
     metadata: &mut MetadataStorage,
     info: &SignatureAndTypeConcreteLibfunc,
 ) -> Result<()> {
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
-
-    let range_check = super::increment_builtin_counter(context, entry, location, entry.arg(0)?)?;
-
-    let array_ty = registry.build_type(
+    /*
+     * 1. Check if shared.
+     * 2. If shared:
+     *   1. Deep clone with space for at least 1 extra element.
+     * 3. If not shared:
+     *   1. Either realloc, move or do nothing.
+     * 4. Append element.
+     */
+
+    metadata.get_or_insert_with(|| ReallocBindingsMeta::new(context, helper));
+
+    let self_ty = registry.build_type(
         context,
         helper,
         registry,
         metadata,
-        &info.param_signatures()[1].ty,
+        &info.signature.param_signatures[0].ty,
     )?;
 
-    let elem_ty = registry.get_type(&info.ty)?;
-    let elem_layout = elem_ty.layout(registry)?;
-    let elem_stride = elem_layout.pad_to_align().size();
-    let elem_ty = elem_ty.build(context, helper, registry, metadata, &info.ty)?;
+    let ptr_ty = llvm::r#type::pointer(context, 0);
+    let len_ty = IntegerType::new(context, 32).into();
 
-    let ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
-    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
+    let (elem_ty, elem_layout) =
+        registry.build_type_with_layout(context, helper, registry, metadata, &info.ty)?;
+    let elem_stride = entry.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
 
-    let value = entry.arg(1)?;
-    let index = entry.arg(2)?;
+    let k0 = entry.const_int(context, location, 0, 32)?;
+    let k1 = entry.const_int(context, location, 1, 32)?;
 
-    let array_start = entry.extract_value(context, location, value, len_ty, 1)?;
-    let array_end = entry.extract_value(context, location, value, len_ty, 2)?;
+    let array_ptr = entry.extract_value(context, location, entry.argument(0)?.into(), ptr_ty, 0)?;
+    let array_start =
+        entry.extract_value(context, location, entry.argument(0)?.into(), len_ty, 1)?;
+    let array_end = entry.extract_value(context, location, entry.argument(0)?.into(), len_ty, 2)?;
+    let array_capacity =
+        entry.extract_value(context, location, entry.argument(0)?.into(), len_ty, 3)?;
 
     let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
-    let is_valid = entry.cmpi(context, CmpiPredicate::Ult, index, array_len, location)?;
+    let array_size = entry.append_op_result(arith::extui(
+        array_len,
+        IntegerType::new(context, 64).into(),
+        location,
+    ))?;
+    let array_size = entry.append_op_result(arith::muli(array_size, elem_stride, location))?;
 
-    let valid_block = helper.append_block(Block::new(&[]));
-    let error_block = helper.append_block(Block::new(&[]));
-    entry.append_operation(cf::cond_br(
+    let data_offset = entry.append_op_result(arith::extui(
+        array_start,
+        IntegerType::new(context, 64).into(),
+        location,
+    ))?;
+    let data_offset = entry.append_op_result(arith::muli(data_offset, elem_stride, location))?;
+    let data_ptr = entry.gep(
         context,
-        is_valid,
-        valid_block,
-        error_block,
-        &[],
-        &[],
         location,
-    ));
+        array_ptr,
+        &[GepIndex::Value(data_offset)],
+        IntegerType::new(context, 8).into(),
+    )?;
 
-    {
-        let ptr = valid_block.extract_value(context, location, value, ptr_ty, 0)?;
+    fn compute_next_capacity<'ctx, 'this>(
+        context: &'ctx Context,
+        block: &'this Block<'ctx>,
+        location: Location<'ctx>,
+        elem_stride: Value<'ctx, 'this>,
+        array_end: Value<'ctx, 'this>,
+    ) -> Result<(Value<'ctx, 'this>, Value<'ctx, 'this>)> {
+        let len_ty = IntegerType::new(context, 32).into();
+
+        let k1 = block.const_int_from_type(context, location, 1, len_ty)?;
+        let k8 = block.const_int_from_type(context, location, 8, len_ty)?;
+        let k1024 = block.const_int_from_type(context, location, 1024, len_ty)?;
+
+        let realloc_len = block.append_op_result(arith::shli(array_end, k1, location))?;
+        let realloc_len = block.append_op_result(arith::minui(realloc_len, k1024, location))?;
+        let realloc_len = block.append_op_result(arith::addi(realloc_len, array_end, location))?;
+        let realloc_len = block.append_op_result(arith::maxui(realloc_len, k8, location))?;
+
+        let realloc_size = block.append_op_result(arith::extui(
+            realloc_len,
+            IntegerType::new(context, 64).into(),
+            location,
+        ))?;
+        let realloc_size =
+            block.append_op_result(arith::muli(realloc_size, elem_stride, location))?;
 
-        let array_start =
-            valid_block.extui(array_start, IntegerType::new(context, 64).into(), location)?;
-        let index = {
-            let index = valid_block.extui(index, IntegerType::new(context, 64).into(), location)?;
-            valid_block.addi(array_start, index, location)?
-        };
+        Result::Ok((realloc_len, realloc_size))
+    }
 
-        let elem_stride = valid_block.const_int(context, location, elem_stride, 64)?;
-        let elem_offset = valid_block.muli(elem_stride, index, location)?;
+    let is_empty = entry.append_op_result(arith::cmpi(
+        context,
+        CmpiPredicate::Eq,
+        array_capacity,
+        k0,
+        location,
+    ))?;
 
-        let elem_ptr = valid_block.gep(
-            context,
-            location,
-            ptr,
-            &[GepIndex::Value(elem_offset)],
-            IntegerType::new(context, 8).into(),
-        )?;
+    let is_shared = entry.append_op_result(scf::r#if(
+        is_empty,
+        &[IntegerType::new(context, 1).into()],
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-        let elem_size = valid_block.const_int(context, location, elem_layout.size(), 64)?;
+            let k0 = block.const_int(context, location, 0, 1)?;
 
-        let target_ptr = valid_block.append_op_result(
-            ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
-        )?;
-        let target_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
-            context, target_ptr, elem_size, location,
-        )?)?;
-        assert_nonnull(
-            context,
-            valid_block,
-            location,
-            target_ptr,
-            "realloc returned nullptr",
-        )?;
+            block.append_operation(scf::r#yield(&[k0], location));
+            region
+        },
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-        // There's no need to clone it since we're moving it out of the array.
-        valid_block.memcpy(context, location, elem_ptr, target_ptr, elem_size);
+            let is_shared = is_shared(context, entry, location, array_ptr, elem_layout)?;
 
-        match metadata.get::<DropOverridesMeta>() {
-            Some(drop_overrides_meta) if drop_overrides_meta.is_overriden(&info.ty) => {
-                let array_end =
-                    valid_block.extui(array_end, IntegerType::new(context, 64).into(), location)?;
+            block.append_operation(scf::r#yield(&[is_shared], location));
+            region
+        },
+        location,
+    ))?;
 
-                let array_start = valid_block.muli(array_start, elem_stride, location)?;
-                let array_end = valid_block.muli(array_end, elem_stride, location)?;
+    let value = entry.append_op_result(scf::r#if(
+        is_shared,
+        &[self_ty],
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-                valid_block.append_operation(scf::r#for(
-                    array_start,
-                    array_end,
-                    elem_stride,
-                    {
-                        let region = Region::new();
-                        let block = region.append_block(Block::new(&[(
-                            IntegerType::new(context, 64).into(),
-                            location,
-                        )]));
+            let has_space = block.append_op_result(arith::cmpi(
+                context,
+                CmpiPredicate::Ugt,
+                array_capacity,
+                array_len,
+                location,
+            ))?;
 
-                        let value_ptr = block.append_op_result(llvm::get_element_ptr_dynamic(
-                            context,
-                            ptr,
-                            &[block.arg(0)?],
-                            IntegerType::new(context, 8).into(),
-                            llvm::r#type::pointer(context, 0),
-                            location,
-                        ))?;
+            let op = block.append_operation(scf::r#if(
+                has_space,
+                &[len_ty, IntegerType::new(context, 64).into()],
+                {
+                    let region = Region::new();
+                    let block = region.append_block(Block::new(&[]));
 
-                        let is_target_element = block.append_op_result(
-                            ods::llvm::icmp(
-                                context,
-                                IntegerType::new(context, 1).into(),
-                                value_ptr,
-                                elem_ptr,
-                                IntegerAttribute::new(IntegerType::new(context, 64).into(), 0)
-                                    .into(),
-                                location,
-                            )
-                            .into(),
-                        )?;
-                        block.append_operation(scf::r#if(
-                            is_target_element,
-                            &[],
-                            {
-                                let region = Region::new();
-                                let block = region.append_block(Block::new(&[]));
+                    let clone_size = block.append_op_result(arith::extui(
+                        array_capacity,
+                        IntegerType::new(context, 64).into(),
+                        location,
+                    ))?;
+                    let clone_size =
+                        block.append_op_result(arith::muli(clone_size, elem_stride, location))?;
+
+                    block.append_operation(scf::r#yield(&[array_capacity, clone_size], location));
+                    region
+                },
+                {
+                    let region = Region::new();
+                    let block = region.append_block(Block::new(&[]));
+
+                    let (realloc_capacity, realloc_size) =
+                        compute_next_capacity(context, &block, location, elem_stride, array_end)?;
+
+                    block.append_operation(scf::r#yield(
+                        &[realloc_capacity, realloc_size],
+                        location,
+                    ));
+                    region
+                },
+                location,
+            ));
+            let clone_capacity = op.result(0)?.into();
+            let clone_size = op.result(1)?.into();
 
-                                block.append_operation(scf::r#yield(&[], location));
-                                region
-                            },
-                            {
-                                let region = Region::new();
-                                let block = region.append_block(Block::new(&[]));
+            let clone_size_with_refcount = block.append_op_result(arith::addi(
+                clone_size,
+                block.const_int(context, location, calc_refcount_offset(elem_layout), 64)?,
+                location,
+            ))?;
 
-                                let value = block.load(context, location, value_ptr, elem_ty)?;
-                                drop_overrides_meta
-                                    .invoke_override(context, &block, location, &info.ty, value)?;
+            let clone_ptr = block.append_op_result(llvm::zero(ptr_ty, location))?;
+            let clone_ptr = block.append_op_result(ReallocBindingsMeta::realloc(
+                context,
+                clone_ptr,
+                clone_size_with_refcount,
+                location,
+            )?)?;
+            block.store(context, location, clone_ptr, k1)?;
 
-                                block.append_operation(scf::r#yield(&[], location));
-                                region
-                            },
-                            location,
-                        ));
+            let clone_ptr = block.gep(
+                context,
+                location,
+                clone_ptr,
+                &[GepIndex::Const(calc_refcount_offset(elem_layout) as i32)],
+                IntegerType::new(context, 8).into(),
+            )?;
 
-                        block.append_operation(scf::r#yield(&[], location));
-                        region
-                    },
-                    location,
-                ));
-            }
-            _ => {}
-        }
-        valid_block.append_operation(ReallocBindingsMeta::free(context, ptr, location)?);
+            match metadata.get::<DupOverridesMeta>() {
+                Some(dup_overrides_meta) if dup_overrides_meta.is_overriden(&info.ty) => {
+                    let k0 = block.const_int(context, location, 0, 64)?;
+                    block.append_operation(scf::r#for(
+                        k0,
+                        array_size,
+                        elem_stride,
+                        {
+                            let region = Region::new();
+                            let block = region.append_block(Block::new(&[(
+                                IntegerType::new(context, 64).into(),
+                                location,
+                            )]));
 
-        valid_block.append_operation(helper.br(0, &[range_check, target_ptr], location));
-    }
+                            let offset = block.argument(0)?.into();
+                            let source_ptr = block.gep(
+                                context,
+                                location,
+                                data_ptr,
+                                &[GepIndex::Value(offset)],
+                                IntegerType::new(context, 8).into(),
+                            )?;
+                            let target_ptr = block.gep(
+                                context,
+                                location,
+                                clone_ptr,
+                                &[GepIndex::Value(offset)],
+                                IntegerType::new(context, 8).into(),
+                            )?;
+
+                            let value = block.load(context, location, source_ptr, elem_ty)?;
+                            let values = dup_overrides_meta
+                                .invoke_override(context, &block, location, &info.ty, value)?;
+                            block.store(context, location, source_ptr, values.0)?;
+                            block.store(context, location, target_ptr, values.1)?;
+
+                            block.append_operation(scf::r#yield(&[], location));
+                            region
+                        },
+                        location,
+                    ));
+                }
+                _ => block.memcpy(context, location, array_ptr, clone_ptr, clone_size),
+            }
 
-    metadata
-        .get::<DropOverridesMeta>()
-        .ok_or(Error::MissingMetadata)?
-        .invoke_override(
-            context,
-            error_block,
-            location,
-            &info.param_signatures()[1].ty,
-            value,
-        )?;
-    error_block.append_operation(helper.br(1, &[range_check], location));
+            let clone_value = block.append_op_result(llvm::zero(self_ty, location))?;
+            let clone_value = block.insert_values(
+                context,
+                location,
+                clone_value,
+                &[clone_ptr, k0, array_len, clone_capacity],
+            )?;
 
-    Ok(())
-}
+            metadata
+                .get::<DropOverridesMeta>()
+                .unwrap()
+                .invoke_override(
+                    context,
+                    &block,
+                    location,
+                    &info.signature.param_signatures[0].ty,
+                    entry.argument(0)?.into(),
+                )?;
 
-/// Generate MLIR operations for the `array_pop_front` libfunc.
-pub fn build_pop_front<'ctx, 'this>(
-    context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
-    entry: &'this Block<'ctx>,
-    location: Location<'ctx>,
-    helper: &LibfuncHelper<'ctx, 'this>,
-    metadata: &mut MetadataStorage,
-    info: &SignatureAndTypeConcreteLibfunc,
-) -> Result<()> {
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
+            block.append_operation(scf::r#yield(&[clone_value], location));
+            region
+        },
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.param_signatures()[0].ty,
-    )?;
+            let has_tail_space = block.append_op_result(arith::cmpi(
+                context,
+                CmpiPredicate::Ult,
+                array_end,
+                array_capacity,
+                location,
+            ))?;
+            let array_value = block.append_op_result(scf::r#if(
+                has_tail_space,
+                &[self_ty],
+                {
+                    let region = Region::new();
+                    let block = region.append_block(Block::new(&[]));
+
+                    block.append_operation(scf::r#yield(&[entry.argument(0)?.into()], location));
+                    region
+                },
+                {
+                    let region = Region::new();
+                    let block = region.append_block(Block::new(&[]));
+
+                    let has_head_space = block.append_op_result(arith::cmpi(
+                        context,
+                        CmpiPredicate::Ugt,
+                        array_start,
+                        k0,
+                        location,
+                    ))?;
+                    let array_value = block.append_op_result(scf::r#if(
+                        has_head_space,
+                        &[self_ty],
+                        {
+                            let region = Region::new();
+                            let block = region.append_block(Block::new(&[]));
+
+                            block.append_operation(
+                                ods::llvm::intr_memmove(
+                                    context,
+                                    array_ptr,
+                                    data_ptr,
+                                    array_size,
+                                    IntegerAttribute::new(IntegerType::new(context, 1).into(), 0),
+                                    location,
+                                )
+                                .into(),
+                            );
+
+                            let array_value = block.insert_value(
+                                context,
+                                location,
+                                entry.argument(0)?.into(),
+                                k0,
+                                1,
+                            )?;
+                            let array_value =
+                                block.insert_value(context, location, array_value, array_len, 2)?;
+
+                            block.append_operation(scf::r#yield(&[array_value], location));
+                            region
+                        },
+                        {
+                            let region = Region::new();
+                            let block = region.append_block(Block::new(&[]));
+
+                            let offset_array_ptr = block.gep(
+                                context,
+                                location,
+                                array_ptr,
+                                &[GepIndex::Const(-(calc_refcount_offset(elem_layout) as i32))],
+                                IntegerType::new(context, 8).into(),
+                            )?;
+                            let array_ptr = block.append_op_result(arith::select(
+                                is_empty,
+                                array_ptr,
+                                offset_array_ptr,
+                                location,
+                            ))?;
 
-    let elem_ty = registry.get_type(&info.ty)?;
-    let elem_layout = elem_ty.layout(registry)?;
+                            let (realloc_len, realloc_size) = compute_next_capacity(
+                                context,
+                                &block,
+                                location,
+                                elem_stride,
+                                array_end,
+                            )?;
+                            let realloc_size_with_refcount =
+                                block.append_op_result(arith::addi(
+                                    realloc_size,
+                                    block.const_int(
+                                        context,
+                                        location,
+                                        calc_refcount_offset(elem_layout),
+                                        64,
+                                    )?,
+                                    location,
+                                ))?;
+
+                            let array_ptr =
+                                block.append_op_result(ReallocBindingsMeta::realloc(
+                                    context,
+                                    array_ptr,
+                                    realloc_size_with_refcount,
+                                    location,
+                                )?)?;
+
+                            let ref_count = block.load(context, location, array_ptr, len_ty)?;
+                            let ref_count = block.append_op_result(arith::select(
+                                is_empty, k1, ref_count, location,
+                            ))?;
+                            block.store(context, location, array_ptr, ref_count)?;
+
+                            let array_ptr = block.gep(
+                                context,
+                                location,
+                                array_ptr,
+                                &[GepIndex::Const(calc_refcount_offset(elem_layout) as i32)],
+                                IntegerType::new(context, 8).into(),
+                            )?;
 
-    let ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
-    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
+                            let array_value = block.insert_value(
+                                context,
+                                location,
+                                entry.argument(0)?.into(),
+                                array_ptr,
+                                0,
+                            )?;
+                            let array_value = block.insert_value(
+                                context,
+                                location,
+                                array_value,
+                                realloc_len,
+                                3,
+                            )?;
+
+                            block.append_operation(scf::r#yield(&[array_value], location));
+                            region
+                        },
+                        location,
+                    ))?;
+
+                    block.append_operation(scf::r#yield(&[array_value], location));
+                    region
+                },
+                location,
+            ))?;
 
-    let value = entry.arg(0)?;
+            block.append_operation(scf::r#yield(&[array_value], location));
+            region
+        },
+        location,
+    ))?;
 
-    let array_start = entry.extract_value(context, location, value, len_ty, 1)?;
+    let array_ptr = entry.extract_value(context, location, value, ptr_ty, 0)?;
     let array_end = entry.extract_value(context, location, value, len_ty, 2)?;
 
-    let is_empty = entry.cmpi(context, CmpiPredicate::Eq, array_start, array_end, location)?;
-
-    let valid_block = helper.append_block(Block::new(&[]));
-    let empty_block = helper.append_block(Block::new(&[]));
-    entry.append_operation(cf::cond_br(
+    let data_offset = entry.append_op_result(arith::extui(
+        array_end,
+        IntegerType::new(context, 64).into(),
+        location,
+    ))?;
+    let data_offset = entry.append_op_result(arith::muli(data_offset, elem_stride, location))?;
+    let data_ptr = entry.gep(
         context,
-        is_empty,
-        empty_block,
-        valid_block,
-        &[],
-        &[],
         location,
-    ));
-
-    {
-        let ptr = valid_block.extract_value(context, location, value, ptr_ty, 0)?;
-
-        let elem_size = valid_block.const_int(context, location, elem_layout.size(), 64)?;
-        let elem_offset =
-            valid_block.extui(array_start, IntegerType::new(context, 64).into(), location)?;
-        let elem_offset = valid_block.muli(elem_offset, elem_size, location)?;
-        let ptr = valid_block.append_op_result(llvm::get_element_ptr_dynamic(
-            context,
-            ptr,
-            &[elem_offset],
-            IntegerType::new(context, 8).into(),
-            llvm::r#type::pointer(context, 0),
-            location,
-        ))?;
-
-        let target_ptr = valid_block.append_op_result(
-            ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
-        )?;
-        let target_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
-            context, target_ptr, elem_size, location,
-        )?)?;
-        assert_nonnull(
-            context,
-            valid_block,
-            location,
-            target_ptr,
-            "realloc returned nullptr",
-        )?;
-
-        valid_block.memcpy(context, location, ptr, target_ptr, elem_size);
-
-        let k1 = valid_block.const_int(context, location, 1, 32)?;
-        let new_start = valid_block.addi(array_start, k1, location)?;
-        let value = valid_block.insert_value(context, location, value, new_start, 1)?;
+        array_ptr,
+        &[GepIndex::Value(data_offset)],
+        IntegerType::new(context, 8).into(),
+    )?;
+    entry.store(context, location, data_ptr, entry.argument(1)?.into())?;
 
-        valid_block.append_operation(helper.br(0, &[value, target_ptr], location));
-    }
+    let array_end = entry.append_op_result(arith::addi(array_end, k1, location))?;
+    let value = entry.insert_value(context, location, value, array_end, 2)?;
 
-    empty_block.append_operation(helper.br(1, &[value], location));
+    entry.append_operation(helper.br(0, &[value], location));
     Ok(())
 }
 
-/// Generate MLIR operations for the `array_pop_front_consume` libfunc.
-pub fn build_pop_front_consume<'ctx, 'this>(
+#[derive(Clone, Copy)]
+enum PopInfo<'a> {
+    Single(&'a SignatureAndTypeConcreteLibfunc),
+    Multi(&'a ConcreteMultiPopLibfunc),
+}
+
+/// Generate MLIR operations for the `array_pop_*` libfuncs.
+///
+/// Template arguments:
+///   - Consume: Whether to consume or not the array on failure.
+///   - Reverse: False for front-popping, true for back-popping.
+///
+/// The `info` argument contains how many items to pop.
+fn build_pop<'ctx, 'this, const CONSUME: bool, const REVERSE: bool>(
     context: &'ctx Context,
     registry: &ProgramRegistry<CoreType, CoreLibfunc>,
     entry: &'this Block<'ctx>,
     location: Location<'ctx>,
     helper: &LibfuncHelper<'ctx, 'this>,
     metadata: &mut MetadataStorage,
-    info: &SignatureAndTypeConcreteLibfunc,
+    info: PopInfo,
 ) -> Result<()> {
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
+    /*
+     * 1. Check if there's enough data to pop.
+     * 2. If there is not enough data, maybe consume and return.
+     * 3. Allocate output.
+     * 4. Clone or copy the popped data.
+     *    - Clone if shared.
+     *    - Copy if not shared.
+     */
+
+    metadata.get_or_insert_with(|| ReallocBindingsMeta::new(context, helper));
+
+    let ptr_ty = llvm::r#type::pointer(context, 0);
+    let len_ty = IntegerType::new(context, 32).into();
 
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.param_signatures()[0].ty,
-    )?;
+    let (self_ty, elem_ty, array_value, extract_len, mut branch_values) = match info {
+        PopInfo::Single(info) => (
+            &info.signature.param_signatures[0].ty,
+            &info.ty,
+            entry.argument(0)?.into(),
+            1,
+            Vec::new(),
+        ),
+        PopInfo::Multi(ConcreteMultiPopLibfunc {
+            popped_ty,
+            signature,
+        }) => {
+            let range_check = super::increment_builtin_counter(
+                context,
+                entry,
+                location,
+                entry.argument(0)?.into(),
+            )?;
 
-    let elem_ty = registry.get_type(&info.ty)?;
-    let elem_layout = elem_ty.layout(registry)?;
+            let CoreTypeConcrete::Snapshot(InfoAndTypeConcreteType { ty, .. }) =
+                registry.get_type(&signature.param_signatures[1].ty)?
+            else {
+                return Err(Error::SierraAssert(SierraAssertError::BadTypeInfo));
+            };
+
+            let CoreTypeConcrete::Array(InfoAndTypeConcreteType { ty, .. }) =
+                registry.get_type(ty)?
+            else {
+                return Err(Error::SierraAssert(SierraAssertError::BadTypeInfo));
+            };
+
+            let CoreTypeConcrete::Struct(info) = registry.get_type(popped_ty)? else {
+                return Err(Error::SierraAssert(SierraAssertError::BadTypeInfo));
+            };
+            debug_assert!(info.members.iter().all(|member_ty| member_ty == ty));
+
+            (
+                &signature.param_signatures[1].ty,
+                ty,
+                entry.argument(1)?.into(),
+                info.members.len(),
+                vec![range_check],
+            )
+        }
+    };
 
-    let ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
-    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
+    registry.build_type(context, helper, registry, metadata, self_ty)?;
+    let extract_len_value = entry.const_int_from_type(context, location, extract_len, len_ty)?;
 
-    let value = entry.arg(0)?;
+    let (elem_type, elem_layout) =
+        registry.build_type_with_layout(context, helper, registry, metadata, elem_ty)?;
 
-    let array_start = entry.extract_value(context, location, value, len_ty, 1)?;
-    let array_end = entry.extract_value(context, location, value, len_ty, 2)?;
+    let array_start = entry.extract_value(context, location, array_value, len_ty, 1)?;
+    let array_end = entry.extract_value(context, location, array_value, len_ty, 2)?;
 
-    let is_empty = entry.cmpi(context, CmpiPredicate::Eq, array_start, array_end, location)?;
+    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
+    let has_enough_data = entry.append_op_result(arith::cmpi(
+        context,
+        CmpiPredicate::Ule,
+        extract_len_value,
+        array_len,
+        location,
+    ))?;
 
     let valid_block = helper.append_block(Block::new(&[]));
-    let empty_block = helper.append_block(Block::new(&[]));
+    let error_block = helper.append_block(Block::new(&[]));
     entry.append_operation(cf::cond_br(
         context,
-        is_empty,
-        empty_block,
+        has_enough_data,
         valid_block,
+        error_block,
         &[],
         &[],
         location,
     ));
 
     {
-        let ptr = valid_block.extract_value(context, location, value, ptr_ty, 0)?;
+        // Clone branch_values so that it doesn't interfere with the other branch.
+        let mut branch_values = branch_values.clone();
 
-        let elem_size = valid_block.const_int(context, location, elem_layout.size(), 64)?;
-        let elem_offset =
-            valid_block.extui(array_start, IntegerType::new(context, 64).into(), location)?;
-        let elem_offset = valid_block.muli(elem_offset, elem_size, location)?;
-        let ptr = valid_block.append_op_result(llvm::get_element_ptr_dynamic(
-            context,
-            ptr,
-            &[elem_offset],
-            IntegerType::new(context, 8).into(),
-            llvm::r#type::pointer(context, 0),
-            location,
-        ))?;
-
-        let target_ptr = valid_block.append_op_result(
-            ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
-        )?;
-        let target_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
-            context, target_ptr, elem_size, location,
-        )?)?;
-        assert_nonnull(
+        let value_size = valid_block.const_int(
             context,
-            valid_block,
             location,
-            target_ptr,
-            "realloc returned nullptr",
+            elem_layout.pad_to_align().size() * extract_len,
+            64,
         )?;
 
-        valid_block.memcpy(context, location, ptr, target_ptr, elem_size);
+        let value_ptr = valid_block.append_op_result(llvm::zero(ptr_ty, location))?;
+        let value_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
+            context, value_ptr, value_size, location,
+        )?)?;
 
-        let k1 = valid_block.const_int(context, location, 1, 32)?;
-        let new_start = valid_block.addi(array_start, k1, location)?;
-        let value = valid_block.insert_value(context, location, value, new_start, 1)?;
+        let array_ptr = valid_block.extract_value(context, location, array_value, ptr_ty, 0)?;
+        let is_shared = is_shared(context, valid_block, location, array_ptr, elem_layout)?;
 
-        valid_block.append_operation(helper.br(0, &[value, target_ptr], location));
-    }
+        let data_ptr = {
+            let offset_elems = if REVERSE {
+                valid_block.append_op_result(arith::subi(array_end, extract_len_value, location))?
+            } else {
+                array_start
+            };
 
-    metadata
-        .get::<DropOverridesMeta>()
-        .ok_or(Error::MissingMetadata)?
-        .invoke_override(
-            context,
-            empty_block,
-            location,
-            &info.param_signatures()[0].ty,
-            value,
-        )?;
-    empty_block.append_operation(helper.br(1, &[], location));
-
-    Ok(())
-}
-
-/// Generate MLIR operations for the `array_snapshot_pop_front` libfunc.
-pub fn build_snapshot_pop_front<'ctx, 'this>(
-    context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
-    entry: &'this Block<'ctx>,
-    location: Location<'ctx>,
-    helper: &LibfuncHelper<'ctx, 'this>,
-    metadata: &mut MetadataStorage,
-    info: &SignatureAndTypeConcreteLibfunc,
-) -> Result<()> {
-    build_pop_front(context, registry, entry, location, helper, metadata, info)
-}
+            let offset = valid_block.append_op_result(arith::extui(
+                offset_elems,
+                IntegerType::new(context, 64).into(),
+                location,
+            ))?;
+            let elem_stride =
+                valid_block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
+            let offset =
+                valid_block.append_op_result(arith::muli(offset, elem_stride, location))?;
 
-/// Generate MLIR operations for the `array_snapshot_pop_back` libfunc.
-pub fn build_snapshot_pop_back<'ctx, 'this>(
-    context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
-    entry: &'this Block<'ctx>,
-    location: Location<'ctx>,
-    helper: &LibfuncHelper<'ctx, 'this>,
-    metadata: &mut MetadataStorage,
-    info: &SignatureAndTypeConcreteLibfunc,
-) -> Result<()> {
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
+            valid_block.gep(
+                context,
+                location,
+                array_ptr,
+                &[GepIndex::Value(offset)],
+                IntegerType::new(context, 8).into(),
+            )?
+        };
 
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.param_signatures()[0].ty,
-    )?;
+        let new_array_ptr = valid_block.append_op_result(scf::r#if(
+            is_shared,
+            &[ptr_ty],
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                let k0 = block.const_int(context, location, 0, 64)?;
+                let k1 = block.const_int_from_type(context, location, 1, len_ty)?;
+
+                let elem_stride =
+                    block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
+                match metadata.get::<DupOverridesMeta>() {
+                    Some(dup_overrides_meta) if dup_overrides_meta.is_overriden(elem_ty) => {
+                        block.append_operation(scf::r#for(
+                            k0,
+                            value_size,
+                            elem_stride,
+                            {
+                                let region = Region::new();
+                                let block = region.append_block(Block::new(&[(
+                                    IntegerType::new(context, 64).into(),
+                                    location,
+                                )]));
+
+                                let offset = block.argument(0)?.into();
+                                let source_ptr = block.gep(
+                                    context,
+                                    location,
+                                    data_ptr,
+                                    &[GepIndex::Value(offset)],
+                                    IntegerType::new(context, 8).into(),
+                                )?;
+                                let target_ptr = block.gep(
+                                    context,
+                                    location,
+                                    value_ptr,
+                                    &[GepIndex::Value(offset)],
+                                    IntegerType::new(context, 8).into(),
+                                )?;
+
+                                let value = block.load(context, location, source_ptr, elem_type)?;
+                                let values = dup_overrides_meta
+                                    .invoke_override(context, &block, location, elem_ty, value)?;
+                                block.store(context, location, source_ptr, values.0)?;
+                                block.store(context, location, target_ptr, values.1)?;
 
-    let elem_ty = registry.get_type(&info.ty)?;
-    let elem_layout = elem_ty.layout(registry)?;
+                                block.append_operation(scf::r#yield(&[], location));
+                                region
+                            },
+                            location,
+                        ));
+                    }
+                    _ => block.memcpy(context, location, data_ptr, value_ptr, value_size),
+                }
 
-    let ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
-    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
+                let array_ptr = {
+                    let array_len_bytes =
+                        block.append_op_result(arith::subi(array_len, k1, location))?;
+                    let array_len_bytes = block.append_op_result(arith::extui(
+                        array_len_bytes,
+                        IntegerType::new(context, 64).into(),
+                        location,
+                    ))?;
+                    let array_len_bytes = block.append_op_result(arith::muli(
+                        array_len_bytes,
+                        elem_stride,
+                        location,
+                    ))?;
+                    let array_len_bytes = block.append_op_result(arith::addi(
+                        array_len_bytes,
+                        block.const_int(
+                            context,
+                            location,
+                            calc_refcount_offset(elem_layout),
+                            64,
+                        )?,
+                        location,
+                    ))?;
+
+                    let clone_ptr = block.append_op_result(llvm::zero(ptr_ty, location))?;
+                    let clone_ptr = block.append_op_result(ReallocBindingsMeta::realloc(
+                        context,
+                        clone_ptr,
+                        array_len_bytes,
+                        location,
+                    )?)?;
+                    block.store(context, location, clone_ptr, k1)?;
+
+                    let clone_ptr = block.gep(
+                        context,
+                        location,
+                        clone_ptr,
+                        &[GepIndex::Const(calc_refcount_offset(elem_layout) as i32)],
+                        IntegerType::new(context, 8).into(),
+                    )?;
+
+                    let data_ptr = if REVERSE {
+                        data_ptr
+                    } else {
+                        let offset = block.append_op_result(arith::extui(
+                            extract_len_value,
+                            IntegerType::new(context, 64).into(),
+                            location,
+                        ))?;
+                        let offset =
+                            block.append_op_result(arith::muli(offset, elem_stride, location))?;
 
-    let value = entry.arg(0)?;
+                        block.gep(
+                            context,
+                            location,
+                            array_ptr,
+                            &[GepIndex::Value(offset)],
+                            IntegerType::new(context, 8).into(),
+                        )?
+                    };
+
+                    let others_len = block.append_op_result(arith::subi(
+                        array_len,
+                        extract_len_value,
+                        location,
+                    ))?;
+                    let others_len = block.append_op_result(arith::extui(
+                        others_len,
+                        IntegerType::new(context, 64).into(),
+                        location,
+                    ))?;
+                    let others_size =
+                        block.append_op_result(arith::muli(others_len, elem_stride, location))?;
+
+                    match metadata.get::<DupOverridesMeta>() {
+                        Some(dup_overrides_meta) => {
+                            block.append_operation(scf::r#for(
+                                k0,
+                                others_size,
+                                elem_stride,
+                                {
+                                    let region = Region::new();
+                                    let block = region.append_block(Block::new(&[(
+                                        IntegerType::new(context, 64).into(),
+                                        location,
+                                    )]));
+
+                                    let offset = block.argument(0)?.into();
+                                    let source_ptr = block.gep(
+                                        context,
+                                        location,
+                                        data_ptr,
+                                        &[GepIndex::Value(offset)],
+                                        IntegerType::new(context, 8).into(),
+                                    )?;
+                                    let target_ptr = block.gep(
+                                        context,
+                                        location,
+                                        clone_ptr,
+                                        &[GepIndex::Value(offset)],
+                                        IntegerType::new(context, 8).into(),
+                                    )?;
+
+                                    let value =
+                                        block.load(context, location, source_ptr, elem_type)?;
+                                    let values = dup_overrides_meta.invoke_override(
+                                        context, &block, location, elem_ty, value,
+                                    )?;
+                                    block.store(context, location, source_ptr, values.0)?;
+                                    block.store(context, location, target_ptr, values.1)?;
+
+                                    block.append_operation(scf::r#yield(&[], location));
+                                    region
+                                },
+                                location,
+                            ));
+                        }
+                        _ => block.memcpy(context, location, data_ptr, clone_ptr, others_size),
+                    }
 
-    let array_start = entry.extract_value(context, location, value, len_ty, 1)?;
-    let array_end = entry.extract_value(context, location, value, len_ty, 2)?;
-    let is_empty = entry.cmpi(context, CmpiPredicate::Eq, array_start, array_end, location)?;
+                    metadata
+                        .get::<DropOverridesMeta>()
+                        .unwrap()
+                        .invoke_override(context, &block, location, self_ty, array_value)?;
 
-    let valid_block = helper.append_block(Block::new(&[]));
-    let empty_block = helper.append_block(Block::new(&[]));
-    entry.append_operation(cf::cond_br(
-        context,
-        is_empty,
-        empty_block,
-        valid_block,
-        &[],
-        &[],
-        location,
-    ));
+                    clone_ptr
+                };
 
-    {
-        let k1 = valid_block.const_int(context, location, 1, 32)?;
-        let new_end = valid_block.append_op_result(arith::subi(array_end, k1, location))?;
+                block.append_operation(scf::r#yield(&[array_ptr], location));
+                region
+            },
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
 
-        let ptr = valid_block.extract_value(context, location, value, ptr_ty, 0)?;
+                block.memcpy(context, location, data_ptr, value_ptr, value_size);
 
-        let elem_size = valid_block.const_int(context, location, elem_layout.size(), 64)?;
-        let elem_offset =
-            valid_block.extui(new_end, IntegerType::new(context, 64).into(), location)?;
-        let elem_offset = valid_block.muli(elem_offset, elem_size, location)?;
-        let ptr = valid_block.append_op_result(llvm::get_element_ptr_dynamic(
-            context,
-            ptr,
-            &[elem_offset],
-            IntegerType::new(context, 8).into(),
-            llvm::r#type::pointer(context, 0),
+                block.append_operation(scf::r#yield(&[array_ptr], location));
+                region
+            },
             location,
         ))?;
 
-        let target_ptr = valid_block.append_op_result(
-            ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
+        let array_value =
+            valid_block.insert_value(context, location, array_value, new_array_ptr, 0)?;
+
+        let has_realloc = valid_block.append_op_result(
+            ods::llvm::icmp(
+                context,
+                IntegerType::new(context, 1).into(),
+                array_ptr,
+                new_array_ptr,
+                IntegerAttribute::new(IntegerType::new(context, 64).into(), 1).into(),
+                location,
+            )
+            .into(),
         )?;
-        let target_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
-            context, target_ptr, elem_size, location,
-        )?)?;
-        assert_nonnull(
-            context,
-            valid_block,
+        let array_value = valid_block.append_op_result(scf::r#if(
+            has_realloc,
+            &[array_value.r#type()],
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                let k0 = block.const_int_from_type(context, location, 0, len_ty)?;
+                let array_len =
+                    block.append_op_result(arith::subi(array_len, extract_len_value, location))?;
+
+                let array_value = block.insert_value(context, location, array_value, k0, 1)?;
+                let array_value =
+                    block.insert_value(context, location, array_value, array_len, 2)?;
+                let array_value =
+                    block.insert_value(context, location, array_value, array_len, 3)?;
+
+                block.append_operation(scf::r#yield(&[array_value], location));
+                region
+            },
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                let array_value = if REVERSE {
+                    let array_end = block.append_op_result(arith::subi(
+                        array_end,
+                        extract_len_value,
+                        location,
+                    ))?;
+                    block.insert_value(context, location, array_value, array_end, 2)?
+                } else {
+                    let array_start = block.append_op_result(arith::addi(
+                        array_start,
+                        extract_len_value,
+                        location,
+                    ))?;
+                    block.insert_value(context, location, array_value, array_start, 1)?
+                };
+
+                block.append_operation(scf::r#yield(&[array_value], location));
+                region
+            },
             location,
-            target_ptr,
-            "realloc returned nullptr",
-        )?;
+        ))?;
+
+        branch_values.push(array_value);
+        branch_values.push(value_ptr);
 
-        valid_block.memcpy(context, location, ptr, target_ptr, elem_size);
+        valid_block.append_operation(helper.br(0, &branch_values, location));
+    }
 
-        let value = valid_block.insert_value(context, location, value, new_end, 2)?;
+    {
+        if CONSUME {
+            let self_ty = match info {
+                PopInfo::Single(info) => &info.signature.param_signatures[0].ty,
+                PopInfo::Multi(info) => &info.signature.param_signatures[1].ty,
+            };
+
+            metadata
+                .get::<DropOverridesMeta>()
+                .unwrap()
+                .invoke_override(context, error_block, location, self_ty, array_value)?;
+        } else {
+            branch_values.push(array_value);
+        }
 
-        valid_block.append_operation(helper.br(0, &[value, target_ptr], location));
+        error_block.append_operation(helper.br(1, &branch_values, location));
     }
 
-    empty_block.append_operation(helper.br(1, &[value], location));
     Ok(())
 }
 
-pub fn build_snapshot_multi_pop_front<'ctx, 'this>(
+/// Generate MLIR operations for the `array_get` libfunc.
+pub fn build_get<'ctx, 'this>(
     context: &'ctx Context,
     registry: &ProgramRegistry<CoreType, CoreLibfunc>,
     entry: &'this Block<'ctx>,
     location: Location<'ctx>,
     helper: &LibfuncHelper<'ctx, 'this>,
     metadata: &mut MetadataStorage,
-    info: &ConcreteMultiPopLibfunc,
+    info: &SignatureAndTypeConcreteLibfunc,
 ) -> Result<()> {
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
-
-    let range_check = entry.arg(0)?;
-
-    // Get type information
+    let ptr_ty = llvm::r#type::pointer(context, 0);
+    let len_ty = IntegerType::new(context, 32).into();
 
-    let array_ty = registry.build_type(
+    // Build the type so that the drop impl invocation works properly.
+    registry.build_type(
         context,
         helper,
         registry,
         metadata,
-        &info.param_signatures()[1].ty,
+        &info.signature.param_signatures[1].ty,
     )?;
 
-    let popped_cty = registry.get_type(&info.popped_ty)?;
-    let popped_size = popped_cty.layout(registry)?.size();
-    let popped_size_value = entry.const_int(context, location, popped_size, 64)?;
-
-    let popped_ctys = popped_cty
-        .fields()
-        .expect("popped type should be a tuple (ergo, has fields)");
-    let popped_len = popped_ctys.len();
-
-    let array_ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
-    let array_start_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
-    let array_end_ty = crate::ffi::get_struct_field_type_at(&array_ty, 2);
+    let range_check =
+        super::increment_builtin_counter(context, entry, location, entry.argument(0)?.into())?;
 
-    // Get array information
+    let array_start =
+        entry.extract_value(context, location, entry.argument(1)?.into(), len_ty, 1)?;
+    let array_end = entry.extract_value(context, location, entry.argument(1)?.into(), len_ty, 2)?;
 
-    let array = entry.arg(1)?;
-    let array_ptr = entry.extract_value(context, location, array, array_ptr_ty, 0)?;
-    let array_start = entry.extract_value(context, location, array, array_start_ty, 1)?;
-    let array_end = entry.extract_value(context, location, array, array_end_ty, 2)?;
-
-    // Check if operation is valid:
-    // if array.end - array.start < popped_len {
-    //     return
-    // }
-
-    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
-    let popped_len_value = entry.const_int(context, location, popped_len, 32)?;
-    let is_valid = entry.cmpi(
+    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
+    let is_valid = entry.append_op_result(arith::cmpi(
         context,
-        CmpiPredicate::Uge,
+        CmpiPredicate::Ult,
+        entry.argument(2)?.into(),
         array_len,
-        popped_len_value,
         location,
-    )?;
+    ))?;
 
     let valid_block = helper.append_block(Block::new(&[]));
-    let invalid_block = helper.append_block(Block::new(&[]));
-
+    let error_block = helper.append_block(Block::new(&[]));
     entry.append_operation(cf::cond_br(
         context,
         is_valid,
         valid_block,
-        invalid_block,
+        error_block,
         &[],
         &[],
         location,
     ));
 
     {
-        // Get pointer to first element to pop
-
-        let popped_ptr = {
-            let single_popped_ty =
-                registry.build_type(context, helper, registry, metadata, &popped_ctys[0])?;
-
-            valid_block.append_op_result(llvm::get_element_ptr_dynamic(
-                context,
-                array_ptr,
-                &[array_start],
-                single_popped_ty,
-                llvm::r#type::pointer(context, 0),
-                location,
-            ))?
-        };
-
-        // Allocate memory for return array
-
-        let return_ptr = {
-            let null_ptr = valid_block.append_op_result(
-                ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
-            )?;
-            valid_block.append_op_result(ReallocBindingsMeta::realloc(
-                context,
-                null_ptr,
-                popped_size_value,
-                location,
-            )?)?
-        };
-
-        valid_block.memcpy(context, location, popped_ptr, return_ptr, popped_size_value);
-
-        // Update array start (removing popped elements)
-
-        let array = {
-            let new_array_start = valid_block.addi(array_start, popped_len_value, location)?;
-
-            valid_block.insert_value(context, location, array, new_array_start, 1)?
-        };
-
-        valid_block.append_operation(helper.br(0, &[range_check, array, return_ptr], location));
-    }
-
-    invalid_block.append_operation(helper.br(1, &[range_check, array], location));
-
-    Ok(())
-}
-
-pub fn build_snapshot_multi_pop_back<'ctx, 'this>(
-    context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
-    entry: &'this Block<'ctx>,
-    location: Location<'ctx>,
-    helper: &LibfuncHelper<'ctx, 'this>,
-    metadata: &mut MetadataStorage,
-    info: &ConcreteMultiPopLibfunc,
-) -> Result<()> {
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
-
-    let range_check = entry.arg(0)?;
-
-    // Get type information
-
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.param_signatures()[1].ty,
-    )?;
-
-    let popped_cty = registry.get_type(&info.popped_ty)?;
-    let popped_size = popped_cty.layout(registry)?.size();
-    let popped_size_value = entry.const_int(context, location, popped_size, 64)?;
+        let (elem_ty, elem_layout) =
+            registry.build_type_with_layout(context, helper, registry, metadata, &info.ty)?;
+        let elem_stride =
+            valid_block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
 
-    let popped_ctys = popped_cty
-        .fields()
-        .expect("popped type should be a tuple (ergo, has fields)");
-    let popped_len = popped_ctys.len();
+        let value_ptr = valid_block.append_op_result(llvm::zero(ptr_ty, location))?;
+        let value_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
+            context,
+            value_ptr,
+            elem_stride,
+            location,
+        )?)?;
 
-    let array_ptr_ty = crate::ffi::get_struct_field_type_at(&array_ty, 0);
-    let array_start_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
-    let array_end_ty = crate::ffi::get_struct_field_type_at(&array_ty, 2);
+        let array_ptr =
+            valid_block.extract_value(context, location, entry.argument(1)?.into(), ptr_ty, 0)?;
+        let is_shared = is_shared(context, valid_block, location, array_ptr, elem_layout)?;
 
-    // Get array information
+        let offset = valid_block.append_op_result(arith::addi(
+            array_start,
+            entry.argument(2)?.into(),
+            location,
+        ))?;
+        let offset = valid_block.append_op_result(arith::extui(
+            offset,
+            IntegerType::new(context, 64).into(),
+            location,
+        ))?;
+        let offset = valid_block.append_op_result(arith::muli(offset, elem_stride, location))?;
 
-    let array = entry.arg(1)?;
-    let array_ptr = entry.extract_value(context, location, array, array_ptr_ty, 0)?;
-    let array_start = entry.extract_value(context, location, array, array_start_ty, 1)?;
-    let array_end = entry.extract_value(context, location, array, array_end_ty, 2)?;
+        let source_ptr = valid_block.gep(
+            context,
+            location,
+            array_ptr,
+            &[GepIndex::Value(offset)],
+            IntegerType::new(context, 8).into(),
+        )?;
 
-    // Check if operation is valid:
-    // if array.end - array.start < popped_len {
-    //     return
-    // }
+        valid_block.append_operation(scf::r#if(
+            is_shared,
+            &[],
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                match metadata.get::<DupOverridesMeta>() {
+                    Some(dup_overrides_meta) if dup_overrides_meta.is_overriden(&info.ty) => {
+                        let value = block.load(context, location, source_ptr, elem_ty)?;
+                        let values = dup_overrides_meta
+                            .invoke_override(context, &block, location, &info.ty, value)?;
+                        block.store(context, location, source_ptr, values.0)?;
+                        block.store(context, location, value_ptr, values.1)?;
+                    }
+                    _ => block.memcpy(context, location, source_ptr, value_ptr, elem_stride),
+                }
 
-    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
-    let popped_len_value = entry.const_int(context, location, popped_len, 32)?;
-    let is_valid = entry.cmpi(
-        context,
-        CmpiPredicate::Uge,
-        array_len,
-        popped_len_value,
-        location,
-    )?;
+                metadata
+                    .get::<DropOverridesMeta>()
+                    .unwrap()
+                    .invoke_override(
+                        context,
+                        &block,
+                        location,
+                        &info.signature.param_signatures[1].ty,
+                        entry.argument(1)?.into(),
+                    )?;
+
+                block.append_operation(scf::r#yield(&[], location));
+                region
+            },
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                block.memcpy(context, location, source_ptr, value_ptr, elem_stride);
+
+                match metadata.get::<DropOverridesMeta>() {
+                    Some(drop_overrides_meta) if drop_overrides_meta.is_overriden(&info.ty) => {
+                        let drop_loop = |o0, o1| {
+                            block.append_operation(scf::r#for(
+                                o0,
+                                o1,
+                                elem_stride,
+                                {
+                                    let region = Region::new();
+                                    let block = region.append_block(Block::new(&[(
+                                        IntegerType::new(context, 64).into(),
+                                        location,
+                                    )]));
+
+                                    let value_ptr = block.gep(
+                                        context,
+                                        location,
+                                        array_ptr,
+                                        &[GepIndex::Value(block.argument(0)?.into())],
+                                        IntegerType::new(context, 8).into(),
+                                    )?;
+                                    let value =
+                                        block.load(context, location, value_ptr, elem_ty)?;
+                                    drop_overrides_meta.invoke_override(
+                                        context, &block, location, &info.ty, value,
+                                    )?;
+
+                                    block.append_operation(scf::r#yield(&[], location));
+                                    region
+                                },
+                                location,
+                            ));
 
-    let valid_block = helper.append_block(Block::new(&[]));
-    let invalid_block = helper.append_block(Block::new(&[]));
+                            Result::Ok(())
+                        };
 
-    entry.append_operation(cf::cond_br(
-        context,
-        is_valid,
-        valid_block,
-        invalid_block,
-        &[],
-        &[],
-        location,
-    ));
+                        let o0 = block.append_op_result(arith::extui(
+                            array_start,
+                            IntegerType::new(context, 64).into(),
+                            location,
+                        ))?;
+                        let o1 = block.append_op_result(arith::addi(
+                            array_start,
+                            entry.argument(2)?.into(),
+                            location,
+                        ))?;
+                        let o1 = block.append_op_result(arith::extui(
+                            o1,
+                            IntegerType::new(context, 64).into(),
+                            location,
+                        ))?;
+                        let o0 = block.append_op_result(arith::muli(o0, elem_stride, location))?;
+                        let o1 = block.append_op_result(arith::muli(o1, elem_stride, location))?;
+                        drop_loop(o0, o1)?;
 
-    {
-        // Get pointer to first element to pop
+                        let o0 = block.append_op_result(arith::addi(o1, elem_stride, location))?;
+                        let o1 = block.append_op_result(arith::extui(
+                            array_end,
+                            IntegerType::new(context, 64).into(),
+                            location,
+                        ))?;
+                        let o1 = block.append_op_result(arith::muli(o1, elem_stride, location))?;
+                        drop_loop(o0, o1)?;
+                    }
+                    _ => {}
+                }
 
-        let popped_ptr = {
-            let single_popped_ty =
-                registry.build_type(context, helper, registry, metadata, &popped_ctys[0])?;
+                let array_ptr = block.gep(
+                    context,
+                    location,
+                    array_ptr,
+                    &[GepIndex::Const(-(calc_refcount_offset(elem_layout) as i32))],
+                    IntegerType::new(context, 8).into(),
+                )?;
+                block.append_operation(ReallocBindingsMeta::free(context, array_ptr, location)?);
+
+                block.append_operation(scf::r#yield(&[], location));
+                region
+            },
+            location,
+        ));
 
-            let popped_start =
-                valid_block.append_op_result(arith::subi(array_end, popped_len_value, location))?;
+        valid_block.append_operation(helper.br(0, &[range_check, value_ptr], location));
+    }
 
-            valid_block.append_op_result(llvm::get_element_ptr_dynamic(
+    {
+        metadata
+            .get::<DropOverridesMeta>()
+            .unwrap()
+            .invoke_override(
                 context,
-                array_ptr,
-                &[popped_start],
-                single_popped_ty,
-                llvm::r#type::pointer(context, 0),
+                error_block,
                 location,
-            ))?
-        };
-
-        // Allocate memory for return array
-
-        let return_ptr = {
-            let null_ptr = valid_block.append_op_result(
-                ods::llvm::mlir_zero(context, pointer(context, 0), location).into(),
+                &info.signature.param_signatures[1].ty,
+                entry.argument(1)?.into(),
             )?;
-            valid_block.append_op_result(ReallocBindingsMeta::realloc(
-                context,
-                null_ptr,
-                popped_size_value,
-                location,
-            )?)?
-        };
-
-        valid_block.memcpy(context, location, popped_ptr, return_ptr, popped_size_value);
 
-        // Update array end (removing popped elements)
-
-        let array = {
-            let new_array_end =
-                valid_block.append_op_result(arith::subi(array_end, popped_len_value, location))?;
-
-            valid_block.insert_value(context, location, array, new_array_end, 2)?
-        };
-
-        valid_block.append_operation(helper.br(0, &[range_check, array, return_ptr], location));
+        error_block.append_operation(helper.br(1, &[range_check], location));
     }
 
-    invalid_block.append_operation(helper.br(1, &[range_check, array], location));
-
     Ok(())
 }
 
@@ -3613,39 +4498,61 @@
     metadata: &mut MetadataStorage,
     info: &SignatureAndTypeConcreteLibfunc,
 ) -> Result<()> {
-    let range_check = super::increment_builtin_counter(context, entry, location, entry.arg(0)?)?;
+    // Signature:
+    //   Params: RangeCheck, Snapshot<Array<felt252>>, u32, u32
+    //   Branches:
+    //     0: RangeCheck, Snapshot<Array<felt252>>
+    //     1: RangeCheck
 
+    let ptr_ty = llvm::r#type::pointer(context, 0);
     let len_ty = IntegerType::new(context, 32).into();
 
-    let elem_ty = registry.get_type(&info.ty)?;
-    let elem_layout = elem_ty.layout(registry)?;
+    let self_ty = registry.build_type(
+        context,
+        helper,
+        registry,
+        metadata,
+        &info.signature.param_signatures[1].ty,
+    )?;
+
+    let range_check =
+        super::increment_builtin_counter(context, entry, location, entry.argument(0)?.into())?;
 
-    let array_start = entry.extract_value(context, location, entry.arg(1)?, len_ty, 1)?;
-    let array_end = entry.extract_value(context, location, entry.arg(1)?, len_ty, 2)?;
+    let k0 = entry.const_int_from_type(context, location, 0, len_ty)?;
+    let k1 = entry.const_int_from_type(context, location, 1, len_ty)?;
+
+    let array_start =
+        entry.extract_value(context, location, entry.argument(1)?.into(), len_ty, 1)?;
+    let array_end = entry.extract_value(context, location, entry.argument(1)?.into(), len_ty, 2)?;
+    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
 
-    let slice_start = entry.arg(2)?;
-    let slice_len = entry.arg(3)?;
-    let slice_end = entry.addi(slice_start, slice_len, location)?;
+    let slice_start = entry.argument(2)?.into();
+    let slice_len = entry.argument(3)?.into();
+    let slice_end = entry.append_op_result(arith::addi(slice_start, slice_len, location))?;
 
-    let slice_start = entry.addi(array_start, slice_start, location)?;
-    let slice_end = entry.addi(array_start, slice_end, location)?;
-    let lhs_bound = entry.cmpi(
+    let slice_lhs_bound = entry.append_op_result(arith::cmpi(
         context,
-        CmpiPredicate::Uge,
+        CmpiPredicate::Ule,
         slice_start,
-        array_start,
+        array_len,
         location,
-    )?;
-    let rhs_bound = entry.cmpi(context, CmpiPredicate::Ule, slice_end, array_end, location)?;
-
-    let is_valid = entry.append_op_result(arith::andi(lhs_bound, rhs_bound, location))?;
+    ))?;
+    let slice_rhs_bound = entry.append_op_result(arith::cmpi(
+        context,
+        CmpiPredicate::Ule,
+        slice_end,
+        array_len,
+        location,
+    ))?;
+    let slice_bounds =
+        entry.append_op_result(arith::andi(slice_lhs_bound, slice_rhs_bound, location))?;
 
-    let slice_block = helper.append_block(Block::new(&[]));
+    let valid_block = helper.append_block(Block::new(&[]));
     let error_block = helper.append_block(Block::new(&[]));
     entry.append_operation(cf::cond_br(
         context,
-        is_valid,
-        slice_block,
+        slice_bounds,
+        valid_block,
         error_block,
         &[],
         &[],
@@ -3653,89 +4560,229 @@
     ));
 
     {
-        let elem_ty = elem_ty.build(context, helper, registry, metadata, &info.ty)?;
+        let (elem_ty, elem_layout) =
+            registry.build_type_with_layout(context, helper, registry, metadata, &info.ty)?;
+        let elem_stride =
+            valid_block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
 
-        let value = entry.arg(1)?;
-        let value = slice_block.insert_value(context, location, value, slice_start, 1)?;
-        let value = slice_block.insert_value(context, location, value, slice_end, 2)?;
+        let slice_size = valid_block.append_op_result(arith::extui(
+            slice_len,
+            IntegerType::new(context, 64).into(),
+            location,
+        ))?;
+        let slice_size =
+            valid_block.append_op_result(arith::muli(elem_stride, slice_size, location))?;
+        let slice_size_with_offset = valid_block.append_op_result(arith::addi(
+            slice_size,
+            valid_block.const_int(context, location, calc_refcount_offset(elem_layout), 64)?,
+            location,
+        ))?;
 
-        let elem_stride =
-            slice_block.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
-        let prepare = |value| {
-            let value = slice_block.extui(value, IntegerType::new(context, 64).into(), location)?;
-            slice_block.muli(value, elem_stride, location)
-        };
+        let slice_ptr = valid_block.append_op_result(llvm::zero(ptr_ty, location))?;
+        let slice_ptr = valid_block.append_op_result(ReallocBindingsMeta::realloc(
+            context,
+            slice_ptr,
+            slice_size_with_offset,
+            location,
+        )?)?;
+        valid_block.store(context, location, slice_ptr, k1)?;
 
-        let ptr = slice_block.extract_value(
+        let slice_ptr = valid_block.gep(
             context,
             location,
-            entry.arg(1)?,
-            llvm::r#type::pointer(context, 0),
-            0,
+            slice_ptr,
+            &[GepIndex::Const(calc_refcount_offset(elem_layout) as i32)],
+            IntegerType::new(context, 8).into(),
         )?;
-        let make_region = |drop_overrides_meta: &DropOverridesMeta| {
-            let region = Region::new();
-            let block = region.append_block(Block::new(&[(
-                IntegerType::new(context, 64).into(),
-                location,
-            )]));
 
-            let value_ptr = block.append_op_result(llvm::get_element_ptr_dynamic(
-                context,
-                ptr,
-                &[block.arg(0)?],
-                IntegerType::new(context, 8).into(),
-                llvm::r#type::pointer(context, 0),
-                location,
-            ))?;
+        let array_ptr =
+            valid_block.extract_value(context, location, entry.argument(1)?.into(), ptr_ty, 0)?;
+        let is_shared = is_shared(context, valid_block, location, array_ptr, elem_layout)?;
 
-            let value = block.load(context, location, value_ptr, elem_ty)?;
-            drop_overrides_meta.invoke_override(context, &block, location, &info.ty, value)?;
+        let offset =
+            valid_block.append_op_result(arith::addi(array_start, slice_start, location))?;
+        let offset = valid_block.append_op_result(arith::extui(
+            offset,
+            IntegerType::new(context, 64).into(),
+            location,
+        ))?;
+        let offset = valid_block.append_op_result(arith::muli(offset, elem_stride, location))?;
 
-            block.append_operation(scf::r#yield(&[], location));
-            Result::Ok(region)
-        };
+        let source_ptr = valid_block.gep(
+            context,
+            location,
+            array_ptr,
+            &[GepIndex::Value(offset)],
+            IntegerType::new(context, 8).into(),
+        )?;
 
-        let array_start = prepare(array_start)?;
-        let array_end = prepare(array_end)?;
-        let slice_start = prepare(slice_start)?;
-        let slice_end = prepare(slice_end)?;
-
-        match metadata.get::<DropOverridesMeta>() {
-            Some(drop_overrides_meta) if drop_overrides_meta.is_overriden(&info.ty) => {
-                slice_block.append_operation(scf::r#for(
-                    array_start,
-                    slice_start,
-                    elem_stride,
-                    make_region(drop_overrides_meta)?,
-                    location,
-                ));
-                slice_block.append_operation(scf::r#for(
-                    slice_end,
-                    array_end,
-                    elem_stride,
-                    make_region(drop_overrides_meta)?,
-                    location,
-                ));
-            }
-            _ => {}
-        };
+        valid_block.append_operation(scf::r#if(
+            is_shared,
+            &[],
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                match metadata.get::<DupOverridesMeta>() {
+                    Some(dup_overrides_meta) if dup_overrides_meta.is_overriden(&info.ty) => {
+                        let k0 = valid_block.const_int(context, location, 0, 64)?;
+                        valid_block.append_operation(scf::r#for(
+                            k0,
+                            slice_size,
+                            elem_stride,
+                            {
+                                let region = Region::new();
+                                let block = region.append_block(Block::new(&[(
+                                    IntegerType::new(context, 64).into(),
+                                    location,
+                                )]));
+
+                                let offset = block.argument(0)?.into();
+                                let source_ptr = block.gep(
+                                    context,
+                                    location,
+                                    source_ptr,
+                                    &[GepIndex::Value(offset)],
+                                    IntegerType::new(context, 8).into(),
+                                )?;
+                                let target_ptr = block.gep(
+                                    context,
+                                    location,
+                                    slice_ptr,
+                                    &[GepIndex::Value(offset)],
+                                    IntegerType::new(context, 8).into(),
+                                )?;
+
+                                let value = block.load(context, location, source_ptr, elem_ty)?;
+                                let values = dup_overrides_meta
+                                    .invoke_override(context, &block, location, &info.ty, value)?;
+                                block.store(context, location, source_ptr, values.0)?;
+                                block.store(context, location, target_ptr, values.1)?;
 
-        slice_block.append_operation(helper.br(0, &[range_check, value], location));
-    }
+                                block.append_operation(scf::r#yield(&[], location));
+                                region
+                            },
+                            location,
+                        ));
+                    }
+                    _ => block.memcpy(context, location, source_ptr, slice_ptr, slice_size),
+                }
 
-    {
-        registry.build_type(
+                metadata
+                    .get::<DropOverridesMeta>()
+                    .unwrap()
+                    .invoke_override(
+                        context,
+                        &block,
+                        location,
+                        &info.signature.param_signatures[1].ty,
+                        entry.argument(1)?.into(),
+                    )?;
+
+                block.append_operation(scf::r#yield(&[], location));
+                region
+            },
+            {
+                let region = Region::new();
+                let block = region.append_block(Block::new(&[]));
+
+                block.memcpy(context, location, source_ptr, slice_ptr, slice_size);
+
+                match metadata.get::<DropOverridesMeta>() {
+                    Some(drop_overrides_meta) if drop_overrides_meta.is_overriden(&info.ty) => {
+                        let drop_loop = |o0, o1| {
+                            block.append_operation(scf::r#for(
+                                o0,
+                                o1,
+                                elem_stride,
+                                {
+                                    let region = Region::new();
+                                    let block = region.append_block(Block::new(&[(
+                                        IntegerType::new(context, 64).into(),
+                                        location,
+                                    )]));
+
+                                    let value_ptr = block.gep(
+                                        context,
+                                        location,
+                                        array_ptr,
+                                        &[GepIndex::Value(block.argument(0)?.into())],
+                                        IntegerType::new(context, 8).into(),
+                                    )?;
+                                    let value =
+                                        block.load(context, location, value_ptr, elem_ty)?;
+                                    drop_overrides_meta.invoke_override(
+                                        context, &block, location, &info.ty, value,
+                                    )?;
+
+                                    block.append_operation(scf::r#yield(&[], location));
+                                    region
+                                },
+                                location,
+                            ));
+
+                            Result::Ok(())
+                        };
+
+                        let o0 = block.append_op_result(arith::extui(
+                            array_start,
+                            IntegerType::new(context, 64).into(),
+                            location,
+                        ))?;
+                        let o1 = block.append_op_result(arith::addi(
+                            array_start,
+                            slice_start,
+                            location,
+                        ))?;
+                        let o1 = block.append_op_result(arith::extui(
+                            o1,
+                            IntegerType::new(context, 64).into(),
+                            location,
+                        ))?;
+                        let o0 = block.append_op_result(arith::muli(o0, elem_stride, location))?;
+                        let o1 = block.append_op_result(arith::muli(o1, elem_stride, location))?;
+                        drop_loop(o0, o1)?;
+
+                        let o0 = block.append_op_result(arith::addi(o1, slice_size, location))?;
+                        let o1 = block.append_op_result(arith::extui(
+                            array_end,
+                            IntegerType::new(context, 64).into(),
+                            location,
+                        ))?;
+                        let o1 = block.append_op_result(arith::muli(o1, elem_stride, location))?;
+                        drop_loop(o0, o1)?;
+                    }
+                    _ => {}
+                }
+
+                let array_ptr = block.gep(
+                    context,
+                    location,
+                    array_ptr,
+                    &[GepIndex::Const(-(calc_refcount_offset(elem_layout) as i32))],
+                    IntegerType::new(context, 8).into(),
+                )?;
+                block.append_operation(ReallocBindingsMeta::free(context, array_ptr, location)?);
+
+                block.append_operation(scf::r#yield(&[], location));
+                region
+            },
+            location,
+        ));
+
+        let slice_value = valid_block.append_op_result(llvm::undef(self_ty, location))?;
+        let slice_value = valid_block.insert_values(
             context,
-            helper,
-            registry,
-            metadata,
-            &info.signature.param_signatures[1].ty,
+            location,
+            slice_value,
+            &[slice_ptr, k0, slice_len, slice_len],
         )?;
 
-        // The metadata get will never fail because an array always has a drop implementation,
-        // which at this point is always inserted thanks to the `build_type()` just above.
-        metadata
+        valid_block.append_operation(helper.br(0, &[range_check, slice_value], location));
+    }
+
+    {
+        metadata
             .get::<DropOverridesMeta>()
             .ok_or(Error::MissingMetadata)?
             .invoke_override(
@@ -3743,7 +4790,7 @@
                 error_block,
                 location,
                 &info.signature.param_signatures[1].ty,
-                entry.arg(1)?,
+                entry.argument(1)?.into(),
             )?;
 
         error_block.append_operation(helper.br(1, &[range_check], location));
@@ -3752,309 +4799,137 @@
     Ok(())
 }
 
-/// Generate MLIR operations for the `span_from_tuple` libfunc.
-pub fn build_span_from_tuple<'ctx, 'this>(
+/// Generate MLIR operations for the `array_len` libfunc.
+pub fn build_len<'ctx, 'this>(
     context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
+    _registry: &ProgramRegistry<CoreType, CoreLibfunc>,
     entry: &'this Block<'ctx>,
     location: Location<'ctx>,
     helper: &LibfuncHelper<'ctx, 'this>,
     metadata: &mut MetadataStorage,
     info: &SignatureAndTypeConcreteLibfunc,
 ) -> Result<()> {
-    // tuple to array span (t,t,t) -> &[t,t,t]
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
-
-    let struct_type_info = registry.get_type(&info.ty)?;
-
-    let struct_ty = registry.build_type(context, helper, registry, metadata, &info.ty)?;
-
-    let container: Value = {
-        // load box
-        entry.load(context, location, entry.arg(0)?, struct_ty)?
-    };
-    // TODO: Maybe reuse the pointer?
-    entry.append_operation(ReallocBindingsMeta::free(context, entry.arg(0)?, location)?);
-
-    let fields = struct_type_info.fields().expect("should have fields");
-    let (field_ty, field_layout) =
-        registry.build_type_with_layout(context, helper, registry, metadata, &fields[0])?;
-    let field_stride = field_layout.pad_to_align().size();
-
-    let array_ty = registry.build_type(
-        context,
-        helper,
-        registry,
-        metadata,
-        &info.branch_signatures()[0].vars[0].ty,
-    )?;
-    let len_ty = crate::ffi::get_struct_field_type_at(&array_ty, 1);
-
-    let array_len_value = entry.const_int_from_type(context, location, fields.len(), len_ty)?;
-
-    let array_container = entry.append_op_result(llvm::undef(array_ty, location))?;
-
-    let k0 = entry.const_int_from_type(context, location, 0, len_ty)?;
-
-    let array_container = entry.insert_value(context, location, array_container, k0, 1)?;
-    let array_container =
-        entry.insert_value(context, location, array_container, array_len_value, 2)?;
-    let array_container =
-        entry.insert_value(context, location, array_container, array_len_value, 3)?;
-
-    let ptr = entry
-        .append_op_result(ods::llvm::mlir_zero(context, pointer(context, 0), location).into())?;
-
-    let field_size: Value = entry.const_int(context, location, field_stride, 64)?;
-    let array_len_value_i64 = entry.extui(array_len_value, field_size.r#type(), location)?;
-    let total_size = entry.muli(field_size, array_len_value_i64, location)?;
+    let len_ty = IntegerType::new(context, 32).into();
 
-    let ptr = entry.append_op_result(ReallocBindingsMeta::realloc(
-        context, ptr, total_size, location,
-    )?)?;
+    let array_start =
+        entry.extract_value(context, location, entry.argument(0)?.into(), len_ty, 1)?;
+    let array_end = entry.extract_value(context, location, entry.argument(0)?.into(), len_ty, 2)?;
 
-    for (i, _) in fields.iter().enumerate() {
-        let value: Value = entry.extract_value(context, location, container, field_ty, i)?;
+    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
 
-        let target_ptr = entry.append_op_result(llvm::get_element_ptr(
+    metadata
+        .get::<DropOverridesMeta>()
+        .unwrap()
+        .invoke_override(
             context,
-            ptr,
-            DenseI32ArrayAttribute::new(context, &[i as i32]),
-            field_ty,
-            pointer(context, 0),
+            entry,
             location,
-        ))?;
-
-        entry.store(context, location, target_ptr, value)?;
-    }
-
-    let array_container = entry.insert_value(context, location, array_container, ptr, 0)?;
-
-    entry.append_operation(helper.br(0, &[array_container], location));
+            &info.signature.param_signatures[0].ty,
+            entry.argument(0)?.into(),
+        )?;
 
+    entry.append_operation(helper.br(0, &[array_len], location));
     Ok(())
 }
 
-fn assert_nonnull<'ctx, 'this>(
+fn calc_refcount_offset(layout: Layout) -> usize {
+    get_integer_layout(32)
+        .align_to(layout.align())
+        .unwrap()
+        .pad_to_align()
+        .size()
+}
+
+fn is_shared<'ctx, 'this>(
     context: &'ctx Context,
-    entry: &'this Block<'ctx>,
+    block: &'this Block<'ctx>,
     location: Location<'ctx>,
-    ptr: Value<'ctx, 'this>,
-    msg: &str,
-) -> Result<()> {
-    let null_ptr =
-        entry.append_op_result(ods::llvm::mlir_zero(context, ptr.r#type(), location).into())?;
-
-    let ptr_is_not_null = entry.append_op_result(
-        ods::llvm::icmp(
+    array_ptr: Value<'ctx, 'this>,
+    elem_layout: Layout,
+) -> Result<Value<'ctx, 'this>> {
+    let k0 = block.const_int(context, location, 0, 64)?;
+    let ptr_as_int = block.append_op_result(
+        ods::llvm::ptrtoint(
             context,
-            IntegerType::new(context, 1).into(),
-            ptr,
-            null_ptr,
-            IntegerAttribute::new(IntegerType::new(context, 64).into(), 1).into(),
+            IntegerType::new(context, 64).into(),
+            array_ptr,
             location,
         )
         .into(),
     )?;
-
-    entry.append_operation(cf::assert(context, ptr_is_not_null, msg, location));
-    Ok(())
-}
-
-pub fn build_tuple_from_span<'ctx, 'this>(
-    context: &'ctx Context,
-    registry: &ProgramRegistry<CoreType, CoreLibfunc>,
-    entry: &'this Block<'ctx>,
-    location: Location<'ctx>,
-    helper: &LibfuncHelper<'ctx, 'this>,
-    metadata: &mut MetadataStorage,
-    info: &SignatureAndTypeConcreteLibfunc,
-) -> Result<()> {
-    // Tasks:
-    //   - Check if sizes match.
-    //   - If they do not match, jump to branch [1].
-    //   - If they do match:
-    //     - If start == 0 && capacity == len -> reuse the pointer
-    //     - Otherwise, realloc + memcpy + free.
-
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, helper));
-    }
-
-    let array_ty = registry.get_type(&info.signature.param_signatures[0].ty)?;
-    let (elem_id, elem_ty) = match array_ty {
-        CoreTypeConcrete::Array(info) => (&info.ty, registry.get_type(&info.ty)?),
-        CoreTypeConcrete::Snapshot(info) => match registry.get_type(&info.ty)? {
-            CoreTypeConcrete::Array(info) => (&info.ty, registry.get_type(&info.ty)?),
-            _ => native_panic!(
-                "matched an unexpected CoreTypeConcrete that is not a Array or Snapshot"
-            ),
-        },
-        _ => {
-            native_panic!("matched an unexpected CoreTypeConcrete that is not a Array or Snapshot")
-        }
-    };
-    let elem_layout = elem_ty.layout(registry)?;
-
-    let array_start = entry.extract_value(
-        context,
-        location,
-        entry.arg(0)?,
-        IntegerType::new(context, 32).into(),
-        1,
-    )?;
-    let array_end = entry.extract_value(
-        context,
-        location,
-        entry.arg(0)?,
-        IntegerType::new(context, 32).into(),
-        2,
-    )?;
-
-    let array_len = entry.append_op_result(arith::subi(array_end, array_start, location))?;
-    let (tuple_len, tuple_len_val) = {
-        let fields = registry
-            .get_type(&info.ty)?
-            .fields()
-            .to_native_assert_error("missing field")?;
-
-        native_assert!(
-            fields.iter().all(|f| f.id == elem_id.id),
-            "all the elements of the array must have the same type"
-        );
-
-        (
-            entry.const_int(context, location, fields.len(), 32)?,
-            fields.len(),
-        )
-    };
-
-    let len_matches = entry.cmpi(context, CmpiPredicate::Eq, array_len, tuple_len, location)?;
-
-    let block_ok = helper.append_block(Block::new(&[]));
-    let block_err = helper.append_block(Block::new(&[]));
-    entry.append_operation(cf::cond_br(
+    let ptr_is_null = block.append_op_result(arith::cmpi(
         context,
-        len_matches,
-        block_ok,
-        block_err,
-        &[],
-        &[],
+        CmpiPredicate::Eq,
+        ptr_as_int,
+        k0,
         location,
-    ));
-
-    {
-        let k0 = block_ok.const_int(context, location, 0, 32)?;
-        let starts_at_zero =
-            block_ok.cmpi(context, CmpiPredicate::Eq, array_start, k0, location)?;
-
-        let array_cap = block_ok.extract_value(
-            context,
-            location,
-            entry.arg(0)?,
-            IntegerType::new(context, 32).into(),
-            3,
-        )?;
-        let capacity_matches =
-            block_ok.cmpi(context, CmpiPredicate::Eq, array_cap, tuple_len, location)?;
+    ))?;
 
-        let array_ptr = block_ok.extract_value(
-            context,
-            location,
-            entry.arg(0)?,
-            llvm::r#type::pointer(context, 0),
-            0,
-        )?;
-        let should_forward_pointer =
-            block_ok.append_op_result(arith::andi(starts_at_zero, capacity_matches, location))?;
+    let is_shared = block.append_op_result(scf::r#if(
+        ptr_is_null,
+        &[IntegerType::new(context, 1).into()],
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-        let block_clone = helper.append_block(Block::new(&[]));
-        let block_forward = helper.append_block(Block::new(&[]));
-        block_ok.append_operation(cf::cond_br(
-            context,
-            should_forward_pointer,
-            block_forward,
-            block_clone,
-            &[],
-            &[],
-            location,
-        ));
+            let k0 = block.const_int(context, location, 0, 1)?;
 
+            block.append_operation(scf::r#yield(&[k0], location));
+            region
+        },
         {
-            let elem_stride =
-                block_clone.const_int(context, location, elem_layout.pad_to_align().size(), 64)?;
-            let tuple_len =
-                block_clone.extui(tuple_len, IntegerType::new(context, 64).into(), location)?;
-            let tuple_len = block_clone.muli(tuple_len, elem_stride, location)?;
-
-            let box_ptr = block_clone
-                .append_op_result(llvm::zero(llvm::r#type::pointer(context, 0), location))?;
-            let box_ptr = block_clone.append_op_result(ReallocBindingsMeta::realloc(
-                context, box_ptr, tuple_len, location,
-            )?)?;
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-            let elem_offset =
-                block_clone.extui(array_start, IntegerType::new(context, 64).into(), location)?;
-            let elem_offset = block_clone.muli(elem_offset, elem_stride, location)?;
-            let elem_ptr = block_clone.append_op_result(llvm::get_element_ptr_dynamic(
+            let array_ptr = block.gep(
                 context,
+                location,
                 array_ptr,
-                &[elem_offset],
+                &[GepIndex::Const(-(calc_refcount_offset(elem_layout) as i32))],
                 IntegerType::new(context, 8).into(),
-                llvm::r#type::pointer(context, 0),
+            )?;
+            let ref_count = block.load(
+                context,
                 location,
-            ))?;
+                array_ptr,
+                IntegerType::new(context, 32).into(),
+            )?;
 
-            block_clone.append_operation(
-                ods::llvm::intr_memcpy_inline(
+            #[cfg(debug_assertions)]
+            {
+                let k0 = block.const_int(context, location, 0, 32)?;
+                let is_nonzero = block.append_op_result(arith::cmpi(
                     context,
-                    box_ptr,
-                    elem_ptr,
-                    IntegerAttribute::new(
-                        IntegerType::new(context, 64).into(),
-                        (tuple_len_val * elem_layout.pad_to_align().size()) as i64,
-                    ),
-                    IntegerAttribute::new(IntegerType::new(context, 1).into(), 0),
+                    CmpiPredicate::Ne,
+                    ref_count,
+                    k0,
                     location,
-                )
-                .into(),
-            );
-
-            block_clone.append_operation(ReallocBindingsMeta::free(context, array_ptr, location)?);
-            block_clone.append_operation(helper.br(0, &[box_ptr], location));
-        }
+                ))?;
 
-        block_forward.append_operation(helper.br(0, &[array_ptr], location));
-    }
-
-    {
-        registry.build_type(
-            context,
-            helper,
-            registry,
-            metadata,
-            &info.signature.param_signatures[0].ty,
-        )?;
+                block.append_operation(cf::assert(
+                    context,
+                    is_nonzero,
+                    "ref_count must not be zero",
+                    location,
+                ));
+            }
 
-        // The metadata get will never fail because an array always has a drop implementation,
-        // which at this point is always inserted thanks to the `build_type()` just above.
-        metadata
-            .get::<DropOverridesMeta>()
-            .ok_or(Error::MissingMetadata)?
-            .invoke_override(
+            let k1 = block.const_int(context, location, 1, 32)?;
+            let is_shared = block.append_op_result(arith::cmpi(
                 context,
-                block_err,
+                CmpiPredicate::Ne,
+                ref_count,
+                k1,
                 location,
-                &info.signature.param_signatures[0].ty,
-                entry.arg(0)?,
-            )?;
+            ))?;
 
-        block_err.append_operation(helper.br(1, &[], location));
-    }
+            block.append_operation(scf::r#yield(&[is_shared], location));
+            region
+        },
+        location,
+    ))?;
 
-    Ok(())
+    Ok(is_shared)
 }
 
 #[cfg(test)]
@@ -4365,7 +5240,6 @@
                 //data.append(5_u32);
                 *slice.get(0).unwrap().unbox()
             }
-
         );
         let result = run_program(&program, "run_test", &[]).return_value;
 
diff --git a/src/cairo_native/metadata/debug_utils.rs.html b/src/cairo_native/metadata/debug_utils.rs.html
index ca4f3df8a..343e1c931 100644
--- a/src/cairo_native/metadata/debug_utils.rs.html
+++ b/src/cairo_native/metadata/debug_utils.rs.html
@@ -1563,7 +1563,7 @@
 unsafe extern "C" fn dump_mem_impl(ptr: *const (), len: u64) {
     println!("[DEBUG] Memory dump at {ptr:?}:");
     for chunk in (0..len).step_by(8) {
-        print!("  {ptr:?}:");
+        print!("  {:?}:", ptr.byte_add(chunk as usize));
         for offset in chunk..chunk + 8 {
             print!(" {:02x}", ptr.byte_add(offset as usize).cast::<u8>().read());
         }
diff --git a/src/cairo_native/starknet.rs.html b/src/cairo_native/starknet.rs.html
index 4725ec488..b936c8a27 100644
--- a/src/cairo_native/starknet.rs.html
+++ b/src/cairo_native/starknet.rs.html
@@ -1703,6 +1703,33 @@
 1703
 1704
 1705
+1706
+1707
+1708
+1709
+1710
+1711
+1712
+1713
+1714
+1715
+1716
+1717
+1718
+1719
+1720
+1721
+1722
+1723
+1724
+1725
+1726
+1727
+1728
+1729
+1730
+1731
+1732
 
//! Starknet related code for `cairo_native`
 
 use serde::{Deserialize, Serialize};
@@ -2245,12 +2272,11 @@
 // TODO: Move to the correct place or remove if unused.
 pub(crate) mod handler {
     use super::*;
-    use crate::utils::{libc_free, libc_malloc};
+    use crate::utils::{get_integer_layout, libc_free, libc_malloc};
     use std::{
         alloc::Layout,
-        ffi::c_void,
         fmt::Debug,
-        mem::{size_of, ManuallyDrop, MaybeUninit},
+        mem::{self, size_of, ManuallyDrop, MaybeUninit},
         ptr::{null_mut, NonNull},
     };
 
@@ -2614,7 +2640,17 @@
                     capacity: 0,
                 },
                 _ => {
-                    let ptr = libc_malloc(Layout::array::<E>(data.len()).unwrap().size()) as *mut E;
+                    let refcount_offset = get_integer_layout(32)
+                        .align_to(mem::align_of::<E>())
+                        .unwrap()
+                        .pad_to_align()
+                        .size();
+                    let ptr = libc_malloc(
+                        Layout::array::<E>(data.len()).unwrap().size() + refcount_offset,
+                    ) as *mut E;
+
+                    ptr.cast::<u32>().write(1);
+                    let ptr = ptr.byte_add(refcount_offset);
 
                     let len: u32 = data.len().try_into().unwrap();
                     for (i, val) in data.iter().enumerate() {
@@ -2631,6 +2667,24 @@
             }
         }
 
+        unsafe fn drop_mlir_array<E>(data: &ArrayAbi<E>) {
+            if data.ptr.is_null() {
+                return;
+            }
+
+            let refcount_offset = get_integer_layout(32)
+                .align_to(mem::align_of::<E>())
+                .unwrap()
+                .pad_to_align()
+                .size();
+
+            let ptr = data.ptr.byte_sub(refcount_offset);
+            match ptr.cast::<u32>().read() {
+                1 => libc_free(ptr.cast()),
+                n => ptr.cast::<u32>().write(n - 1),
+            }
+        }
+
         fn wrap_error<E>(e: &[Felt]) -> SyscallResultAbi<E> {
             SyscallResultAbi {
                 err: ManuallyDrop::new(SyscallResultAbiErr {
@@ -2673,7 +2727,7 @@
             let input_vec: Vec<_> = input.into();
 
             unsafe {
-                libc_free(input.ptr as *mut c_void);
+                Self::drop_mlir_array(input);
             }
 
             let result = ptr
@@ -2860,7 +2914,7 @@
             let calldata_vec: Vec<_> = calldata.into();
 
             unsafe {
-                libc_free(calldata.ptr as *mut c_void);
+                Self::drop_mlir_array(calldata);
             }
 
             let result = ptr.deploy(
@@ -2920,7 +2974,7 @@
             let calldata_vec: Vec<Felt> = calldata.into();
 
             unsafe {
-                libc_free(calldata.ptr as *mut c_void);
+                Self::drop_mlir_array(calldata);
             }
 
             let result = ptr.library_call(class_hash, function_selector, &calldata_vec, gas);
@@ -2954,7 +3008,7 @@
             let calldata_vec: Vec<Felt> = calldata.into();
 
             unsafe {
-                libc_free(calldata.ptr as *mut c_void);
+                Self::drop_mlir_array(calldata);
             }
 
             let result = ptr.call_contract(address, entry_point_selector, &calldata_vec, gas);
@@ -3028,13 +3082,13 @@
             let keys_vec: Vec<_> = keys.into();
 
             unsafe {
-                libc_free(keys.ptr as *mut c_void);
+                Self::drop_mlir_array(keys);
             }
 
             let data_vec: Vec<_> = data.into();
 
             unsafe {
-                libc_free(data.ptr as *mut c_void);
+                Self::drop_mlir_array(data);
             }
 
             let result = ptr.emit_event(&keys_vec, &data_vec, gas);
@@ -3061,7 +3115,7 @@
             let payload_vec: Vec<_> = payload.into();
 
             unsafe {
-                libc_free(payload.ptr as *mut c_void);
+                Self::drop_mlir_array(payload);
             }
 
             let result = ptr.send_message_to_l1(to_address, &payload_vec, gas);
@@ -3096,7 +3150,7 @@
 
             let result = ptr.keccak(input_vec, gas);
             unsafe {
-                libc_free(input.ptr as *mut c_void);
+                Self::drop_mlir_array(input);
             }
 
             *result_ptr = match result {
diff --git a/src/cairo_native/types.rs.html b/src/cairo_native/types.rs.html
index b080dc46b..87b16786e 100644
--- a/src/cairo_native/types.rs.html
+++ b/src/cairo_native/types.rs.html
@@ -1011,16 +1011,6 @@
 1011
 1012
 1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
 
//! # Compiler type infrastructure
 //!
 //! Contains type generation stuff (aka. conversion from Sierra to MLIR types).
@@ -1157,9 +1147,6 @@
     /// TODO: How is it used?
     fn variants(&self) -> Option<&[ConcreteTypeId]>;
 
-    // If the type is a struct, return the field types.
-    fn fields(&self) -> Option<&[ConcreteTypeId]>;
-
     #[allow(clippy::too_many_arguments)]
     fn build_default<'ctx, 'this>(
         &self,
@@ -1926,13 +1913,6 @@
         }
     }
 
-    fn fields(&self) -> Option<&[ConcreteTypeId]> {
-        match self {
-            Self::Struct(info) => Some(&info.members),
-            _ => None,
-        }
-    }
-
     fn build_default<'ctx, 'this>(
         &self,
         context: &'ctx Context,
diff --git a/src/cairo_native/types/array.rs.html b/src/cairo_native/types/array.rs.html
index 9356c84f6..e8fcc3052 100644
--- a/src/cairo_native/types/array.rs.html
+++ b/src/cairo_native/types/array.rs.html
@@ -394,6 +394,39 @@
 394
 395
 396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
 
//! # Array type
 //!
 //! An array type is a dynamically allocated list of items.
@@ -410,6 +443,11 @@
 //! |   1   | `i32`          | Array end offset[^2].    |
 //! |   2   | `i32`          | Allocated capacity[^2].  |
 //!
+//! The pointer to the allocation (which is **not the data**) contains:
+//!   1. Reference counter.
+//!   2. Padding.
+//!   3. Array data. Its address is the pointer to the data stored in the type.
+//!
 //! [^1]: When capacity is zero, this field is not guaranteed to be valid.
 //! [^2]: Those numbers are number of items, **not bytes**.
 
@@ -420,7 +458,7 @@
         drop_overrides::DropOverridesMeta, dup_overrides::DupOverridesMeta,
         realloc_bindings::ReallocBindingsMeta, MetadataStorage,
     },
-    utils::{BlockExt, GepIndex, ProgramRegistryExt},
+    utils::{get_integer_layout, BlockExt, GepIndex, ProgramRegistryExt},
 };
 use cairo_lang_sierra::{
     extensions::{
@@ -432,8 +470,8 @@
 use melior::dialect::{arith::CmpiPredicate, func, scf};
 use melior::ir::Region;
 use melior::{
-    dialect::{arith, cf, llvm, ods},
-    ir::{attribute::IntegerAttribute, r#type::IntegerType, Block, Location, Module, Type},
+    dialect::{arith, llvm},
+    ir::{r#type::IntegerType, Block, Location, Module, Type},
     Context,
 };
 
@@ -486,7 +524,10 @@
     ))
 }
 
-fn build_dup<'ctx>(
+/// This function clones the array shallowly. That is, it'll increment the reference counter but not
+/// actually clone anything. The deep clone implementation is provided in `src/libfuncs/array.rs` as
+/// part of some libfuncs's implementations.
+fn build_dup<'ctx>(
     context: &'ctx Context,
     module: &Module<'ctx>,
     registry: &ProgramRegistry<CoreType, CoreLibfunc>,
@@ -494,167 +535,84 @@
     info: &WithSelf<InfoAndTypeConcreteType>,
 ) -> Result<Region<'ctx>> {
     let location = Location::unknown(context);
-    if metadata.get::<ReallocBindingsMeta>().is_none() {
-        metadata.insert(ReallocBindingsMeta::new(context, module));
-    }
-
     let value_ty = registry.build_type(context, module, registry, metadata, info.self_ty())?;
-    let elem_ty = registry.get_type(&info.ty)?;
-    let elem_stride = elem_ty.layout(registry)?.pad_to_align().size();
-    let elem_ty = elem_ty.build(context, module, registry, metadata, &info.ty)?;
+
+    let elem_layout = registry.get_type(&info.ty)?.layout(registry)?;
+    let refcount_offset = get_integer_layout(32)
+        .align_to(elem_layout.align())
+        .unwrap()
+        .pad_to_align()
+        .size();
 
     let region = Region::new();
     let entry = region.append_block(Block::new(&[(value_ty, location)]));
 
-    let src_value = entry.arg(0)?;
-    let value_ptr = entry.extract_value(
-        context,
-        location,
-        src_value,
-        llvm::r#type::pointer(context, 0),
-        0,
-    )?;
-    let value_start = entry.extract_value(
-        context,
-        location,
-        src_value,
-        IntegerType::new(context, 32).into(),
-        1,
-    )?;
-    let value_end = entry.extract_value(
+    let array_cap = entry.extract_value(
         context,
         location,
-        src_value,
+        entry.argument(0)?.into(),
         IntegerType::new(context, 32).into(),
-        2,
+        3,
     )?;
-
-    let value_len = entry.append_op_result(arith::subi(value_end, value_start, location))?;
-
     let k0 = entry.const_int(context, location, 0, 32)?;
-    let value_is_empty = entry.cmpi(context, CmpiPredicate::Eq, value_len, k0, location)?;
-
-    let null_ptr =
-        entry.append_op_result(llvm::zero(llvm::r#type::pointer(context, 0), location))?;
-
-    let block_realloc = region.append_block(Block::new(&[]));
-    let block_finish =
-        region.append_block(Block::new(&[(llvm::r#type::pointer(context, 0), location)]));
-    entry.append_operation(cf::cond_br(
+    let is_empty = entry.append_op_result(arith::cmpi(
         context,
-        value_is_empty,
-        &block_finish,
-        &block_realloc,
-        &[null_ptr],
-        &[],
+        CmpiPredicate::Eq,
+        array_cap,
+        k0,
         location,
-    ));
+    ))?;
 
-    {
-        let elem_stride = block_realloc.const_int(context, location, elem_stride, 64)?;
+    entry.append_operation(scf::r#if(
+        is_empty,
+        &[],
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-        let dst_value_len = {
-            let value_len =
-                block_realloc.extui(value_len, IntegerType::new(context, 64).into(), location)?;
+            block.append_operation(scf::r#yield(&[], location));
+            region
+        },
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
 
-            block_realloc.muli(value_len, elem_stride, location)?
-        };
-        let dst_value_ptr = {
-            block_realloc.append_op_result(ReallocBindingsMeta::realloc(
+            let array_ptr = block.extract_value(
                 context,
-                null_ptr,
-                dst_value_len,
                 location,
-            )?)?
-        };
-
-        let src_value_ptr = {
-            let value_offset =
-                block_realloc.extui(value_start, IntegerType::new(context, 64).into(), location)?;
+                entry.argument(0)?.into(),
+                llvm::r#type::pointer(context, 0),
+                0,
+            )?;
 
-            let src_value_offset = block_realloc.muli(value_offset, elem_stride, location)?;
-            block_realloc.gep(
+            let refcount_ptr = block.gep(
                 context,
                 location,
-                value_ptr,
-                &[GepIndex::Value(src_value_offset)],
+                array_ptr,
+                &[GepIndex::Const(-(refcount_offset as i32))],
                 IntegerType::new(context, 8).into(),
-            )?
-        };
-
-        match metadata.get::<DupOverridesMeta>() {
-            Some(dup_override_meta) if dup_override_meta.is_overriden(&info.ty) => {
-                let k0 = block_realloc.const_int(context, location, 0, 64)?;
-                block_realloc.append_operation(scf::r#for(
-                    k0,
-                    dst_value_len,
-                    elem_stride,
-                    {
-                        let region = Region::new();
-                        let block = region.append_block(Block::new(&[(
-                            IntegerType::new(context, 64).into(),
-                            location,
-                        )]));
-
-                        let idx = block.arg(0)?;
-
-                        let src_value_ptr = block.gep(
-                            context,
-                            location,
-                            src_value_ptr,
-                            &[GepIndex::Value(idx)],
-                            IntegerType::new(context, 8).into(),
-                        )?;
-                        let dst_value_ptr = block.gep(
-                            context,
-                            location,
-                            dst_value_ptr,
-                            &[GepIndex::Value(idx)],
-                            IntegerType::new(context, 8).into(),
-                        )?;
-
-                        let value = block.load(context, location, src_value_ptr, elem_ty)?;
-                        let values = dup_override_meta
-                            .invoke_override(context, &block, location, &info.ty, value)?;
-                        block.store(context, location, src_value_ptr, values.0)?;
-                        block.store(context, location, dst_value_ptr, values.1)?;
-
-                        block.append_operation(scf::r#yield(&[], location));
-                        region
-                    },
-                    location,
-                ));
-            }
-            _ => {
-                block_realloc.append_operation(
-                    ods::llvm::intr_memcpy(
-                        context,
-                        dst_value_ptr,
-                        src_value_ptr,
-                        dst_value_len,
-                        IntegerAttribute::new(IntegerType::new(context, 1).into(), 0),
-                        location,
-                    )
-                    .into(),
-                );
-            }
-        }
-
-        block_realloc.append_operation(cf::br(&block_finish, &[dst_value_ptr], location));
-    }
+            )?;
+            let ref_count = block.load(
+                context,
+                location,
+                refcount_ptr,
+                IntegerType::new(context, 32).into(),
+            )?;
 
-    {
-        let dst_value = block_finish.append_op_result(llvm::undef(value_ty, location))?;
-        let dst_value = block_finish.insert_values(
-            context,
-            location,
-            dst_value,
-            &[block_finish.arg(0)?, k0, value_len, value_len],
-        )?;
+            let k1 = block.const_int(context, location, 1, 32)?;
+            let ref_count = block.append_op_result(arith::addi(ref_count, k1, location))?;
+            block.store(context, location, refcount_ptr, ref_count)?;
 
-        block_finish.append_operation(func::r#return(&[src_value, dst_value], location));
-    }
+            block.append_operation(scf::r#yield(&[], location));
+            region
+        },
+        location,
+    ));
 
+    entry.append_operation(func::r#return(
+        &[entry.argument(0)?.into(), entry.argument(0)?.into()],
+        location,
+    ));
     Ok(region)
 }
 
@@ -671,83 +629,191 @@
     }
 
     let value_ty = registry.build_type(context, module, registry, metadata, info.self_ty())?;
+
     let elem_ty = registry.get_type(&info.ty)?;
     let elem_stride = elem_ty.layout(registry)?.pad_to_align().size();
     let elem_ty = elem_ty.build(context, module, registry, metadata, &info.ty)?;
+    let elem_layout = registry.get_type(&info.ty)?.layout(registry)?;
+    let refcount_offset = get_integer_layout(32)
+        .align_to(elem_layout.align())
+        .unwrap()
+        .pad_to_align()
+        .size();
 
     let region = Region::new();
     let entry = region.append_block(Block::new(&[(value_ty, location)]));
 
-    let src_value = entry.arg(0)?;
-    let value_ptr = entry.extract_value(
+    let array_ptr = entry.extract_value(
         context,
         location,
-        src_value,
+        entry.argument(0)?.into(),
         llvm::r#type::pointer(context, 0),
         0,
     )?;
 
-    match metadata.get::<DropOverridesMeta>() {
-        Some(drop_overrides_meta) if drop_overrides_meta.is_overriden(&info.ty) => {
-            let value_start = entry.extract_value(
+    let array_cap = entry.extract_value(
+        context,
+        location,
+        entry.argument(0)?.into(),
+        IntegerType::new(context, 32).into(),
+        3,
+    )?;
+    let k0 = entry.const_int(context, location, 0, 32)?;
+    let is_empty = entry.append_op_result(arith::cmpi(
+        context,
+        CmpiPredicate::Eq,
+        array_cap,
+        k0,
+        location,
+    ))?;
+
+    entry.append_operation(scf::r#if(
+        is_empty,
+        &[],
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
+
+            block.append_operation(scf::r#yield(&[], location));
+            region
+        },
+        {
+            let region = Region::new();
+            let block = region.append_block(Block::new(&[]));
+
+            let refcount_ptr = block.gep(
                 context,
                 location,
-                src_value,
-                IntegerType::new(context, 32).into(),
-                1,
+                array_ptr,
+                &[GepIndex::Const(-(refcount_offset as i32))],
+                IntegerType::new(context, 8).into(),
             )?;
-            let value_end = entry.extract_value(
+            let ref_count = block.load(
                 context,
                 location,
-                src_value,
+                refcount_ptr,
                 IntegerType::new(context, 32).into(),
-                2,
             )?;
 
-            let value_start =
-                entry.extui(value_start, IntegerType::new(context, 64).into(), location)?;
-            let value_end =
-                entry.extui(value_end, IntegerType::new(context, 64).into(), location)?;
-
-            let elem_stride = entry.const_int(context, location, elem_stride, 64)?;
-            let offset_start = entry.muli(value_start, elem_stride, location)?;
-            let offset_end = entry.muli(value_end, elem_stride, location)?;
+            let k1 = block.const_int(context, location, 1, 32)?;
+            let is_shared = block.append_op_result(arith::cmpi(
+                context,
+                CmpiPredicate::Ne,
+                ref_count,
+                k1,
+                location,
+            ))?;
 
-            entry.append_operation(scf::r#for(
-                offset_start,
-                offset_end,
-                elem_stride,
+            block.append_operation(scf::r#if(
+                is_shared,
+                &[],
                 {
                     let region = Region::new();
-                    let block = region.append_block(Block::new(&[(
-                        IntegerType::new(context, 64).into(),
-                        location,
-                    )]));
+                    let block = region.append_block(Block::new(&[]));
+
+                    let ref_count = block.append_op_result(arith::subi(ref_count, k1, location))?;
+                    block.store(context, location, refcount_ptr, ref_count)?;
 
-                    let elem_offset = block.arg(0)?;
-                    let elem_ptr = block.append_op_result(llvm::get_element_ptr_dynamic(
+                    block.append_operation(scf::r#yield(&[], location));
+                    region
+                },
+                {
+                    let region = Region::new();
+                    let block = region.append_block(Block::new(&[]));
+
+                    match metadata.get::<DropOverridesMeta>() {
+                        Some(drop_overrides_meta) if drop_overrides_meta.is_overriden(&info.ty) => {
+                            let value_start = block.extract_value(
+                                context,
+                                location,
+                                entry.argument(0)?.into(),
+                                IntegerType::new(context, 32).into(),
+                                1,
+                            )?;
+                            let value_end = block.extract_value(
+                                context,
+                                location,
+                                entry.argument(0)?.into(),
+                                IntegerType::new(context, 32).into(),
+                                2,
+                            )?;
+
+                            let value_start = block.append_op_result(arith::extui(
+                                value_start,
+                                IntegerType::new(context, 64).into(),
+                                location,
+                            ))?;
+                            let value_end = block.append_op_result(arith::extui(
+                                value_end,
+                                IntegerType::new(context, 64).into(),
+                                location,
+                            ))?;
+
+                            let elem_stride =
+                                block.const_int(context, location, elem_stride, 64)?;
+                            let offset_start = block.append_op_result(arith::muli(
+                                value_start,
+                                elem_stride,
+                                location,
+                            ))?;
+                            let offset_end = block.append_op_result(arith::muli(
+                                value_end,
+                                elem_stride,
+                                location,
+                            ))?;
+
+                            block.append_operation(scf::r#for(
+                                offset_start,
+                                offset_end,
+                                elem_stride,
+                                {
+                                    let region = Region::new();
+                                    let block = region.append_block(Block::new(&[(
+                                        IntegerType::new(context, 64).into(),
+                                        location,
+                                    )]));
+
+                                    let elem_offset = block.argument(0)?.into();
+                                    let elem_ptr = block.gep(
+                                        context,
+                                        location,
+                                        array_ptr,
+                                        &[GepIndex::Value(elem_offset)],
+                                        IntegerType::new(context, 8).into(),
+                                    )?;
+                                    let elem_val =
+                                        block.load(context, location, elem_ptr, elem_ty)?;
+
+                                    drop_overrides_meta.invoke_override(
+                                        context, &block, location, &info.ty, elem_val,
+                                    )?;
+
+                                    block.append_operation(scf::r#yield(&[], location));
+                                    region
+                                },
+                                location,
+                            ));
+                        }
+                        _ => {}
+                    }
+
+                    block.append_operation(ReallocBindingsMeta::free(
                         context,
-                        value_ptr,
-                        &[elem_offset],
-                        IntegerType::new(context, 8).into(),
-                        llvm::r#type::pointer(context, 0),
+                        refcount_ptr,
                         location,
-                    ))?;
-                    let elem_val = block.load(context, location, elem_ptr, elem_ty)?;
-
-                    drop_overrides_meta
-                        .invoke_override(context, &block, location, &info.ty, elem_val)?;
-
+                    )?);
                     block.append_operation(scf::r#yield(&[], location));
                     region
                 },
                 location,
             ));
-        }
-        _ => {}
-    }
 
-    entry.append_operation(ReallocBindingsMeta::free(context, value_ptr, location)?);
+            block.append_operation(scf::r#yield(&[], location));
+            region
+        },
+        location,
+    ));
+
     entry.append_operation(func::r#return(&[], location));
     Ok(region)
 }
diff --git a/src/cairo_native/values.rs.html b/src/cairo_native/values.rs.html
index 7a638f64f..379686027 100644
--- a/src/cairo_native/values.rs.html
+++ b/src/cairo_native/values.rs.html
@@ -1713,6 +1713,81 @@
 1713
 1714
 1715
+1716
+1717
+1718
+1719
+1720
+1721
+1722
+1723
+1724
+1725
+1726
+1727
+1728
+1729
+1730
+1731
+1732
+1733
+1734
+1735
+1736
+1737
+1738
+1739
+1740
+1741
+1742
+1743
+1744
+1745
+1746
+1747
+1748
+1749
+1750
+1751
+1752
+1753
+1754
+1755
+1756
+1757
+1758
+1759
+1760
+1761
+1762
+1763
+1764
+1765
+1766
+1767
+1768
+1769
+1770
+1771
+1772
+1773
+1774
+1775
+1776
+1777
+1778
+1779
+1780
+1781
+1782
+1783
+1784
+1785
+1786
+1787
+1788
+1789
+1790
 
//! # Params and return values de/serialization
 //!
 //! A Rusty interface to provide parameters to cairo-native entry point calls.
@@ -1956,16 +2031,29 @@
                         let elem_ty = registry.get_type(&info.ty)?;
                         let elem_layout = elem_ty.layout(registry)?.pad_to_align();
 
-                        let ptr: *mut () = match elem_layout.size() * data.len() {
+                        let refcount_offset = get_integer_layout(32)
+                            .align_to(elem_layout.align())
+                            .unwrap()
+                            .pad_to_align()
+                            .size();
+                        let ptr = match elem_layout.size() * data.len() {
                             0 => std::ptr::null_mut(),
-                            len => libc_malloc(len).cast(),
+                            len => {
+                                let ptr: *mut () = libc_malloc(len + refcount_offset).cast();
+
+                                // Write reference count.
+                                ptr.cast::<u32>().write(1);
+
+                                ptr.byte_add(refcount_offset)
+                            }
                         };
                         let len: u32 = data
                             .len()
                             .try_into()
                             .map_err(|_| Error::IntegerConversion)?;
 
-                        for (idx, elem) in data.iter().enumerate() {
+                        // Write the data.
+                        for (idx, elem) in data.iter().enumerate() {
                             let elem = elem.to_ptr(arena, registry, &info.ty)?;
 
                             std::ptr::copy_nonoverlapping(
@@ -2276,6 +2364,7 @@
         ptr: NonNull<()>,
         type_id: &ConcreteTypeId,
         registry: &ProgramRegistry<CoreType, CoreLibfunc>,
+        should_drop: bool,
     ) -> Result<Self, Error> {
         let ty = registry.get_type(type_id)?;
 
@@ -2301,11 +2390,32 @@
                         .cast::<u32>()
                         .as_ref();
 
-                    // this pointer can be null if the array has a size of 0.
+                    // This pointer can be null if the array is empty.
                     let init_data_ptr = *ptr.cast::<*mut ()>().as_ref();
                     let data_ptr =
                         init_data_ptr.byte_add(elem_stride * start_offset_value as usize);
 
+                    let refcount_offset = get_integer_layout(32)
+                        .align_to(elem_layout.align())
+                        .unwrap()
+                        .pad_to_align()
+                        .size();
+                    let should_drop = if !init_data_ptr.is_null()
+                        && init_data_ptr.byte_sub(refcount_offset).cast::<u32>().read() == 1
+                    {
+                        should_drop
+                    } else {
+                        if !init_data_ptr.is_null() && should_drop {
+                            *init_data_ptr
+                                .byte_sub(refcount_offset)
+                                .cast::<u32>()
+                                .as_mut()
+                                .unwrap() -= 1;
+                        }
+
+                        false
+                    };
+
                     native_assert!(
                         end_offset_value >= start_offset_value,
                         "can't have an array with negative length"
@@ -2320,19 +2430,28 @@
                                 "tried to make a non-null ptr out of a null one",
                             )?;
 
-                        array_value.push(Self::from_ptr(cur_elem_ptr, &info.ty, registry)?);
+                        array_value.push(Self::from_ptr(
+                            cur_elem_ptr,
+                            &info.ty,
+                            registry,
+                            should_drop,
+                        )?);
                     }
 
-                    if !init_data_ptr.is_null() {
-                        libc_free(init_data_ptr.cast());
+                    if should_drop && !init_data_ptr.is_null() {
+                        libc_free(init_data_ptr.byte_sub(refcount_offset).cast());
                     }
 
                     Self::Array(array_value)
                 }
                 CoreTypeConcrete::Box(info) => {
                     let inner = *ptr.cast::<NonNull<()>>().as_ptr();
-                    let value = Self::from_ptr(inner, &info.ty, registry)?;
-                    libc_free(inner.as_ptr().cast());
+                    let value = Self::from_ptr(inner, &info.ty, registry, should_drop)?;
+
+                    if should_drop {
+                        libc_free(inner.as_ptr().cast());
+                    }
+
                     value
                 }
                 CoreTypeConcrete::EcPoint(_) => {
@@ -2377,7 +2496,9 @@
                 CoreTypeConcrete::Sint32(_) => Self::Sint32(*ptr.cast::<i32>().as_ref()),
                 CoreTypeConcrete::Sint64(_) => Self::Sint64(*ptr.cast::<i64>().as_ref()),
                 CoreTypeConcrete::Sint128(_) => Self::Sint128(*ptr.cast::<i128>().as_ref()),
-                CoreTypeConcrete::NonZero(info) => Self::from_ptr(ptr, &info.ty, registry)?,
+                CoreTypeConcrete::NonZero(info) => {
+                    Self::from_ptr(ptr, &info.ty, registry, should_drop)?
+                }
                 CoreTypeConcrete::Nullable(info) => {
                     let inner_ptr = *ptr.cast::<*mut ()>().as_ptr();
                     if inner_ptr.is_null() {
@@ -2387,8 +2508,13 @@
                             NonNull::new_unchecked(inner_ptr).cast(),
                             &info.ty,
                             registry,
+                            should_drop,
                         )?;
-                        libc_free(inner_ptr.cast());
+
+                        if should_drop {
+                            libc_free(inner_ptr.cast());
+                        }
+
                         value
                     }
                 }
@@ -2430,7 +2556,12 @@
                         ptr.as_ptr().byte_add(tag_layout.extend(payload_layout)?.1),
                     )
                     .to_native_assert_error("tried to make a non-null ptr out of a null one")?;
-                    let payload = Self::from_ptr(payload_ptr, &info.variants[tag_value], registry)?;
+                    let payload = Self::from_ptr(
+                        payload_ptr,
+                        &info.variants[tag_value],
+                        registry,
+                        should_drop,
+                    )?;
 
                     Self::Enum {
                         tag: tag_value,
@@ -2458,6 +2589,7 @@
                             )?,
                             member_ty,
                             registry,
+                            should_drop,
                         )?);
                     }
 
@@ -2468,19 +2600,20 @@
                 }
                 CoreTypeConcrete::Felt252Dict(info)
                 | CoreTypeConcrete::SquashedFelt252Dict(info) => {
-                    let FeltDict { inner, .. } = *Box::from_raw(
-                        ptr.cast::<NonNull<()>>()
-                            .as_ref()
-                            .cast::<FeltDict>()
-                            .as_ptr(),
-                    );
+                    let inner = &ptr
+                        .cast::<NonNull<()>>()
+                        .as_ref()
+                        .cast::<FeltDict>()
+                        .as_ref()
+                        .inner;
 
                     let mut output_map = HashMap::with_capacity(inner.len());
-                    for (mut key, val_ptr) in inner.into_iter() {
+                    for (&key, &val_ptr) in inner.iter() {
                         if val_ptr.is_null() {
                             continue;
                         }
 
+                        let mut key = key;
                         key[31] &= 0x0F; // Filter out first 4 bits (they're outside an i252).
 
                         let key = Felt::from_bytes_le(&key);
@@ -2494,9 +2627,22 @@
                                     .cast(),
                                 &info.ty,
                                 registry,
+                                should_drop,
                             )?,
                         );
-                        libc_free(val_ptr);
+
+                        if should_drop {
+                            libc_free(val_ptr);
+                        }
+                    }
+
+                    if should_drop {
+                        drop(Box::from_raw(
+                            ptr.cast::<NonNull<()>>()
+                                .as_ref()
+                                .cast::<FeltDict>()
+                                .as_ptr(),
+                        ));
                     }
 
                     Self::Felt252Dict {
@@ -2546,8 +2692,10 @@
                         native_panic!("todo: implement Sha256StateHandle from_ptr")
                     }
                 },
-                CoreTypeConcrete::Span(_) => native_panic!("todo: implement span from_ptr"),
-                CoreTypeConcrete::Snapshot(info) => Self::from_ptr(ptr, &info.ty, registry)?,
+                CoreTypeConcrete::Span(_) => native_panic!("implement span from_ptr"),
+                CoreTypeConcrete::Snapshot(info) => {
+                    Self::from_ptr(ptr, &info.ty, registry, should_drop)?
+                }
                 CoreTypeConcrete::Bytes31(_) => {
                     let data = *ptr.cast::<[u8; 31]>().as_ref();
                     Self::Bytes31(data)
@@ -2584,6 +2732,7 @@
                         )?,
                         &info.ty,
                         registry,
+                        should_drop,
                     )?;
 
                     let y = Self::from_ptr(
@@ -2594,6 +2743,7 @@
                         .to_native_assert_error("tried to make a non-null ptr out of a null one")?,
                         &info.ty,
                         registry,
+                        should_drop,
                     )?;
 
                     Self::IntRange {