#
tokens: 137039/50000 1/1140 files (page 103/103)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 103 of 103. Use http://codebase.md/cyfrin/aderyn?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .cargo
│   └── config.toml
├── .git-blame-ignore-revs
├── .gitattributes
├── .github
│   ├── images
│   │   ├── aderyn_logo.png
│   │   ├── poweredbycyfrinblack.png
│   │   └── poweredbycyfrinblue.png
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.md
│   │   ├── false_positive_issue.md
│   │   └── feature_request.md
│   └── workflows
│       ├── cargo.yml
│       ├── dependencies.yml
│       ├── release.yml
│       ├── reports.yml
│       └── toml.yml
├── .gitignore
├── .gitmodules
├── .vscode
│   └── settings.json
├── aderyn
│   ├── Cargo.toml
│   ├── oranda.json
│   ├── README.md
│   ├── src
│   │   ├── birdsong.rs
│   │   ├── completions.rs
│   │   ├── lib.rs
│   │   ├── lsp.rs
│   │   ├── main.rs
│   │   ├── mcp.rs
│   │   └── panic.rs
│   └── templates
│       └── aderyn.toml
├── aderyn_core
│   ├── .gitignore
│   ├── Cargo.toml
│   ├── README.md
│   ├── src
│   │   ├── ast
│   │   │   ├── ast_nodes.rs
│   │   │   ├── ast.rs
│   │   │   ├── impls
│   │   │   │   ├── ctx
│   │   │   │   │   ├── utils.rs
│   │   │   │   │   └── workspace.rs
│   │   │   │   ├── ctx.rs
│   │   │   │   ├── disp
│   │   │   │   │   ├── blocks.rs
│   │   │   │   │   ├── contracts.rs
│   │   │   │   │   ├── enumerations.rs
│   │   │   │   │   ├── errors.rs
│   │   │   │   │   ├── events.rs
│   │   │   │   │   ├── expressions.rs
│   │   │   │   │   ├── functions.rs
│   │   │   │   │   ├── identifiers.rs
│   │   │   │   │   ├── literals.rs
│   │   │   │   │   ├── modifiers.rs
│   │   │   │   │   ├── statements.rs
│   │   │   │   │   ├── structures.rs
│   │   │   │   │   ├── types.rs
│   │   │   │   │   ├── user_defined_value_types.rs
│   │   │   │   │   ├── using_for_directives.rs
│   │   │   │   │   └── variables.rs
│   │   │   │   ├── disp.rs
│   │   │   │   ├── node
│   │   │   │   │   ├── blocks.rs
│   │   │   │   │   ├── contracts.rs
│   │   │   │   │   ├── documentation.rs
│   │   │   │   │   ├── enumerations.rs
│   │   │   │   │   ├── errors.rs
│   │   │   │   │   ├── events.rs
│   │   │   │   │   ├── expressions.rs
│   │   │   │   │   ├── functions.rs
│   │   │   │   │   ├── identifiers.rs
│   │   │   │   │   ├── import_directives.rs
│   │   │   │   │   ├── literals.rs
│   │   │   │   │   ├── modifiers.rs
│   │   │   │   │   ├── pragma_directives.rs
│   │   │   │   │   ├── source_units.rs
│   │   │   │   │   ├── statements.rs
│   │   │   │   │   ├── structures.rs
│   │   │   │   │   ├── types.rs
│   │   │   │   │   ├── user_defined_value_types.rs
│   │   │   │   │   ├── using_for_directives.rs
│   │   │   │   │   └── variables.rs
│   │   │   │   ├── node.rs
│   │   │   │   ├── own
│   │   │   │   │   ├── hashing.rs
│   │   │   │   │   ├── node_id.rs
│   │   │   │   │   ├── source_units.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   └── own.rs
│   │   │   ├── impls.rs
│   │   │   ├── macros.rs
│   │   │   ├── magic.rs
│   │   │   ├── node_type.rs
│   │   │   └── yul.rs
│   │   ├── ast.rs
│   │   ├── audit
│   │   │   ├── attack_surface.rs
│   │   │   ├── auditor.rs
│   │   │   ├── entrypoint.rs
│   │   │   └── public_functions_no_sender.rs
│   │   ├── audit.rs
│   │   ├── context
│   │   │   ├── browser
│   │   │   │   ├── ancestral_line.rs
│   │   │   │   ├── closest_ancestor.rs
│   │   │   │   ├── external_calls.rs
│   │   │   │   ├── extractor.rs
│   │   │   │   ├── immediate_children.rs
│   │   │   │   ├── location.rs
│   │   │   │   ├── macros.rs
│   │   │   │   ├── parent.rs
│   │   │   │   ├── peek_over.rs
│   │   │   │   ├── peek_under.rs
│   │   │   │   ├── peek.rs
│   │   │   │   ├── siblings.rs
│   │   │   │   ├── sort_nodes.rs
│   │   │   │   └── storage_vars.rs
│   │   │   ├── browser.rs
│   │   │   ├── capturable.rs
│   │   │   ├── flow
│   │   │   │   ├── display.rs
│   │   │   │   ├── error.rs
│   │   │   │   ├── kind.rs
│   │   │   │   ├── primitives.rs
│   │   │   │   ├── reducibles.rs
│   │   │   │   ├── tests.rs
│   │   │   │   ├── utils.rs
│   │   │   │   ├── visualizer.rs
│   │   │   │   └── voids.rs
│   │   │   ├── flow.rs
│   │   │   ├── graph
│   │   │   │   ├── callgraph
│   │   │   │   │   ├── legacy.rs
│   │   │   │   │   ├── new.rs
│   │   │   │   │   ├── tests.rs
│   │   │   │   │   ├── utils.rs
│   │   │   │   │   └── visit.rs
│   │   │   │   ├── callgraph.rs
│   │   │   │   ├── preprocess
│   │   │   │   │   ├── legacy.rs
│   │   │   │   │   └── new.rs
│   │   │   │   ├── preprocess.rs
│   │   │   │   ├── traits.rs
│   │   │   │   └── utils.rs
│   │   │   ├── graph.rs
│   │   │   ├── macros.rs
│   │   │   ├── mcp
│   │   │   │   ├── callgraph
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── callgraph.rs
│   │   │   │   ├── contract_surface
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── util.rs
│   │   │   │   ├── contract_surface.rs
│   │   │   │   ├── list_contracts
│   │   │   │   │   ├── render.rs
│   │   │   │   │   └── tool.rs
│   │   │   │   ├── list_contracts.rs
│   │   │   │   ├── node_finder
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── node_finder.rs
│   │   │   │   ├── node_summarizer
│   │   │   │   │   ├── render.rs
│   │   │   │   │   ├── tool.rs
│   │   │   │   │   └── utils.rs
│   │   │   │   ├── node_summarizer.rs
│   │   │   │   ├── project_overview
│   │   │   │   │   ├── render.rs
│   │   │   │   │   └── tool.rs
│   │   │   │   ├── project_overview.rs
│   │   │   │   ├── tool_guide
│   │   │   │   │   └── tool.rs
│   │   │   │   └── tool_guide.rs
│   │   │   ├── mcp.rs
│   │   │   ├── router
│   │   │   │   ├── external_calls.rs
│   │   │   │   ├── internal_calls.rs
│   │   │   │   ├── modifier_calls.rs
│   │   │   │   └── tests.rs
│   │   │   ├── router.rs
│   │   │   └── workspace.rs
│   │   ├── context.rs
│   │   ├── detect
│   │   │   ├── detector.rs
│   │   │   ├── entrypoint.rs
│   │   │   ├── helpers.rs
│   │   │   ├── high
│   │   │   │   ├── _template.rs
│   │   │   │   ├── abi_encode_packed_hash_collision.rs
│   │   │   │   ├── arbitrary_transfer_from.rs
│   │   │   │   ├── const_func_changes_state.rs
│   │   │   │   ├── contract_locks_ether.rs
│   │   │   │   ├── dangerous_unary_operator.rs
│   │   │   │   ├── delegate_call_unchecked_address.rs
│   │   │   │   ├── delete_nested_mapping.rs
│   │   │   │   ├── dynamic_array_length_assignment.rs
│   │   │   │   ├── enumerable_loop_removal.rs
│   │   │   │   ├── eth_send_unchecked_address.rs
│   │   │   │   ├── experimental_encoder.rs
│   │   │   │   ├── function_selector_collision.rs
│   │   │   │   ├── incorrect_caret_operator.rs
│   │   │   │   ├── incorrect_erc20_interface.rs
│   │   │   │   ├── incorrect_erc721_interface.rs
│   │   │   │   ├── incorrect_shift_order.rs
│   │   │   │   ├── misused_boolean.rs
│   │   │   │   ├── msg_value_in_loops.rs
│   │   │   │   ├── multiple_constructors.rs
│   │   │   │   ├── nested_struct_in_mapping.rs
│   │   │   │   ├── out_of_order_retryable.rs
│   │   │   │   ├── pre_declared_variable_usage.rs
│   │   │   │   ├── reentrancy_state_change.rs
│   │   │   │   ├── reused_contract_name.rs
│   │   │   │   ├── rtlo.rs
│   │   │   │   ├── selfdestruct.rs
│   │   │   │   ├── signed_integer_storage_array.rs
│   │   │   │   ├── state_variable_shadowing.rs
│   │   │   │   ├── storage_array_memory_edit.rs
│   │   │   │   ├── strict_equality_contract_balance.rs
│   │   │   │   ├── tautological_compare.rs
│   │   │   │   ├── tautology_or_contradiction.rs
│   │   │   │   ├── tx_origin_used_for_auth.rs
│   │   │   │   ├── unchecked_low_level_call.rs
│   │   │   │   ├── unchecked_send.rs
│   │   │   │   ├── unprotected_initializer.rs
│   │   │   │   ├── unsafe_casting.rs
│   │   │   │   ├── weak_randomness.rs
│   │   │   │   └── yul_return.rs
│   │   │   ├── high.rs
│   │   │   ├── low
│   │   │   │   ├── _template.rs
│   │   │   │   ├── assert_state_change.rs
│   │   │   │   ├── block_timestamp_deadline.rs
│   │   │   │   ├── boolean_equality.rs
│   │   │   │   ├── builtin_symbol_shadowing.rs
│   │   │   │   ├── centralization_risk.rs
│   │   │   │   ├── constant_function_contains_assembly.rs
│   │   │   │   ├── costly_loop.rs
│   │   │   │   ├── dead_code.rs
│   │   │   │   ├── delegatecall_in_loop.rs
│   │   │   │   ├── deprecated_oz_function.rs
│   │   │   │   ├── division_before_multiplication.rs
│   │   │   │   ├── ecrecover.rs
│   │   │   │   ├── empty_block.rs
│   │   │   │   ├── empty_require_revert.rs
│   │   │   │   ├── function_initializing_state.rs
│   │   │   │   ├── function_pointer_in_constructor.rs
│   │   │   │   ├── inconsistent_type_names.rs
│   │   │   │   ├── incorrect_modifier.rs
│   │   │   │   ├── internal_function_used_once.rs
│   │   │   │   ├── large_numeric_literal.rs
│   │   │   │   ├── literal_instead_of_constant.rs
│   │   │   │   ├── local_variable_shadowing.rs
│   │   │   │   ├── missing_inheritance.rs
│   │   │   │   ├── modifier_used_only_once.rs
│   │   │   │   ├── multiple_placeholders.rs
│   │   │   │   ├── non_reentrant_not_first.rs
│   │   │   │   ├── push_0_opcode.rs
│   │   │   │   ├── redundant_statement.rs
│   │   │   │   ├── require_revert_in_loop.rs
│   │   │   │   ├── return_bomb.rs
│   │   │   │   ├── solmate_safe_transfer_lib.rs
│   │   │   │   ├── state_change_without_event.rs
│   │   │   │   ├── state_no_address_check.rs
│   │   │   │   ├── state_variable_could_be_constant.rs
│   │   │   │   ├── state_variable_could_be_immutable.rs
│   │   │   │   ├── state_variable_read_external.rs
│   │   │   │   ├── storage_array_length_not_cached.rs
│   │   │   │   ├── todo.rs
│   │   │   │   ├── unchecked_return.rs
│   │   │   │   ├── uninitialized_local_variable.rs
│   │   │   │   ├── unsafe_erc20_operation.rs
│   │   │   │   ├── unsafe_oz_erc721_mint.rs
│   │   │   │   ├── unspecific_solidity_pragma.rs
│   │   │   │   ├── unused_error.rs
│   │   │   │   ├── unused_import.rs
│   │   │   │   ├── unused_public_function.rs
│   │   │   │   ├── unused_state_variable.rs
│   │   │   │   └── void_constructor.rs
│   │   │   ├── low.rs
│   │   │   └── test_utils.rs
│   │   ├── detect.rs
│   │   ├── lib.rs
│   │   ├── stats
│   │   │   ├── cloc.rs
│   │   │   ├── dbg_tips.txt
│   │   │   ├── ignore.rs
│   │   │   ├── token.rs
│   │   │   └── util.rs
│   │   ├── stats.rs
│   │   ├── test_utils
│   │   │   └── load_source_unit.rs
│   │   ├── test_utils.rs
│   │   ├── visitor
│   │   │   ├── ast_visitor.rs
│   │   │   ├── macros.rs
│   │   │   └── workspace_visitor.rs
│   │   └── visitor.rs
│   ├── templates
│   │   └── mcp-tool-response
│   │       ├── callgraph.md
│   │       ├── contract_surface.md
│   │       ├── list_contracts.md
│   │       ├── node_finder_get_all.md
│   │       ├── node_finder_grep.md
│   │       ├── node_finder_search.md
│   │       ├── node_summarizer.md
│   │       ├── project_overview.md
│   │       └── tool_guide.md
│   └── tests
│       ├── common
│       │   ├── ancestral_line.rs
│       │   ├── closest_ancestor.rs
│       │   ├── immediate_children.rs
│       │   ├── immediate_parent.rs
│       │   ├── mod.rs
│       │   ├── new_ast_nodes.rs
│       │   ├── peek_over.rs
│       │   └── sibling.rs
│       └── traversal.rs
├── aderyn_driver
│   ├── .gitignore
│   ├── benches
│   │   └── detectors.rs
│   ├── Cargo.toml
│   ├── README.md
│   ├── src
│   │   ├── compile.rs
│   │   ├── config.rs
│   │   ├── display.rs
│   │   ├── driver.rs
│   │   ├── interface
│   │   │   ├── json.rs
│   │   │   ├── lsp.rs
│   │   │   ├── markdown.rs
│   │   │   ├── mod.rs
│   │   │   ├── sarif.rs
│   │   │   ├── tables.rs
│   │   │   └── util.rs
│   │   ├── lib.rs
│   │   ├── mcp.rs
│   │   ├── process.rs
│   │   └── runner.rs
│   └── tests
│       └── astgen.rs
├── bacon.toml
├── benchmarks
│   ├── aderyn
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── iteration_times.svg
│   │       │   └── pdf.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── iteration_times_small.svg
│   │       ├── iteration_times.svg
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── relative_iteration_times_small.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── SD.svg
│   │       └── typical.svg
│   ├── arbitrary-transfer-from
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── avoid-abi-encode-packed
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── block-timestamp-deadline
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── centralization-risk
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── constants-instead-of-literals
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── delegate-call-in-loop
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── deprecated-oz-functions
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── ecrecover
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── empty-block
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── hello_world
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── inconsistent-type-names
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── large-numeric-literal
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── non-reentrant-before-others
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── push-zero-opcode
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── report
│   │   └── index.html
│   ├── require-with-string
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── solmate-safe-transfer-lib
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unindexed-events
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unprotected-initializer
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unsafe-erc20-functions
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unsafe-oz-erc721-mint
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── unspecific-solidity-pragma
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-internal-function
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-modifier
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   ├── useless-public-function
│   │   ├── base
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   ├── change
│   │   │   └── estimates.json
│   │   ├── new
│   │   │   ├── benchmark.json
│   │   │   ├── estimates.json
│   │   │   ├── sample.json
│   │   │   └── tukey.json
│   │   └── report
│   │       ├── both
│   │       │   ├── pdf.svg
│   │       │   └── regression.svg
│   │       ├── change
│   │       │   ├── mean.svg
│   │       │   ├── median.svg
│   │       │   └── t-test.svg
│   │       ├── index.html
│   │       ├── MAD.svg
│   │       ├── mean.svg
│   │       ├── median.svg
│   │       ├── pdf_small.svg
│   │       ├── pdf.svg
│   │       ├── regression_small.svg
│   │       ├── regression.svg
│   │       ├── relative_pdf_small.svg
│   │       ├── relative_regression_small.svg
│   │       ├── SD.svg
│   │       ├── slope.svg
│   │       └── typical.svg
│   └── zero-address-check
│       ├── base
│       │   ├── benchmark.json
│       │   ├── estimates.json
│       │   ├── sample.json
│       │   └── tukey.json
│       ├── change
│       │   └── estimates.json
│       ├── new
│       │   ├── benchmark.json
│       │   ├── estimates.json
│       │   ├── sample.json
│       │   └── tukey.json
│       └── report
│           ├── both
│           │   ├── pdf.svg
│           │   └── regression.svg
│           ├── change
│           │   ├── mean.svg
│           │   ├── median.svg
│           │   └── t-test.svg
│           ├── index.html
│           ├── MAD.svg
│           ├── mean.svg
│           ├── median.svg
│           ├── pdf_small.svg
│           ├── pdf.svg
│           ├── regression_small.svg
│           ├── regression.svg
│           ├── relative_pdf_small.svg
│           ├── relative_regression_small.svg
│           ├── SD.svg
│           ├── slope.svg
│           └── typical.svg
├── Cargo.lock
├── Cargo.toml
├── cli
│   ├── benchmarks.sh
│   └── reportgen.sh
├── CODEOWNERS
├── CONTRIBUTING.md
├── cyfrinup
│   ├── dynamic_script
│   └── why.md
├── deny.toml
├── dist-workspace.toml
├── funding.json
├── LICENSE
├── Makefile
├── package-lock.json
├── package.json
├── README.md
├── RELEASE_CHECKLIST.md
├── reports
│   ├── adhoc-sol-files-highs-only-report.json
│   ├── adhoc-sol-files-report.md
│   ├── ccip-functions-report.md
│   ├── empty_report.md
│   ├── hardhat-playground-report.md
│   ├── nft-report-icm.md
│   ├── nft-report.md
│   ├── prb-math-report.md
│   ├── report.json
│   ├── report.md
│   ├── report.sarif
│   ├── sablier-aderyn-toml-nested-root.md
│   ├── templegold-report.md
│   └── uniswap_profile.md
├── rust-toolchain.toml
├── rustfmt.toml
├── tests
│   ├── adhoc-sol-files
│   │   ├── aderyn.toml
│   │   ├── Counter.sol
│   │   ├── DemoASTNodes.sol
│   │   ├── Helper.sol
│   │   ├── InconsistentUints.sol
│   │   ├── inheritance
│   │   │   ├── ExtendedInheritance.sol
│   │   │   ├── IContractInheritance.sol
│   │   │   └── InheritanceBase.sol
│   │   ├── InternalFunctions.sol
│   │   ├── lib
│   │   │   └── ThisShouldBeExcluded.sol
│   │   ├── multiple-versions
│   │   │   ├── 0.4
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.5
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.6
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   ├── 0.7
│   │   │   │   ├── A.sol
│   │   │   │   └── B.sol
│   │   │   └── 0.8
│   │   │       ├── A.sol
│   │   │       └── B.sol
│   │   ├── OnceModifierExample.sol
│   │   └── StateVariables.sol
│   ├── ast
│   │   ├── abstract_contract.json
│   │   ├── address_payable.json
│   │   ├── array_type_name.json
│   │   ├── ast-erc4626.json
│   │   ├── base_constructor_call.json
│   │   ├── bit_not.json
│   │   ├── call.json
│   │   ├── constructor.json
│   │   ├── contract_dep_order.json
│   │   ├── do_while.json
│   │   ├── documentation_1.json
│   │   ├── documentation_2.json
│   │   ├── documentation_3.json
│   │   ├── documentation_local_variable.json
│   │   ├── documentation_on_statements.json
│   │   ├── documentation_triple.json
│   │   ├── empty_block.json
│   │   ├── enum_value_declaration.json
│   │   ├── enum_value.json
│   │   ├── event_definition.json
│   │   ├── experimental_encoder_pragma.json
│   │   ├── fallback_and_reveice_ether.json
│   │   ├── fallback_payable.json
│   │   ├── fallback.json
│   │   ├── function_type.json
│   │   ├── function.json
│   │   ├── global_enum.json
│   │   ├── global_struct.json
│   │   ├── inheritance_specifier.json
│   │   ├── leave.json
│   │   ├── license.json
│   │   ├── long_type_name_binary_operation.json
│   │   ├── long_type_name_identifier.json
│   │   ├── loop.json
│   │   ├── mappings.json
│   │   ├── modifier_definition.json
│   │   ├── modifier_invocation.json
│   │   ├── mutability.json
│   │   ├── nested_functions.json
│   │   ├── non_utf8.json
│   │   ├── override.json
│   │   ├── placeholder_statement.json
│   │   ├── receive_ether.json
│   │   ├── short_type_name_ref.json
│   │   ├── short_type_name.json
│   │   ├── slot_offset.json
│   │   ├── smoke.json
│   │   ├── source_location.json
│   │   ├── string.json
│   │   ├── stringlit.json
│   │   ├── switch_default.json
│   │   ├── switch.json
│   │   ├── try_catch.json
│   │   ├── two_base_functions.json
│   │   ├── unicode.json
│   │   ├── used_errors.json
│   │   ├── userDefinedValueType.json
│   │   ├── using_for_directive.json
│   │   ├── var_access.json
│   │   └── yul_hex_literal.json
│   ├── contract-playground
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── dot
│   │   │   └── .gitkeep
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── script
│   │   │   └── Counter.s.sol
│   │   ├── src
│   │   │   ├── AbstractContract.sol
│   │   │   ├── AderynIgnoreCustomDetectors.sol
│   │   │   ├── AdminContract.sol
│   │   │   ├── ArbitraryTransferFrom.sol
│   │   │   ├── AssemblyExample.sol
│   │   │   ├── AssertStateChange.sol
│   │   │   ├── auditor_mode
│   │   │   │   ├── ExternalCalls.sol
│   │   │   │   └── PublicFunctionsWithoutSenderCheck.sol
│   │   │   ├── BooleanEquality.sol
│   │   │   ├── BuiltinSymbolShadow.sol
│   │   │   ├── CacheArrayLength.sol
│   │   │   ├── CallGraphTests.sol
│   │   │   ├── Casting.sol
│   │   │   ├── cloc
│   │   │   │   ├── AnotherHeavilyCommentedContract.sol
│   │   │   │   ├── EmptyContractFile.sol
│   │   │   │   └── HeavilyCommentedContract.sol
│   │   │   ├── CompilerBugStorageSignedIntegerArray.sol
│   │   │   ├── ConstantFuncsAssembly.sol
│   │   │   ├── ConstantsLiterals.sol
│   │   │   ├── ConstFuncChangeState.sol
│   │   │   ├── ContractLocksEther.sol
│   │   │   ├── ContractWithTodo.sol
│   │   │   ├── control_flow
│   │   │   │   └── SimpleProgram.sol
│   │   │   ├── CostlyOperationsInsideLoops.sol
│   │   │   ├── Counter.sol
│   │   │   ├── CrazyPragma.sol
│   │   │   ├── DangerousStrictEquality1.sol
│   │   │   ├── DangerousStrictEquality2.sol
│   │   │   ├── DangerousUnaryOperator.sol
│   │   │   ├── DeadCode.sol
│   │   │   ├── DelegateCallWithoutAddressCheck.sol
│   │   │   ├── DeletionNestedMappingStructureContract.sol
│   │   │   ├── DeprecatedOZFunctions.sol
│   │   │   ├── DivisionBeforeMultiplication.sol
│   │   │   ├── DynamicArrayLengthAssignment.sol
│   │   │   ├── EmitAfterExternalCall.sol
│   │   │   ├── EmptyBlocks.sol
│   │   │   ├── EnumerableSetIteration.sol
│   │   │   ├── eth2
│   │   │   │   └── DepositContract.sol
│   │   │   ├── ExperimentalEncoder.sol
│   │   │   ├── ExternalCalls.sol
│   │   │   ├── FunctionInitializingState.sol
│   │   │   ├── FunctionPointers.sol
│   │   │   ├── FunctionSignatureCollision.sol
│   │   │   ├── HugeConstants.sol
│   │   │   ├── IgnoreEverything.sol
│   │   │   ├── InconsistentUints.sol
│   │   │   ├── IncorrectCaretOperator.sol
│   │   │   ├── IncorrectERC20.sol
│   │   │   ├── IncorrectERC721.sol
│   │   │   ├── IncorrectModifier.sol
│   │   │   ├── IncorrectShift.sol
│   │   │   ├── inheritance
│   │   │   │   ├── ExtendedInheritance.sol
│   │   │   │   ├── IContractInheritance.sol
│   │   │   │   └── InheritanceBase.sol
│   │   │   ├── InternalFunctions.sol
│   │   │   ├── KeccakContract.sol
│   │   │   ├── LocalVariableShadow.sol
│   │   │   ├── MissingInheritance.sol
│   │   │   ├── MisusedBoolean.sol
│   │   │   ├── MsgValueInLoop.sol
│   │   │   ├── MultipleConstructorSchemes.sol
│   │   │   ├── MultiplePlaceholders.sol
│   │   │   ├── nested
│   │   │   │   ├── 1
│   │   │   │   │   └── Nested.sol
│   │   │   │   └── 2
│   │   │   │       └── Nested.sol
│   │   │   ├── nested_mappings
│   │   │   │   ├── LaterVersion.sol
│   │   │   │   └── NestedMappings.sol
│   │   │   ├── OnceModifierExample.sol
│   │   │   ├── OnlyLibrary.sol
│   │   │   ├── OutOfOrderRetryable.sol
│   │   │   ├── parent_chain
│   │   │   │   └── ParentChainContract.sol
│   │   │   ├── PragmaRange.sol
│   │   │   ├── PreDeclaredVarUsage.sol
│   │   │   ├── PublicFunction.sol
│   │   │   ├── PublicVariableReadInExternalContext.sol
│   │   │   ├── RedundantStatements.sol
│   │   │   ├── ReturnBomb.sol
│   │   │   ├── reused_contract_name
│   │   │   │   ├── ContractA.sol
│   │   │   │   └── ContractB.sol
│   │   │   ├── RevertsAndRequriesInLoops.sol
│   │   │   ├── router
│   │   │   │   ├── ExternalCalls.sol
│   │   │   │   ├── FallbackAndReceiveOverrides.sol
│   │   │   │   ├── InternalCalls.sol
│   │   │   │   ├── ModifierCalls.sol
│   │   │   │   └── VarOverridesFunction.sol
│   │   │   ├── RTLO.sol
│   │   │   ├── SendEtherNoChecks.sol
│   │   │   ├── SendEtherNoChecksLibImport.sol
│   │   │   ├── StateChangeAfterExternalCall.sol
│   │   │   ├── StateShadowing.sol
│   │   │   ├── StateVariableCouldBeDeclaredConstant.sol
│   │   │   ├── StateVariableCouldBeDeclaredImmutable.sol
│   │   │   ├── StateVariables.sol
│   │   │   ├── StateVariablesChangesWithoutEvents.sol
│   │   │   ├── StateVariablesManipulation.sol
│   │   │   ├── StorageConditionals.sol
│   │   │   ├── StorageParameters.sol
│   │   │   ├── T11sTranferer.sol
│   │   │   ├── TautologicalCompare.sol
│   │   │   ├── TautologyOrContradiction.sol
│   │   │   ├── TestERC20.sol
│   │   │   ├── TransientKeyword.sol
│   │   │   ├── Trump.sol
│   │   │   ├── TxOriginUsedForAuth.sol
│   │   │   ├── U2.sol
│   │   │   ├── U3.sol
│   │   │   ├── U4.sol
│   │   │   ├── U5.sol
│   │   │   ├── UncheckedCalls.sol
│   │   │   ├── UncheckedReturn.sol
│   │   │   ├── UncheckedSend.sol
│   │   │   ├── UninitializedLocalVariables.sol
│   │   │   ├── UninitializedStateVariable.sol
│   │   │   ├── uniswap
│   │   │   │   ├── UniswapV2Swapper.sol
│   │   │   │   └── UniswapV3Swapper.sol
│   │   │   ├── UnprotectedInitialize.sol
│   │   │   ├── UnsafeERC721Mint.sol
│   │   │   ├── UnusedError.sol
│   │   │   ├── UnusedImport.sol
│   │   │   ├── UnusedStateVariables.sol
│   │   │   ├── UsingSelfdestruct.sol
│   │   │   ├── VoidConstructor.sol
│   │   │   ├── WeakRandomness.sol
│   │   │   ├── WrongOrderOfLayout.sol
│   │   │   ├── YulReturn.sol
│   │   │   └── ZeroAddressCheck.sol
│   │   └── test
│   │       └── Counter.t.sol
│   ├── foundry-nft-f23
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── foundry.lock
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── remappings.txt
│   │   └── src
│   │       ├── BasicNft.sol
│   │       ├── F1.sol
│   │       ├── F2.sol
│   │       ├── Initializer.sol
│   │       └── inner-core-modules
│   │           └── ICM.sol
│   ├── foundry-nft-f23-icm
│   │   ├── .github
│   │   │   └── workflows
│   │   │       └── test.yml
│   │   ├── .gitignore
│   │   ├── aderyn.toml
│   │   ├── foundry.toml
│   │   ├── README.md
│   │   ├── remappings.txt
│   │   └── src
│   │       ├── BasicNft.sol
│   │       ├── F1.sol
│   │       ├── F2.sol
│   │       ├── Initializer.sol
│   │       └── inner-core-modules
│   │           └── ICM.sol
│   ├── hardhat-js-playground
│   │   ├── .gitignore
│   │   ├── artifacts
│   │   │   ├── build-info
│   │   │   │   └── cee6fe9a9a2f03f7ff10a27ab2746af6.json
│   │   │   └── contracts
│   │   │       ├── Counter.sol
│   │   │       │   ├── Counter.dbg.json
│   │   │       │   └── Counter.json
│   │   │       ├── ExtendedInheritance.sol
│   │   │       │   ├── ExtendedInheritance.dbg.json
│   │   │       │   └── ExtendedInheritance.json
│   │   │       ├── IContractInheritance.sol
│   │   │       │   ├── IContractInheritance.dbg.json
│   │   │       │   └── IContractInheritance.json
│   │   │       ├── InheritanceBase.sol
│   │   │       │   ├── InheritanceBase.dbg.json
│   │   │       │   └── InheritanceBase.json
│   │   │       ├── KeccakContract.sol
│   │   │       │   ├── KeccakContract.dbg.json
│   │   │       │   └── KeccakContract.json
│   │   │       ├── Lock.sol
│   │   │       │   ├── Lock.dbg.json
│   │   │       │   └── Lock.json
│   │   │       └── StateVariables.sol
│   │   │           ├── StateVariables.dbg.json
│   │   │           └── StateVariables.json
│   │   ├── contracts
│   │   │   ├── Counter.sol
│   │   │   ├── ExtendedInheritance.sol
│   │   │   ├── IContractInheritance.sol
│   │   │   ├── InheritanceBase.sol
│   │   │   ├── KeccakContract.sol
│   │   │   ├── Lock.sol
│   │   │   └── StateVariables.sol
│   │   ├── hardhat.config.js
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── scripts
│   │   │   └── deploy.js
│   │   ├── test
│   │   │   └── Lock.js
│   │   └── yarn.lock
│   ├── no-sol-files
│   │   ├── extra
│   │   │   └── HelloAgain.md
│   │   ├── Hello.txt
│   │   └── Hello.yul
│   └── toml
│       ├── nested_project1
│       │   ├── aderyn.toml
│       │   ├── folder1
│       │   │   └── hardhat.config.ts
│       │   ├── folder2
│       │   │   └── hardhat.config.ts
│       │   └── folder3
│       │       └── file.txt
│       └── nested_project2
│           ├── aderyn.toml
│           ├── folder1
│           │   └── foundry.toml
│           └── folder2
│               └── file1.txt
├── tools
│   └── xtask
│       ├── Cargo.toml
│       └── src
│           ├── blesspr.rs
│           ├── cut_release.rs
│           ├── flags.rs
│           ├── main.rs
│           ├── reportgen.rs
│           └── tomlgen.rs
└── typos.toml
```

# Files

--------------------------------------------------------------------------------
/reports/templegold-report.md:
--------------------------------------------------------------------------------

```markdown
   1 | # Aderyn Analysis Report
   2 | 
   3 | This report was generated by [Aderyn](https://github.com/Cyfrin/aderyn), a static analysis tool built by [Cyfrin](https://cyfrin.io), a blockchain security company. This report is not a substitute for manual audit or security review. It should not be relied upon for any purpose other than to assist in the identification of potential security vulnerabilities.
   4 | # Table of Contents
   5 | 
   6 | - [Summary](#summary)
   7 |   - [Files Summary](#files-summary)
   8 |   - [Files Details](#files-details)
   9 |   - [Issue Summary](#issue-summary)
  10 | - [High Issues](#high-issues)
  11 |   - [H-1: Unsafe Casting of integers](#h-1-unsafe-casting-of-integers)
  12 |   - [H-2: Contract Name Reused in Different Files](#h-2-contract-name-reused-in-different-files)
  13 |   - [H-3: ETH transferred without address checks](#h-3-eth-transferred-without-address-checks)
  14 |   - [H-4: Weak Randomness](#h-4-weak-randomness)
  15 |   - [H-5: Deletion from a nested mapping](#h-5-deletion-from-a-nested-mapping)
  16 |   - [H-6: Contract locks Ether without a withdraw function](#h-6-contract-locks-ether-without-a-withdraw-function)
  17 |   - [H-7: Reentrancy: State change after external call](#h-7-reentrancy-state-change-after-external-call)
  18 | - [Low Issues](#low-issues)
  19 |   - [L-1: Centralization Risk](#l-1-centralization-risk)
  20 |   - [L-2: `ecrecover` Signature Malleability](#l-2-ecrecover-signature-malleability)
  21 |   - [L-3: Unsafe ERC20 Operation](#l-3-unsafe-erc20-operation)
  22 |   - [L-4: Unspecific Solidity Pragma](#l-4-unspecific-solidity-pragma)
  23 |   - [L-5: Address State Variable Set Without Checks](#l-5-address-state-variable-set-without-checks)
  24 |   - [L-6: Public Function Not Used Internally](#l-6-public-function-not-used-internally)
  25 |   - [L-7: Literal Instead of Constant](#l-7-literal-instead-of-constant)
  26 |   - [L-8: Empty `require()` / `revert()` Statement](#l-8-empty-require--revert-statement)
  27 |   - [L-9: Modifier Invoked Only Once](#l-9-modifier-invoked-only-once)
  28 |   - [L-10: Empty Block](#l-10-empty-block)
  29 |   - [L-11: Large Numeric Literal](#l-11-large-numeric-literal)
  30 |   - [L-12: Internal Function Used Only Once](#l-12-internal-function-used-only-once)
  31 |   - [L-13: Inconsistent uint256/uint (or) int256/int types](#l-13-inconsistent-uint256uint-or-int256int-types)
  32 |   - [L-14: Unused Error](#l-14-unused-error)
  33 |   - [L-15: Loop Contains `require`/`revert`](#l-15-loop-contains-requirerevert)
  34 |   - [L-16: Incorrect Order of Division and Multiplication](#l-16-incorrect-order-of-division-and-multiplication)
  35 |   - [L-17: Redundant Statement](#l-17-redundant-statement)
  36 |   - [L-18: Unused State Variable](#l-18-unused-state-variable)
  37 |   - [L-19: Boolean equality is not required](#l-19-boolean-equality-is-not-required)
  38 |   - [L-20: Local Variable Shadows State Variable](#l-20-local-variable-shadows-state-variable)
  39 |   - [L-21: Uninitialized Local Variable](#l-21-uninitialized-local-variable)
  40 |   - [L-22: Costly operations inside loop](#l-22-costly-operations-inside-loop)
  41 |   - [L-23: Missing Inheritance](#l-23-missing-inheritance)
  42 |   - [L-24: Unused Import](#l-24-unused-import)
  43 |   - [L-25: State Change Without Event](#l-25-state-change-without-event)
  44 |   - [L-26: State Variable Could Be Immutable](#l-26-state-variable-could-be-immutable)
  45 |   - [L-27: Unchecked Return](#l-27-unchecked-return)
  46 | 
  47 | 
  48 | # Summary
  49 | 
  50 | ## Files Summary
  51 | 
  52 | | Key | Value |
  53 | | --- | --- |
  54 | | .sol Files | 129 |
  55 | | Total nSLOC | 10226 |
  56 | 
  57 | 
  58 | ## Files Details
  59 | 
  60 | | Filepath | nSLOC |
  61 | | --- | --- |
  62 | | contracts/admin/TempleTeamPayments.sol | 81 |
  63 | | contracts/admin/TempleTeamPaymentsFactory.sol | 113 |
  64 | | contracts/admin/TempleTeamPaymentsV2.sol | 68 |
  65 | | contracts/amm/TempleStableAMMRouter.sol | 174 |
  66 | | contracts/amm/TempleUniswapV2Pair.sol | 146 |
  67 | | contracts/amm/TreasuryIV.sol | 17 |
  68 | | contracts/amo/AuraStaking.sol | 99 |
  69 | | contracts/amo/Ramos.sol | 350 |
  70 | | contracts/amo/helpers/AMOCommon.sol | 17 |
  71 | | contracts/amo/helpers/BalancerPoolHelper.sol | 329 |
  72 | | contracts/amo/test/RamosTestnetAuraStaking.sol | 79 |
  73 | | contracts/amo/test/RamosTestnetTempleTokenVault.sol | 28 |
  74 | | contracts/amo/test/external/IAuraStakingProxy.sol | 6 |
  75 | | contracts/amo/test/external/IAuraToken.sol | 4 |
  76 | | contracts/amo/test/external/IBalancerAuthorizer.sol | 13 |
  77 | | contracts/amo/test/external/IBalancerAuthorizerAdapter.sol | 7 |
  78 | | contracts/amo/test/external/IBalancerHelpers.sol | 27 |
  79 | | contracts/amo/test/external/IBalancerVotingEscrow.sol | 4 |
  80 | | contracts/amo/test/external/IGaugeAdder.sol | 4 |
  81 | | contracts/amo/test/external/IGaugeController.sol | 7 |
  82 | | contracts/amo/test/external/ILiquidityGaugeFactory.sol | 4 |
  83 | | contracts/amo/test/external/IPoolManagerProxy.sol | 4 |
  84 | | contracts/amo/test/external/IPoolManagerV3.sol | 5 |
  85 | | contracts/amo/test/external/IStashRewards.sol | 7 |
  86 | | contracts/amo/test/external/IWeightPool2Tokens.sol | 4 |
  87 | | contracts/amo/test/external/goerli/Goerli_ILiquidityGaugeFactory.sol | 5 |
  88 | | contracts/common/CommonEventsAndErrors.sol | 11 |
  89 | | contracts/common/SafeCast.sol | 10 |
  90 | | contracts/common/TempleMath.sol | 10 |
  91 | | contracts/core/Exposure.sol | 68 |
  92 | | contracts/core/JoiningFee.sol | 30 |
  93 | | contracts/core/MultiOtcOffer.sol | 163 |
  94 | | contracts/core/OpsManager.sol | 110 |
  95 | | contracts/core/OpsManagerLib.sol | 76 |
  96 | | contracts/core/OtcOffer.sol | 91 |
  97 | | contracts/core/Rational.sol | 5 |
  98 | | contracts/core/RebasingERC20.sol | 45 |
  99 | | contracts/core/TempleERC20Token.sol | 23 |
 100 | | contracts/core/TreasuryFarmingRevenue.sol | 44 |
 101 | | contracts/core/Vault.sol | 117 |
 102 | | contracts/core/VaultEarlyWithdraw.sol | 49 |
 103 | | contracts/core/VaultProxy.sol | 84 |
 104 | | contracts/core/VaultedTemple.sol | 26 |
 105 | | contracts/deprecated/Faith.sol | 41 |
 106 | | contracts/deprecated/IExitQueue.sol | 4 |
 107 | | contracts/deprecated/InstantExitQueue.sol | 20 |
 108 | | contracts/deprecated/LockedOGTemple.sol | 61 |
 109 | | contracts/deprecated/OGTemple.sol | 13 |
 110 | | contracts/deprecated/TempleStaking.sol | 98 |
 111 | | contracts/fakes/FakeERC20.sol | 20 |
 112 | | contracts/fakes/FakeERC20CustomDecimals.sol | 26 |
 113 | | contracts/fakes/NoopLiquidator.sol | 13 |
 114 | | contracts/fakes/NoopVaultedTempleLiquidator.sol | 16 |
 115 | | contracts/fakes/UniswapV2Factory.sol | 2 |
 116 | | contracts/fakes/UniswapV2Router02NoEth.sol | 354 |
 117 | | contracts/fakes/governance/DummyTimelockController.sol | 28 |
 118 | | contracts/fakes/templegold/TempleGoldMock.sol | 78 |
 119 | | contracts/fakes/templegold/TempleGoldStakingMock.sol | 436 |
 120 | | contracts/fakes/templegold/TempleTokenMock.sol | 21 |
 121 | | contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol | 45 |
 122 | | contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol | 116 |
 123 | | contracts/governance/ElderElection.sol | 109 |
 124 | | contracts/governance/Templar.sol | 49 |
 125 | | contracts/governance/TemplarMetadata.sol | 23 |
 126 | | contracts/interfaces/amo/IAuraStaking.sol | 40 |
 127 | | contracts/interfaces/amo/IRamos.sol | 106 |
 128 | | contracts/interfaces/amo/helpers/IBalancerPoolHelper.sol | 86 |
 129 | | contracts/interfaces/amo/helpers/IRamosTokenVault.sol | 7 |
 130 | | contracts/interfaces/core/IMultiOtcOffer.sol | 60 |
 131 | | contracts/interfaces/core/ITempleERC20Token.sol | 7 |
 132 | | contracts/interfaces/external/aura/IAuraBaseRewardPool.sol | 15 |
 133 | | contracts/interfaces/external/aura/IAuraBooster.sol | 21 |
 134 | | contracts/interfaces/external/balancer/IBalancerBptToken.sol | 5 |
 135 | | contracts/interfaces/external/balancer/IBalancerHelpers.sol | 16 |
 136 | | contracts/interfaces/external/balancer/IBalancerVault.sol | 66 |
 137 | | contracts/interfaces/external/makerDao/IMakerDaoDaiJoinLike.sol | 7 |
 138 | | contracts/interfaces/external/makerDao/IMakerDaoPotLike.sol | 10 |
 139 | | contracts/interfaces/external/makerDao/IMakerDaoVatLike.sol | 5 |
 140 | | contracts/interfaces/templegold/IAuctionBase.sol | 26 |
 141 | | contracts/interfaces/templegold/IDaiGoldAuction.sol | 33 |
 142 | | contracts/interfaces/templegold/ISpiceAuction.sol | 37 |
 143 | | contracts/interfaces/templegold/ISpiceAuctionFactory.sol | 10 |
 144 | | contracts/interfaces/templegold/ITempleGold.sol | 57 |
 145 | | contracts/interfaces/templegold/ITempleGoldAdmin.sol | 19 |
 146 | | contracts/interfaces/templegold/ITempleGoldStaking.sol | 86 |
 147 | | contracts/interfaces/templegold/ITempleTeleporter.sol | 24 |
 148 | | contracts/interfaces/v2/ITempleDebtToken.sol | 60 |
 149 | | contracts/interfaces/v2/ITreasuryPriceIndexOracle.sol | 20 |
 150 | | contracts/interfaces/v2/ITreasuryReservesVault.sol | 118 |
 151 | | contracts/interfaces/v2/access/ITempleElevatedAccess.sol | 23 |
 152 | | contracts/interfaces/v2/circuitBreaker/ITempleCircuitBreaker.sol | 5 |
 153 | | contracts/interfaces/v2/circuitBreaker/ITempleCircuitBreakerProxy.sol | 27 |
 154 | | contracts/interfaces/v2/interestRate/IInterestRateModel.sol | 6 |
 155 | | contracts/interfaces/v2/safeGuards/IThresholdSafeGuard.sol | 16 |
 156 | | contracts/interfaces/v2/strategies/ITempleBaseStrategy.sol | 8 |
 157 | | contracts/interfaces/v2/strategies/ITempleStrategy.sol | 35 |
 158 | | contracts/interfaces/v2/strategies/ITlcStrategy.sol | 5 |
 159 | | contracts/interfaces/v2/templeLineOfCredit/ITempleLineOfCredit.sol | 54 |
 160 | | contracts/interfaces/v2/templeLineOfCredit/ITlcDataTypes.sol | 38 |
 161 | | contracts/interfaces/v2/templeLineOfCredit/ITlcEventsAndErrors.sol | 19 |
 162 | | contracts/templegold/AuctionBase.sol | 10 |
 163 | | contracts/templegold/DaiGoldAuction.sol | 162 |
 164 | | contracts/templegold/EpochLib.sol | 13 |
 165 | | contracts/templegold/SpiceAuction.sol | 197 |
 166 | | contracts/templegold/SpiceAuctionFactory.sol | 42 |
 167 | | contracts/templegold/TempleGold.sol | 172 |
 168 | | contracts/templegold/TempleGoldAdmin.sol | 50 |
 169 | | contracts/templegold/TempleGoldStaking.sol | 355 |
 170 | | contracts/templegold/TempleTeleporter.sol | 58 |
 171 | | contracts/util/ABDKMath64x64.sol | 478 |
 172 | | contracts/util/ABDKMathQuad.sol | 793 |
 173 | | contracts/v2/TempleDebtToken.sol | 421 |
 174 | | contracts/v2/TreasuryPriceIndexOracle.sol | 58 |
 175 | | contracts/v2/TreasuryReservesVault.sol | 448 |
 176 | | contracts/v2/access/TempleElevatedAccess.sol | 78 |
 177 | | contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol | 96 |
 178 | | contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol | 49 |
 179 | | contracts/v2/interestRate/BaseInterestRateModel.sol | 16 |
 180 | | contracts/v2/interestRate/CompoundedInterest.sol | 15 |
 181 | | contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol | 97 |
 182 | | contracts/v2/safeGuards/SafeForked.sol | 65 |
 183 | | contracts/v2/safeGuards/ThresholdSafeGuard.sol | 124 |
 184 | | contracts/v2/strategies/AbstractStrategy.sol | 106 |
 185 | | contracts/v2/strategies/DsrBaseStrategy.sol | 163 |
 186 | | contracts/v2/strategies/GnosisStrategy.sol | 104 |
 187 | | contracts/v2/strategies/RamosStrategy.sol | 156 |
 188 | | contracts/v2/strategies/TempleTokenBaseStrategy.sol | 62 |
 189 | | contracts/v2/strategies/TlcStrategy.sol | 56 |
 190 | | contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol | 468 |
 191 | | **Total** | **10226** |
 192 | 
 193 | 
 194 | ## Issue Summary
 195 | 
 196 | | Category | No. of Issues |
 197 | | --- | --- |
 198 | | High | 7 |
 199 | | Low | 27 |
 200 | 
 201 | 
 202 | # High Issues
 203 | 
 204 | ## H-1: Unsafe Casting of integers
 205 | 
 206 | Downcasting int/uints in Solidity can be unsafe due to the potential for data loss and unintended behavior.When downcasting a larger integer type to a smaller one (e.g., uint256 to uint128), the value may exceed the range of the target type,leading to truncation and loss of significant digits. Use OpenZeppelin's SafeCast library to safely downcast integers.
 207 | 
 208 | <details><summary>2 Found Instances</summary>
 209 | 
 210 | 
 211 | - Found in contracts/util/ABDKMath64x64.sol [Line: 483](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L483)
 212 | 
 213 | 	```solidity
 214 | 	      return int128 (result);
 215 | 	```
 216 | 
 217 | - Found in contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol [Line: 140](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol#L140)
 218 | 
 219 | 	```solidity
 220 | 	        return uint96(interestRate);
 221 | 	```
 222 | 
 223 | </details>
 224 | 
 225 | 
 226 | 
 227 | ## H-2: Contract Name Reused in Different Files
 228 | 
 229 | When compiling contracts with certain development frameworks (for example: Truffle), having contracts with the same name across different files can lead to one being overwritten.
 230 | 
 231 | <details><summary>4 Found Instances</summary>
 232 | 
 233 | 
 234 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L13)
 235 | 
 236 | 	```solidity
 237 | 	interface IWeightPool2Tokens {
 238 | 	```
 239 | 
 240 | - Found in contracts/amo/test/external/IBalancerHelpers.sol [Line: 5](../tests/2024-07-templegold/protocol/contracts/amo/test/external/IBalancerHelpers.sol#L5)
 241 | 
 242 | 	```solidity
 243 | 	interface IBalancerHelpers {
 244 | 	```
 245 | 
 246 | - Found in contracts/amo/test/external/IWeightPool2Tokens.sol [Line: 5](../tests/2024-07-templegold/protocol/contracts/amo/test/external/IWeightPool2Tokens.sol#L5)
 247 | 
 248 | 	```solidity
 249 | 	interface IWeightPool2Tokens {
 250 | 	```
 251 | 
 252 | - Found in contracts/interfaces/external/balancer/IBalancerHelpers.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/interfaces/external/balancer/IBalancerHelpers.sol#L7)
 253 | 
 254 | 	```solidity
 255 | 	interface IBalancerHelpers {
 256 | 	```
 257 | 
 258 | </details>
 259 | 
 260 | 
 261 | 
 262 | ## H-3: ETH transferred without address checks
 263 | 
 264 | Consider introducing checks for `msg.sender` to ensure the recipient of the money is as intended.
 265 | 
 266 | <details><summary>29 Found Instances</summary>
 267 | 
 268 | 
 269 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L74)
 270 | 
 271 | 	```solidity
 272 | 	    function claim() external addressExists(msg.sender) {
 273 | 	```
 274 | 
 275 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L74)
 276 | 
 277 | 	```solidity
 278 | 	    function claim(uint256 _claimAmount) external {
 279 | 	```
 280 | 
 281 | - Found in contracts/amo/test/RamosTestnetTempleTokenVault.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetTempleTokenVault.sol#L27)
 282 | 
 283 | 	```solidity
 284 | 	    function borrowQuoteToken(uint256 amount, address recipient) external {
 285 | 	```
 286 | 
 287 | - Found in contracts/amo/test/RamosTestnetTempleTokenVault.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetTempleTokenVault.sol#L31)
 288 | 
 289 | 	```solidity
 290 | 	    function repayProtocolToken(uint256 amount) external {
 291 | 	```
 292 | 
 293 | - Found in contracts/amo/test/RamosTestnetTempleTokenVault.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetTempleTokenVault.sol#L36)
 294 | 
 295 | 	```solidity
 296 | 	    function repayQuoteToken(uint256 amount) external {
 297 | 	```
 298 | 
 299 | - Found in contracts/core/MultiOtcOffer.sol [Line: 156](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L156)
 300 | 
 301 | 	```solidity
 302 | 	    function swap(bytes32 marketId, uint256 sellTokenAmount) external override whenNotPaused returns (uint256) {
 303 | 	```
 304 | 
 305 | - Found in contracts/core/MultiOtcOffer.sol [Line: 168](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L168)
 306 | 
 307 | 	```solidity
 308 | 	    function swap(
 309 | 	```
 310 | 
 311 | - Found in contracts/core/OtcOffer.sol [Line: 131](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L131)
 312 | 
 313 | 	```solidity
 314 | 	    function swap(uint256 sellTokenAmount) external whenNotPaused returns (uint256 buyTokenAmount) {
 315 | 	```
 316 | 
 317 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L57)
 318 | 
 319 | 	```solidity
 320 | 	    function withdraw(address _vault, uint256 _templeAmount) external whenNotPaused {
 321 | 	```
 322 | 
 323 | - Found in contracts/core/VaultProxy.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L58)
 324 | 
 325 | 	```solidity
 326 | 	    function depositTempleWithFaith(uint256 _amountTemple, uint112 _amountFaith, Vault vault) public {
 327 | 	```
 328 | 
 329 | - Found in contracts/core/VaultProxy.sol [Line: 71](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L71)
 330 | 
 331 | 	```solidity
 332 | 	    function unstakeAndDepositTempleWithFaith(uint256 _amountOGT, uint112 _amountFaith, Vault vault) external {
 333 | 	```
 334 | 
 335 | - Found in contracts/core/VaultProxy.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L83)
 336 | 
 337 | 	```solidity
 338 | 	    function unstakeAndDepositIntoVault(uint256 _amountOGT, Vault vault) external {
 339 | 	```
 340 | 
 341 | - Found in contracts/core/VaultProxy.sol [Line: 109](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L109)
 342 | 
 343 | 	```solidity
 344 | 	    function depositTempleFor(uint256 _amount, Vault vault) public {
 345 | 	```
 346 | 
 347 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L35)
 348 | 
 349 | 	```solidity
 350 | 	  function lockFor(
 351 | 	```
 352 | 
 353 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L55)
 354 | 
 355 | 	```solidity
 356 | 	  function lock(uint256 _amountOGTemple, uint256 _lockedUntilTimestamp)
 357 | 	```
 358 | 
 359 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 62](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L62)
 360 | 
 361 | 	```solidity
 362 | 	  function withdrawFor(address _staker, uint256 _idx) public {
 363 | 	```
 364 | 
 365 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L83)
 366 | 
 367 | 	```solidity
 368 | 	  function withdraw(uint256 _idx) external {
 369 | 	```
 370 | 
 371 | - Found in contracts/deprecated/TempleStaking.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L123)
 372 | 
 373 | 	```solidity
 374 | 	    function stakeFor(address _staker, uint256 _amountTemple) public returns(uint256 amountOgTemple) {
 375 | 	```
 376 | 
 377 | - Found in contracts/deprecated/TempleStaking.sol [Line: 139](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L139)
 378 | 
 379 | 	```solidity
 380 | 	    function stake(uint256 _amountTemple) external returns(uint256 amountOgTemple) {
 381 | 	```
 382 | 
 383 | - Found in contracts/deprecated/TempleStaking.sol [Line: 144](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L144)
 384 | 
 385 | 	```solidity
 386 | 	    function unstake(uint256 _amountOgTemple) external {      
 387 | 	```
 388 | 
 389 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 132](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L132)
 390 | 
 391 | 	```solidity
 392 | 	    function bid(uint256 amount) external virtual override onlyWhenLive {
 393 | 	```
 394 | 
 395 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 150](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L150)
 396 | 
 397 | 	```solidity
 398 | 	    function claim(uint256 epochId) external virtual override {
 399 | 	```
 400 | 
 401 | - Found in contracts/templegold/SpiceAuction.sol [Line: 183](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L183)
 402 | 
 403 | 	```solidity
 404 | 	    function bid(uint256 amount) external virtual override {
 405 | 	```
 406 | 
 407 | - Found in contracts/templegold/SpiceAuction.sol [Line: 209](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L209)
 408 | 
 409 | 	```solidity
 410 | 	    function claim(uint256 epochId) external virtual override {
 411 | 	```
 412 | 
 413 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 145](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L145)
 414 | 
 415 | 	```solidity
 416 | 	    function addCollateral(uint128 collateralAmount, address onBehalfOf) external override notInRescueMode {
 417 | 	```
 418 | 
 419 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 166](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L166)
 420 | 
 421 | 	```solidity
 422 | 	    function removeCollateral(uint128 amount, address recipient) external override notInRescueMode {
 423 | 	```
 424 | 
 425 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 253](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L253)
 426 | 
 427 | 	```solidity
 428 | 	    function repay(uint128 repayAmount, address onBehalfOf) external override notInRescueMode {
 429 | 	```
 430 | 
 431 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 287](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L287)
 432 | 
 433 | 	```solidity
 434 | 	    function repayAll(address onBehalfOf) external override notInRescueMode {
 435 | 	```
 436 | 
 437 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 318](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L318)
 438 | 
 439 | 	```solidity
 440 | 	    function batchLiquidate(
 441 | 	```
 442 | 
 443 | </details>
 444 | 
 445 | 
 446 | 
 447 | ## H-4: Weak Randomness
 448 | 
 449 | The use of keccak256 hash functions on predictable values like block.timestamp, block.number, or similar data, including modulo operations on these values, should be avoided for generating randomness, as they are easily predictable and manipulable. The `PREVRANDAO` opcode also should not be used as a source of randomness. Instead, utilize Chainlink VRF for cryptographically secure and provably random values to ensure protocol integrity.
 450 | 
 451 | <details><summary>1 Found Instances</summary>
 452 | 
 453 | 
 454 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 82](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L82)
 455 | 
 456 | 	```solidity
 457 | 	        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
 458 | 	```
 459 | 
 460 | </details>
 461 | 
 462 | 
 463 | 
 464 | ## H-5: Deletion from a nested mapping
 465 | 
 466 | A deletion in a structure containing a mapping will not delete the mapping. The remaining data may be used to compromise the contract.
 467 | 
 468 | <details><summary>1 Found Instances</summary>
 469 | 
 470 | 
 471 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 317](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L317)
 472 | 
 473 | 	```solidity
 474 | 	        delete strategies[strategy];
 475 | 	```
 476 | 
 477 | </details>
 478 | 
 479 | 
 480 | 
 481 | ## H-6: Contract locks Ether without a withdraw function
 482 | 
 483 | It appears that the contract includes a payable function to accept Ether but lacks a corresponding function to withdraw it, which leads to the Ether being locked in the contract. To resolve this issue, please implement a public or external function that allows for the withdrawal of Ether from the contract.
 484 | 
 485 | <details><summary>1 Found Instances</summary>
 486 | 
 487 | 
 488 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L21)
 489 | 
 490 | 	```solidity
 491 | 	contract UniswapV2Router02NoEth is IUniswapV2Router02 {
 492 | 	```
 493 | 
 494 | </details>
 495 | 
 496 | 
 497 | 
 498 | ## H-7: Reentrancy: State change after external call
 499 | 
 500 | Changing state after an external call can lead to re-entrancy attacks.Use the checks-effects-interactions pattern to avoid this issue.
 501 | 
 502 | <details><summary>23 Found Instances</summary>
 503 | 
 504 | 
 505 | - Found in contracts/amo/Ramos.sol [Line: 195](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L195)
 506 | 
 507 | 	State is changed at: `tokenVault = IRamosTokenVault(vault)`
 508 | 	```solidity
 509 | 	            protocolToken.approve(previousVault, 0);
 510 | 	```
 511 | 
 512 | - Found in contracts/amo/Ramos.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L196)
 513 | 
 514 | 	State is changed at: `tokenVault = IRamosTokenVault(vault)`
 515 | 	```solidity
 516 | 	            quoteToken.approve(previousVault, 0);
 517 | 	```
 518 | 
 519 | - Found in contracts/core/MultiOtcOffer.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L68)
 520 | 
 521 | 	State is changed at: `marketInfo.scalar = 10 ** scaleDecimals`
 522 | 	```solidity
 523 | 	        uint256 scaleDecimals = marketInfo.offerPricingToken == OfferPricingToken.UserBuyToken
 524 | 	```
 525 | 
 526 | - Found in contracts/core/OpsManager.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L36)
 527 | 
 528 | 	State is changed at: `vaultedTemple = new VaultedTemple(_templeToken, address(templeExposure))`
 529 | 	```solidity
 530 | 	        templeExposure.setMinterState(address(this), true);
 531 | 	```
 532 | 
 533 | - Found in contracts/core/OtcOffer.sol [Line: 91](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L91)
 534 | 
 535 | 	State is changed at: `scalar = 10 ** scaleDecimals`
 536 | 	```solidity
 537 | 	        uint256 scaleDecimals = offerPricingToken == OfferPricingToken.UserBuyToken
 538 | 	```
 539 | 
 540 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 158](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L158)
 541 | 
 542 | 	State is changed at: `_accountLastStakeIndex[msg.sender] = ++_lastIndex`
 543 | 	```solidity
 544 | 	        uint256 amount = previousStaking.migrateWithdraw(msg.sender, index);
 545 | 	```
 546 | 
 547 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L52)
 548 | 
 549 | 	State is changed at: `daiSavingsRate = _newRate`
 550 | 	```solidity
 551 | 	        _checkpointDaiBalance(daiToken.balanceOf(address(this)));
 552 | 	```
 553 | 
 554 | - Found in contracts/governance/ElderElection.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L74)
 555 | 
 556 | 	State is changed at: `candidates[discordId] = true`, `numCandidates += 1`
 557 | 	```solidity
 558 | 	        templars.checkExists(discordId);
 559 | 	```
 560 | 
 561 | - Found in contracts/governance/ElderElection.sol [Line: 87](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L87)
 562 | 
 563 | 	State is changed at: `candidates[discordId] = false`, `numCandidates -= 1`
 564 | 	```solidity
 565 | 	        templars.checkExists(discordId);
 566 | 	```
 567 | 
 568 | - Found in contracts/governance/TemplarMetadata.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L32)
 569 | 
 570 | 	State is changed at: `templeRole[discordId] = _templeRole`
 571 | 	```solidity
 572 | 	        templars.checkExists(discordId);
 573 | 	```
 574 | 
 575 | - Found in contracts/templegold/SpiceAuction.sol [Line: 159](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L159)
 576 | 
 577 | 	State is changed at: `uint128 startTime = info.startTime = uint128(block.timestamp) + config.startCooldown`, `uint128 endTime = info.endTime = startTime + config.duration`, `info.totalAuctionTokenAmount = epochAuctionTokenAmount`, `_totalAuctionTokenAllocation[auctionToken] = totalAuctionTokenAllocation + epochAuctionTokenAmount`
 578 | 	```solidity
 579 | 	        uint256 balance = IERC20(auctionToken).balanceOf(address(this));
 580 | 	```
 581 | 
 582 | - Found in contracts/templegold/SpiceAuction.sol [Line: 194](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L194)
 583 | 
 584 | 	State is changed at: `info.totalBidTokenAmount += amount`
 585 | 	```solidity
 586 | 	        uint256 _bidTokenAmountBefore = IERC20(bidToken).balanceOf(_recipient);
 587 | 	```
 588 | 
 589 | - Found in contracts/templegold/SpiceAuction.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L196)
 590 | 
 591 | 	State is changed at: `info.totalBidTokenAmount += amount`
 592 | 	```solidity
 593 | 	        uint256 _bidTokenAmountAfter = IERC20(bidToken).balanceOf(_recipient);
 594 | 	```
 595 | 
 596 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 148](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L148)
 597 | 
 598 | 	State is changed at: `tpiOracle = _tpiOracle`
 599 | 	```solidity
 600 | 	        if (_tpiOracle.treasuryPriceIndex() == 0) revert CommonEventsAndErrors.InvalidParam();
 601 | 	```
 602 | 
 603 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 296](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L296)
 604 | 
 605 | 	State is changed at: `delete strategies[strategy]`, `delete _strategyConfig.debtCeiling[_token]`, `delete _strategyConfig.enabledBorrowTokens[_token]`, `delete credits[_token]`
 606 | 	```solidity
 607 | 	            _outstandingDebt = borrowTokens[_token].dToken.burnAll(strategy);
 608 | 	```
 609 | 
 610 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L55)
 611 | 
 612 | 	State is changed at: `pot = IMakerDaoPotLike(_pot)`, `daiToken = IERC20(_daiToken)`
 613 | 	```solidity
 614 | 	        IMakerDaoVatLike vat = IMakerDaoVatLike(daiJoin.vat());
 615 | 	```
 616 | 
 617 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L57)
 618 | 
 619 | 	State is changed at: `daiToken = IERC20(_daiToken)`
 620 | 	```solidity
 621 | 	        vat.hope(address(daiJoin));
 622 | 	```
 623 | 
 624 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L58)
 625 | 
 626 | 	State is changed at: `daiToken = IERC20(_daiToken)`
 627 | 	```solidity
 628 | 	        vat.hope(address(pot));
 629 | 	```
 630 | 
 631 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 173](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L173)
 632 | 
 633 | 	State is changed at: `_accountData.collateral = _collateral - amount`, `totalCollateral -= amount`
 634 | 	```solidity
 635 | 	        circuitBreakerProxy.preCheck(
 636 | 	```
 637 | 
 638 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 213](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L213)
 639 | 
 640 | 	State is changed at: `_accountData.debtCheckpoint = _totalDebt`, `_accountData.interestAccumulator = _cache.interestAccumulator`, `debtTokenData.totalDebt = _cache.totalDebt = _cache.totalDebt + amount`
 641 | 	```solidity
 642 | 	        circuitBreakerProxy.preCheck(
 643 | 	```
 644 | 
 645 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 351](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L351)
 646 | 
 647 | 	State is changed at: `totalCollateral -= totalCollateralClaimed`
 648 | 	```solidity
 649 | 	            treasuryReservesVault.repay(templeToken, totalCollateralClaimed, address(tlcStrategy));
 650 | 	```
 651 | 
 652 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 394](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)
 653 | 
 654 | 	State is changed at: `treasuryReservesVault = ITreasuryReservesVault(_trv)`
 655 | 	```solidity
 656 | 	            daiToken.approve(previousTrv, 0);
 657 | 	```
 658 | 
 659 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 397](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L397)
 660 | 
 661 | 	State is changed at: `treasuryReservesVault = ITreasuryReservesVault(_trv)`
 662 | 	```solidity
 663 | 	        address _trv = address(tlcStrategy.treasuryReservesVault());
 664 | 	```
 665 | 
 666 | </details>
 667 | 
 668 | 
 669 | 
 670 | # Low Issues
 671 | 
 672 | ## L-1: Centralization Risk
 673 | 
 674 | Contracts have owners with privileged rights to perform admin tasks and need to be trusted to not perform malicious updates or drain funds.
 675 | 
 676 | <details><summary>91 Found Instances</summary>
 677 | 
 678 | 
 679 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 8](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L8)
 680 | 
 681 | 	```solidity
 682 | 	contract TempleTeamPayments is Ownable {
 683 | 	```
 684 | 
 685 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L32)
 686 | 
 687 | 	```solidity
 688 | 	    ) external onlyOwner {
 689 | 	```
 690 | 
 691 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 44](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L44)
 692 | 
 693 | 	```solidity
 694 | 	    function setAllocation(address _address, uint256 _amount) external onlyOwner {
 695 | 	```
 696 | 
 697 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 51](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L51)
 698 | 
 699 | 	```solidity
 700 | 	        onlyOwner
 701 | 	```
 702 | 
 703 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L83)
 704 | 
 705 | 	```solidity
 706 | 	    function adhocPayment(address _to, uint256 _amount) external onlyOwner {
 707 | 	```
 708 | 
 709 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 92](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L92)
 710 | 
 711 | 	```solidity
 712 | 	        onlyOwner
 713 | 	```
 714 | 
 715 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L9)
 716 | 
 717 | 	```solidity
 718 | 	contract TempleTeamPaymentsFactory is Ownable {
 719 | 	```
 720 | 
 721 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L58)
 722 | 
 723 | 	```solidity
 724 | 	    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
 725 | 	```
 726 | 
 727 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 66](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L66)
 728 | 
 729 | 	```solidity
 730 | 	    ) external onlyOwner {
 731 | 	```
 732 | 
 733 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 84](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L84)
 734 | 
 735 | 	```solidity
 736 | 	    ) external onlyOwner returns (TempleTeamPaymentsV2) {
 737 | 	```
 738 | 
 739 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L123)
 740 | 
 741 | 	```solidity
 742 | 	    ) external onlyOwner {
 743 | 	```
 744 | 
 745 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 39](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L39)
 746 | 
 747 | 	```solidity
 748 | 	    ) external onlyOwner {
 749 | 	```
 750 | 
 751 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 46](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L46)
 752 | 
 753 | 	```solidity
 754 | 	    ) external onlyOwner {
 755 | 	```
 756 | 
 757 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 59](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L59)
 758 | 
 759 | 	```solidity
 760 | 	    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
 761 | 	```
 762 | 
 763 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 65](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L65)
 764 | 
 765 | 	```solidity
 766 | 	    function toggleMember(address _address) external onlyOwner {
 767 | 	```
 768 | 
 769 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L22)
 770 | 
 771 | 	```solidity
 772 | 	contract TempleStableAMMRouter is Ownable {
 773 | 	```
 774 | 
 775 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L48)
 776 | 
 777 | 	```solidity
 778 | 	    function addPair(address _token, address _pair) external onlyOwner {
 779 | 	```
 780 | 
 781 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L52)
 782 | 
 783 | 	```solidity
 784 | 	    function setTreasury(ITreasuryIV _templeTreasury) external onlyOwner {
 785 | 	```
 786 | 
 787 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L56)
 788 | 
 789 | 	```solidity
 790 | 	    function setDefendStable(address _defendStable) external onlyOwner {
 791 | 	```
 792 | 
 793 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 226](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L226)
 794 | 
 795 | 	```solidity
 796 | 	  function withdraw(address token, address to, uint256 amount) external onlyOwner {
 797 | 	```
 798 | 
 799 | - Found in contracts/amm/TreasuryIV.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L9)
 800 | 
 801 | 	```solidity
 802 | 	contract TreasuryIV is Ownable {
 803 | 	```
 804 | 
 805 | - Found in contracts/amm/TreasuryIV.sol [Line: 23](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L23)
 806 | 
 807 | 	```solidity
 808 | 	    function setIV(uint256 frax, uint256 temple) external onlyOwner {
 809 | 	```
 810 | 
 811 | - Found in contracts/core/Exposure.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L15)
 812 | 
 813 | 	```solidity
 814 | 	contract Exposure is Ownable, RebasingERC20 {
 815 | 	```
 816 | 
 817 | - Found in contracts/core/Exposure.sol [Line: 47](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L47)
 818 | 
 819 | 	```solidity
 820 | 	    function increaseReval(uint256 amount) external onlyOwner {
 821 | 	```
 822 | 
 823 | - Found in contracts/core/Exposure.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L57)
 824 | 
 825 | 	```solidity
 826 | 	    function decreaseReval(uint256 amount) external onlyOwner {
 827 | 	```
 828 | 
 829 | - Found in contracts/core/Exposure.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L67)
 830 | 
 831 | 	```solidity
 832 | 	    function setLiqidator(ILiquidator _liquidator) external onlyOwner {
 833 | 	```
 834 | 
 835 | - Found in contracts/core/Exposure.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L76)
 836 | 
 837 | 	```solidity
 838 | 	    function setMinterState(address account, bool state) external onlyOwner {
 839 | 	```
 840 | 
 841 | - Found in contracts/core/JoiningFee.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L16)
 842 | 
 843 | 	```solidity
 844 | 	contract JoiningFee is Ownable {
 845 | 	```
 846 | 
 847 | - Found in contracts/core/JoiningFee.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L41)
 848 | 
 849 | 	```solidity
 850 | 	    function setHourlyJoiningFeeFor(address vault, uint256 amount) external onlyOwner {
 851 | 	```
 852 | 
 853 | - Found in contracts/core/OpsManager.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L17)
 854 | 
 855 | 	```solidity
 856 | 	contract OpsManager is Ownable {
 857 | 	```
 858 | 
 859 | - Found in contracts/core/OpsManager.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L49)
 860 | 
 861 | 	```solidity
 862 | 	    ) external onlyOwner  {
 863 | 	```
 864 | 
 865 | - Found in contracts/core/OpsManager.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L70)
 866 | 
 867 | 	```solidity
 868 | 	    ) external onlyOwner {
 869 | 	```
 870 | 
 871 | - Found in contracts/core/OpsManager.sol [Line: 110](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L110)
 872 | 
 873 | 	```solidity
 874 | 	    function addRevenue(IERC20[] memory exposureTokens, uint256[] memory amounts) external onlyOwner {
 875 | 	```
 876 | 
 877 | - Found in contracts/core/OpsManager.sol [Line: 121](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L121)
 878 | 
 879 | 	```solidity
 880 | 	    function updateExposureReval(IERC20[] memory exposureTokens, uint256[] memory revals) external onlyOwner {
 881 | 	```
 882 | 
 883 | - Found in contracts/core/OpsManager.sol [Line: 130](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L130)
 884 | 
 885 | 	```solidity
 886 | 	    function increaseVaultTemple(Vault[] memory vaults, uint256[] memory amountsTemple) external onlyOwner {
 887 | 	```
 888 | 
 889 | - Found in contracts/core/OpsManager.sol [Line: 144](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L144)
 890 | 
 891 | 	```solidity
 892 | 	    function liquidateExposures(Vault[] memory vaults, IERC20[] memory exposureTokens) external onlyOwner {
 893 | 	```
 894 | 
 895 | - Found in contracts/core/OpsManager.sol [Line: 170](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L170)
 896 | 
 897 | 	```solidity
 898 | 	    function setExposureLiquidator(IERC20 exposureToken, ILiquidator _liquidator) external onlyOwner {
 899 | 	```
 900 | 
 901 | - Found in contracts/core/OpsManager.sol [Line: 178](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L178)
 902 | 
 903 | 	```solidity
 904 | 	    function setExposureMinterState(IERC20 exposureToken, address account, bool state) external onlyOwner {
 905 | 	```
 906 | 
 907 | - Found in contracts/core/OtcOffer.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L19)
 908 | 
 909 | 	```solidity
 910 | 	contract OtcOffer is Pausable, Ownable {
 911 | 	```
 912 | 
 913 | - Found in contracts/core/OtcOffer.sol [Line: 98](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L98)
 914 | 
 915 | 	```solidity
 916 | 	    function pause() external onlyOwner {
 917 | 	```
 918 | 
 919 | - Found in contracts/core/OtcOffer.sol [Line: 103](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L103)
 920 | 
 921 | 	```solidity
 922 | 	    function unpause() external onlyOwner {
 923 | 	```
 924 | 
 925 | - Found in contracts/core/OtcOffer.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L108)
 926 | 
 927 | 	```solidity
 928 | 	    function setFundsOwner(address _fundsOwner) external onlyOwner {
 929 | 	```
 930 | 
 931 | - Found in contracts/core/OtcOffer.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L116)
 932 | 
 933 | 	```solidity
 934 | 	    function setOfferPrice(uint256 _offerPrice) external onlyOwner {
 935 | 	```
 936 | 
 937 | - Found in contracts/core/OtcOffer.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L123)
 938 | 
 939 | 	```solidity
 940 | 	    function setOfferPriceRange(uint128 _minValidOfferPrice, uint128 _maxValidOfferPrice) external onlyOwner {
 941 | 	```
 942 | 
 943 | - Found in contracts/core/TempleERC20Token.sol [Line: 11](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L11)
 944 | 
 945 | 	```solidity
 946 | 	contract TempleERC20Token is ERC20, ERC20Burnable, Ownable, AccessControl {
 947 | 	```
 948 | 
 949 | - Found in contracts/core/TempleERC20Token.sol [Line: 23](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L23)
 950 | 
 951 | 	```solidity
 952 | 	    function addMinter(address account) external onlyOwner {
 953 | 	```
 954 | 
 955 | - Found in contracts/core/TempleERC20Token.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L27)
 956 | 
 957 | 	```solidity
 958 | 	    function removeMinter(address account) external onlyOwner {
 959 | 	```
 960 | 
 961 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L17)
 962 | 
 963 | 	```solidity
 964 | 	contract TreasuryFarmingRevenue is Ownable {
 965 | 	```
 966 | 
 967 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L48)
 968 | 
 969 | 	```solidity
 970 | 	    function addRevenue(uint256 revenueEarned) onlyOwner public {
 971 | 	```
 972 | 
 973 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L56)
 974 | 
 975 | 	```solidity
 976 | 	    function increaseShares(address account, uint256 amount) onlyOwner external {
 977 | 	```
 978 | 
 979 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L69)
 980 | 
 981 | 	```solidity
 982 | 	    function decreaseShares(address account, uint256 amount) onlyOwner external {
 983 | 	```
 984 | 
 985 | - Found in contracts/core/Vault.sol [Line: 29](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L29)
 986 | 
 987 | 	```solidity
 988 | 	contract Vault is Nonces, EIP712, Ownable, RebasingERC20 {
 989 | 	```
 990 | 
 991 | - Found in contracts/core/Vault.sol [Line: 113](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L113)
 992 | 
 993 | 	```solidity
 994 | 	    function redeemExposures(Exposure[] memory exposures) external onlyOwner {
 995 | 	```
 996 | 
 997 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L15)
 998 | 
 999 | 	```solidity
1000 | 	contract VaultEarlyWithdraw is Pausable, Ownable {
1001 | 	```
1002 | 
1003 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L41)
1004 | 
1005 | 	```solidity
1006 | 	    function pause() external onlyOwner {
1007 | 	```
1008 | 
1009 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 45](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L45)
1010 | 
1011 | 	```solidity
1012 | 	    function unpause() external onlyOwner {
1013 | 	```
1014 | 
1015 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L49)
1016 | 
1017 | 	```solidity
1018 | 	    function setMinWithdrawAmount(uint256 amount) external onlyOwner {
1019 | 	```
1020 | 
1021 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 73](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L73)
1022 | 
1023 | 	```solidity
1024 | 	    function recoverToken(address token, address to, uint256 amount) external onlyOwner {
1025 | 	```
1026 | 
1027 | - Found in contracts/core/VaultProxy.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L16)
1028 | 
1029 | 	```solidity
1030 | 	contract VaultProxy is Ownable {
1031 | 	```
1032 | 
1033 | - Found in contracts/core/VaultProxy.sol [Line: 118](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L118)
1034 | 
1035 | 	```solidity
1036 | 	    function toggleFaithClaimEnabled() external onlyOwner {
1037 | 	```
1038 | 
1039 | - Found in contracts/core/VaultProxy.sol [Line: 125](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L125)
1040 | 
1041 | 	```solidity
1042 | 	    function withdraw(address token, address to, uint256 amount) external onlyOwner {
1043 | 	```
1044 | 
1045 | - Found in contracts/core/VaultedTemple.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/core/VaultedTemple.sol#L35)
1046 | 
1047 | 	```solidity
1048 | 	contract VaultedTemple is ILiquidator, Ownable {
1049 | 	```
1050 | 
1051 | - Found in contracts/core/VaultedTemple.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/core/VaultedTemple.sol#L52)
1052 | 
1053 | 	```solidity
1054 | 	    function withdraw(address token, address to, uint256 amount) external onlyOwner {
1055 | 	```
1056 | 
1057 | - Found in contracts/deprecated/Faith.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L6)
1058 | 
1059 | 	```solidity
1060 | 	contract Faith is Ownable {
1061 | 	```
1062 | 
1063 | - Found in contracts/deprecated/Faith.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L50)
1064 | 
1065 | 	```solidity
1066 | 	    function addManager(address account) external onlyOwner {
1067 | 	```
1068 | 
1069 | - Found in contracts/deprecated/Faith.sol [Line: 54](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L54)
1070 | 
1071 | 	```solidity
1072 | 	    function removeManager(address account) external onlyOwner {
1073 | 	```
1074 | 
1075 | - Found in contracts/deprecated/OGTemple.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L16)
1076 | 
1077 | 	```solidity
1078 | 	contract OGTemple is ERC20, ERC20Burnable, Ownable {
1079 | 	```
1080 | 
1081 | - Found in contracts/deprecated/OGTemple.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L19)
1082 | 
1083 | 	```solidity
1084 | 	    function mint(address to, uint256 amount) external onlyOwner {
1085 | 	```
1086 | 
1087 | - Found in contracts/deprecated/TempleStaking.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L18)
1088 | 
1089 | 	```solidity
1090 | 	contract TempleStaking is Ownable {
1091 | 	```
1092 | 
1093 | - Found in contracts/deprecated/TempleStaking.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L67)
1094 | 
1095 | 	```solidity
1096 | 	    function setExitQueue(IExitQueue _EXIT_QUEUE) external onlyOwner {
1097 | 	```
1098 | 
1099 | - Found in contracts/deprecated/TempleStaking.sol [Line: 72](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L72)
1100 | 
1101 | 	```solidity
1102 | 	    function setEpy(uint256 _numerator, uint256 _denominator) external onlyOwner {
1103 | 	```
1104 | 
1105 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L58)
1106 | 
1107 | 	```solidity
1108 | 	    function authorizeContract(address _contract, bool _whitelist) external onlyOwner {
1109 | 	```
1110 | 
1111 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L9)
1112 | 
1113 | 	```solidity
1114 | 	contract TempleTokenMock is ERC20, ERC20Burnable, Ownable, AccessControl {
1115 | 	```
1116 | 
1117 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L21)
1118 | 
1119 | 	```solidity
1120 | 	    function addMinter(address account) external onlyOwner {
1121 | 	```
1122 | 
1123 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 25](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L25)
1124 | 
1125 | 	```solidity
1126 | 	    function removeMinter(address account) external onlyOwner {
1127 | 	```
1128 | 
1129 | - Found in contracts/governance/ElderElection.sol [Line: 24](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L24)
1130 | 
1131 | 	```solidity
1132 | 	contract ElderElection is Nonces, AccessControl {
1133 | 	```
1134 | 
1135 | - Found in contracts/governance/ElderElection.sol [Line: 73](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L73)
1136 | 
1137 | 	```solidity
1138 | 	    function nominate(uint256 discordId) external onlyRole(CAN_NOMINATE) {
1139 | 	```
1140 | 
1141 | - Found in contracts/governance/ElderElection.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L86)
1142 | 
1143 | 	```solidity
1144 | 	    function resign(uint256 discordId) external onlyRole(CAN_NOMINATE) {
1145 | 	```
1146 | 
1147 | - Found in contracts/governance/Templar.sol [Line: 12](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L12)
1148 | 
1149 | 	```solidity
1150 | 	contract Templar is ERC721, AccessControl {
1151 | 	```
1152 | 
1153 | - Found in contracts/governance/Templar.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L35)
1154 | 
1155 | 	```solidity
1156 | 	    function setBaseUri(string calldata _baseUri) external onlyRole(OWNER) {
1157 | 	```
1158 | 
1159 | - Found in contracts/governance/Templar.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L49)
1160 | 
1161 | 	```solidity
1162 | 	    ) external onlyRole(CAN_ASSIGN) {
1163 | 	```
1164 | 
1165 | - Found in contracts/governance/TemplarMetadata.sol [Line: 10](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L10)
1166 | 
1167 | 	```solidity
1168 | 	contract TemplarMetadata is AccessControl {
1169 | 	```
1170 | 
1171 | - Found in contracts/governance/TemplarMetadata.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L31)
1172 | 
1173 | 	```solidity
1174 | 	    ) external onlyRole(CAN_UPDATE) {
1175 | 	```
1176 | 
1177 | - Found in contracts/templegold/TempleGold.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L79)
1178 | 
1179 | 	```solidity
1180 | 	    function setStaking(address _staking) external override onlyOwner {
1181 | 	```
1182 | 
1183 | - Found in contracts/templegold/TempleGold.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L89)
1184 | 
1185 | 	```solidity
1186 | 	    function setEscrow(address _escrow) external override onlyOwner {
1187 | 	```
1188 | 
1189 | - Found in contracts/templegold/TempleGold.sol [Line: 99](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L99)
1190 | 
1191 | 	```solidity
1192 | 	    function setTeamGnosis(address _gnosis) external override onlyOwner {
1193 | 	```
1194 | 
1195 | - Found in contracts/templegold/TempleGold.sol [Line: 110](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L110)
1196 | 
1197 | 	```solidity
1198 | 	    function authorizeContract(address _contract, bool _whitelist) external override onlyOwner {
1199 | 	```
1200 | 
1201 | - Found in contracts/templegold/TempleGold.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L120)
1202 | 
1203 | 	```solidity
1204 | 	    function setDistributionParams(DistributionParams calldata _params) external override onlyOwner {
1205 | 	```
1206 | 
1207 | - Found in contracts/templegold/TempleGold.sol [Line: 130](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L130)
1208 | 
1209 | 	```solidity
1210 | 	    function setVestingFactor(VestingFactor calldata _factor) external override onlyOwner {
1211 | 	```
1212 | 
1213 | </details>
1214 | 
1215 | 
1216 | 
1217 | ## L-2: `ecrecover` Signature Malleability
1218 | 
1219 | The `ecrecover` function is susceptible to signature malleability. This means that the same message can be signed in multiple ways, allowing an attacker to change the message signature without invalidating it. This can lead to unexpected behavior in smart contracts, such as the loss of funds or the ability to bypass access control. Consider using OpenZeppelin's ECDSA library instead of the built-in function.
1220 | 
1221 | <details><summary>2 Found Instances</summary>
1222 | 
1223 | 
1224 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L120)
1225 | 
1226 | 	```solidity
1227 | 	                currentOwner = ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", dataHash)), v - 4, r, s);
1228 | 	```
1229 | 
1230 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 124](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L124)
1231 | 
1232 | 	```solidity
1233 | 	                currentOwner = ecrecover(dataHash, v, r, s);
1234 | 	```
1235 | 
1236 | </details>
1237 | 
1238 | 
1239 | 
1240 | ## L-3: Unsafe ERC20 Operation
1241 | 
1242 | ERC20 functions may not behave as expected. For example: return values are not always meaningful. It is recommended to use OpenZeppelin's SafeERC20 library.
1243 | 
1244 | <details><summary>4 Found Instances</summary>
1245 | 
1246 | 
1247 | - Found in contracts/amo/Ramos.sol [Line: 195](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L195)
1248 | 
1249 | 	```solidity
1250 | 	            protocolToken.approve(previousVault, 0);
1251 | 	```
1252 | 
1253 | - Found in contracts/amo/Ramos.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L196)
1254 | 
1255 | 	```solidity
1256 | 	            quoteToken.approve(previousVault, 0);
1257 | 	```
1258 | 
1259 | - Found in contracts/amo/Ramos.sol [Line: 489](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L489)
1260 | 
1261 | 	```solidity
1262 | 	                quoteToken.approve(address(balancerVault), 0);
1263 | 	```
1264 | 
1265 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 394](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)
1266 | 
1267 | 	```solidity
1268 | 	            daiToken.approve(previousTrv, 0);
1269 | 	```
1270 | 
1271 | </details>
1272 | 
1273 | 
1274 | 
1275 | ## L-4: Unspecific Solidity Pragma
1276 | 
1277 | Consider using a specific version of Solidity in your contracts instead of a wide version. For example, instead of `pragma solidity ^0.8.0;`, use `pragma solidity 0.8.0;`
1278 | 
1279 | <details><summary>71 Found Instances</summary>
1280 | 
1281 | 
1282 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L2)
1283 | 
1284 | 	```solidity
1285 | 	pragma solidity ^0.8.0;
1286 | 	```
1287 | 
1288 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L2)
1289 | 
1290 | 	```solidity
1291 | 	pragma solidity ^0.8.4;
1292 | 	```
1293 | 
1294 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L2)
1295 | 
1296 | 	```solidity
1297 | 	pragma solidity ^0.8.4;
1298 | 	```
1299 | 
1300 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L1)
1301 | 
1302 | 	```solidity
1303 | 	pragma solidity ^0.8.4;
1304 | 	```
1305 | 
1306 | - Found in contracts/amm/TreasuryIV.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L1)
1307 | 
1308 | 	```solidity
1309 | 	pragma solidity ^0.8.4;
1310 | 	```
1311 | 
1312 | - Found in contracts/amo/AuraStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L1)
1313 | 
1314 | 	```solidity
1315 | 	pragma solidity ^0.8.20;
1316 | 	```
1317 | 
1318 | - Found in contracts/amo/Ramos.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L1)
1319 | 
1320 | 	```solidity
1321 | 	pragma solidity ^0.8.20;
1322 | 	```
1323 | 
1324 | - Found in contracts/core/Exposure.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L1)
1325 | 
1326 | 	```solidity
1327 | 	pragma solidity ^0.8.4;
1328 | 	```
1329 | 
1330 | - Found in contracts/core/JoiningFee.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L1)
1331 | 
1332 | 	```solidity
1333 | 	pragma solidity ^0.8.4;
1334 | 	```
1335 | 
1336 | - Found in contracts/core/MultiOtcOffer.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L1)
1337 | 
1338 | 	```solidity
1339 | 	pragma solidity ^0.8.20;
1340 | 	```
1341 | 
1342 | - Found in contracts/core/OpsManager.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L1)
1343 | 
1344 | 	```solidity
1345 | 	pragma solidity ^0.8.4;
1346 | 	```
1347 | 
1348 | - Found in contracts/core/OtcOffer.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L1)
1349 | 
1350 | 	```solidity
1351 | 	pragma solidity ^0.8.20;
1352 | 	```
1353 | 
1354 | - Found in contracts/core/Rational.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/Rational.sol#L1)
1355 | 
1356 | 	```solidity
1357 | 	pragma solidity ^0.8.4;
1358 | 	```
1359 | 
1360 | - Found in contracts/core/RebasingERC20.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/RebasingERC20.sol#L1)
1361 | 
1362 | 	```solidity
1363 | 	pragma solidity ^0.8.4;
1364 | 	```
1365 | 
1366 | - Found in contracts/core/TempleERC20Token.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L1)
1367 | 
1368 | 	```solidity
1369 | 	pragma solidity ^0.8.4;
1370 | 	```
1371 | 
1372 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L1)
1373 | 
1374 | 	```solidity
1375 | 	pragma solidity ^0.8.4;
1376 | 	```
1377 | 
1378 | - Found in contracts/core/Vault.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L1)
1379 | 
1380 | 	```solidity
1381 | 	pragma solidity ^0.8.4;
1382 | 	```
1383 | 
1384 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L1)
1385 | 
1386 | 	```solidity
1387 | 	pragma solidity ^0.8.4;
1388 | 	```
1389 | 
1390 | - Found in contracts/core/VaultProxy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L1)
1391 | 
1392 | 	```solidity
1393 | 	pragma solidity ^0.8.4;
1394 | 	```
1395 | 
1396 | - Found in contracts/core/VaultedTemple.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/core/VaultedTemple.sol#L1)
1397 | 
1398 | 	```solidity
1399 | 	pragma solidity ^0.8.4;
1400 | 	```
1401 | 
1402 | - Found in contracts/deprecated/Faith.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L1)
1403 | 
1404 | 	```solidity
1405 | 	pragma solidity ^0.8.4;
1406 | 	```
1407 | 
1408 | - Found in contracts/deprecated/IExitQueue.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/IExitQueue.sol#L1)
1409 | 
1410 | 	```solidity
1411 | 	pragma solidity ^0.8.4;
1412 | 	```
1413 | 
1414 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L1)
1415 | 
1416 | 	```solidity
1417 | 	pragma solidity ^0.8.4;
1418 | 	```
1419 | 
1420 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L1)
1421 | 
1422 | 	```solidity
1423 | 	pragma solidity ^0.8.4;
1424 | 	```
1425 | 
1426 | - Found in contracts/deprecated/OGTemple.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L1)
1427 | 
1428 | 	```solidity
1429 | 	pragma solidity ^0.8.4;
1430 | 	```
1431 | 
1432 | - Found in contracts/deprecated/TempleStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L1)
1433 | 
1434 | 	```solidity
1435 | 	pragma solidity ^0.8.4;
1436 | 	```
1437 | 
1438 | - Found in contracts/fakes/FakeERC20.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/FakeERC20.sol#L1)
1439 | 
1440 | 	```solidity
1441 | 	pragma solidity ^0.8.20;
1442 | 	```
1443 | 
1444 | - Found in contracts/fakes/FakeERC20CustomDecimals.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/FakeERC20CustomDecimals.sol#L1)
1445 | 
1446 | 	```solidity
1447 | 	pragma solidity ^0.8.20;
1448 | 	```
1449 | 
1450 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L1)
1451 | 
1452 | 	```solidity
1453 | 	pragma solidity ^0.8.4;
1454 | 	```
1455 | 
1456 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L1)
1457 | 
1458 | 	```solidity
1459 | 	pragma solidity ^0.8.4;
1460 | 	```
1461 | 
1462 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L1)
1463 | 
1464 | 	```solidity
1465 | 	pragma solidity ^0.8.20;
1466 | 	```
1467 | 
1468 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L1)
1469 | 
1470 | 	```solidity
1471 | 	pragma solidity ^0.8.20;
1472 | 	```
1473 | 
1474 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L1)
1475 | 
1476 | 	```solidity
1477 | 	pragma solidity ^0.8.20;
1478 | 	```
1479 | 
1480 | - Found in contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol#L1)
1481 | 
1482 | 	```solidity
1483 | 	pragma solidity ^0.8.20;
1484 | 	```
1485 | 
1486 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L1)
1487 | 
1488 | 	```solidity
1489 | 	pragma solidity ^0.8.20;
1490 | 	```
1491 | 
1492 | - Found in contracts/governance/ElderElection.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L2)
1493 | 
1494 | 	```solidity
1495 | 	pragma solidity ^0.8.4;
1496 | 	```
1497 | 
1498 | - Found in contracts/governance/Templar.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L2)
1499 | 
1500 | 	```solidity
1501 | 	pragma solidity ^0.8.4;
1502 | 	```
1503 | 
1504 | - Found in contracts/governance/TemplarMetadata.sol [Line: 2](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L2)
1505 | 
1506 | 	```solidity
1507 | 	pragma solidity ^0.8.4;
1508 | 	```
1509 | 
1510 | - Found in contracts/interfaces/core/ITempleERC20Token.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/core/ITempleERC20Token.sol#L1)
1511 | 
1512 | 	```solidity
1513 | 	pragma solidity ^0.8.20;
1514 | 	```
1515 | 
1516 | - Found in contracts/interfaces/templegold/IAuctionBase.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/IAuctionBase.sol#L1)
1517 | 
1518 | 	```solidity
1519 | 	pragma solidity ^0.8.20;
1520 | 	```
1521 | 
1522 | - Found in contracts/interfaces/templegold/IDaiGoldAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/IDaiGoldAuction.sol#L1)
1523 | 
1524 | 	```solidity
1525 | 	pragma solidity ^0.8.20;
1526 | 	```
1527 | 
1528 | - Found in contracts/interfaces/templegold/ISpiceAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ISpiceAuction.sol#L1)
1529 | 
1530 | 	```solidity
1531 | 	pragma solidity ^0.8.20;
1532 | 	```
1533 | 
1534 | - Found in contracts/interfaces/templegold/ISpiceAuctionFactory.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ISpiceAuctionFactory.sol#L1)
1535 | 
1536 | 	```solidity
1537 | 	pragma solidity ^0.8.20;
1538 | 	```
1539 | 
1540 | - Found in contracts/interfaces/templegold/ITempleGold.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGold.sol#L1)
1541 | 
1542 | 	```solidity
1543 | 	pragma solidity ^0.8.20;
1544 | 	```
1545 | 
1546 | - Found in contracts/interfaces/templegold/ITempleGoldAdmin.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGoldAdmin.sol#L1)
1547 | 
1548 | 	```solidity
1549 | 	pragma solidity ^0.8.20;
1550 | 	```
1551 | 
1552 | - Found in contracts/interfaces/templegold/ITempleGoldStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGoldStaking.sol#L1)
1553 | 
1554 | 	```solidity
1555 | 	pragma solidity ^0.8.20;
1556 | 	```
1557 | 
1558 | - Found in contracts/interfaces/templegold/ITempleTeleporter.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleTeleporter.sol#L1)
1559 | 
1560 | 	```solidity
1561 | 	pragma solidity ^0.8.20;
1562 | 	```
1563 | 
1564 | - Found in contracts/templegold/AuctionBase.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/AuctionBase.sol#L1)
1565 | 
1566 | 	```solidity
1567 | 	pragma solidity ^0.8.20;
1568 | 	```
1569 | 
1570 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L1)
1571 | 
1572 | 	```solidity
1573 | 	pragma solidity ^0.8.20;
1574 | 	```
1575 | 
1576 | - Found in contracts/templegold/SpiceAuction.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L1)
1577 | 
1578 | 	```solidity
1579 | 	pragma solidity ^0.8.20;
1580 | 	```
1581 | 
1582 | - Found in contracts/templegold/SpiceAuctionFactory.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuctionFactory.sol#L1)
1583 | 
1584 | 	```solidity
1585 | 	pragma solidity ^0.8.20;
1586 | 	```
1587 | 
1588 | - Found in contracts/templegold/TempleGold.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L1)
1589 | 
1590 | 	```solidity
1591 | 	pragma solidity ^0.8.20;
1592 | 	```
1593 | 
1594 | - Found in contracts/templegold/TempleGoldAdmin.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldAdmin.sol#L1)
1595 | 
1596 | 	```solidity
1597 | 	pragma solidity ^0.8.20;
1598 | 	```
1599 | 
1600 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L1)
1601 | 
1602 | 	```solidity
1603 | 	pragma solidity ^0.8.20;
1604 | 	```
1605 | 
1606 | - Found in contracts/templegold/TempleTeleporter.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/templegold/TempleTeleporter.sol#L1)
1607 | 
1608 | 	```solidity
1609 | 	pragma solidity ^0.8.20;
1610 | 	```
1611 | 
1612 | - Found in contracts/v2/TempleDebtToken.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L1)
1613 | 
1614 | 	```solidity
1615 | 	pragma solidity ^0.8.20;
1616 | 	```
1617 | 
1618 | - Found in contracts/v2/TreasuryPriceIndexOracle.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryPriceIndexOracle.sol#L1)
1619 | 
1620 | 	```solidity
1621 | 	pragma solidity ^0.8.20;
1622 | 	```
1623 | 
1624 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L1)
1625 | 
1626 | 	```solidity
1627 | 	pragma solidity ^0.8.20;
1628 | 	```
1629 | 
1630 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L1)
1631 | 
1632 | 	```solidity
1633 | 	pragma solidity ^0.8.20;
1634 | 	```
1635 | 
1636 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L1)
1637 | 
1638 | 	```solidity
1639 | 	pragma solidity ^0.8.20;
1640 | 	```
1641 | 
1642 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L1)
1643 | 
1644 | 	```solidity
1645 | 	pragma solidity ^0.8.20;
1646 | 	```
1647 | 
1648 | - Found in contracts/v2/interestRate/BaseInterestRateModel.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/BaseInterestRateModel.sol#L1)
1649 | 
1650 | 	```solidity
1651 | 	pragma solidity ^0.8.20;
1652 | 	```
1653 | 
1654 | - Found in contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/LinearWithKinkInterestRateModel.sol#L1)
1655 | 
1656 | 	```solidity
1657 | 	pragma solidity ^0.8.20;
1658 | 	```
1659 | 
1660 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L1)
1661 | 
1662 | 	```solidity
1663 | 	pragma solidity ^0.8.20;
1664 | 	```
1665 | 
1666 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L1)
1667 | 
1668 | 	```solidity
1669 | 	pragma solidity ^0.8.20;
1670 | 	```
1671 | 
1672 | - Found in contracts/v2/strategies/DsrBaseStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/DsrBaseStrategy.sol#L1)
1673 | 
1674 | 	```solidity
1675 | 	pragma solidity ^0.8.20;
1676 | 	```
1677 | 
1678 | - Found in contracts/v2/strategies/GnosisStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/GnosisStrategy.sol#L1)
1679 | 
1680 | 	```solidity
1681 | 	pragma solidity ^0.8.20;
1682 | 	```
1683 | 
1684 | - Found in contracts/v2/strategies/RamosStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/RamosStrategy.sol#L1)
1685 | 
1686 | 	```solidity
1687 | 	pragma solidity ^0.8.20;
1688 | 	```
1689 | 
1690 | - Found in contracts/v2/strategies/TempleTokenBaseStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol#L1)
1691 | 
1692 | 	```solidity
1693 | 	pragma solidity ^0.8.20;
1694 | 	```
1695 | 
1696 | - Found in contracts/v2/strategies/TlcStrategy.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TlcStrategy.sol#L1)
1697 | 
1698 | 	```solidity
1699 | 	pragma solidity ^0.8.20;
1700 | 	```
1701 | 
1702 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 1](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L1)
1703 | 
1704 | 	```solidity
1705 | 	pragma solidity ^0.8.20;
1706 | 	```
1707 | 
1708 | </details>
1709 | 
1710 | 
1711 | 
1712 | ## L-5: Address State Variable Set Without Checks
1713 | 
1714 | Check for `address(0)` when assigning values to address state variables.
1715 | 
1716 | <details><summary>43 Found Instances</summary>
1717 | 
1718 | 
1719 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L41)
1720 | 
1721 | 	```solidity
1722 | 	        templeTeamPaymentsImplementation = _implementation;
1723 | 	```
1724 | 
1725 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L27)
1726 | 
1727 | 	```solidity
1728 | 	        temple = _temple;
1729 | 	```
1730 | 
1731 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 44](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L44)
1732 | 
1733 | 	```solidity
1734 | 	        templeTreasury = _templeTreasury;
1735 | 	```
1736 | 
1737 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 45](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L45)
1738 | 
1739 | 	```solidity
1740 | 	        defendStable  = _defendStable;
1741 | 	```
1742 | 
1743 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 53](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L53)
1744 | 
1745 | 	```solidity
1746 | 	        templeTreasury = _templeTreasury;
1747 | 	```
1748 | 
1749 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L57)
1750 | 
1751 | 	```solidity
1752 | 	        defendStable = _defendStable;
1753 | 	```
1754 | 
1755 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L68)
1756 | 
1757 | 	```solidity
1758 | 	        owner = _owner;
1759 | 	```
1760 | 
1761 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L69)
1762 | 
1763 | 	```solidity
1764 | 	        token0 = _token0;
1765 | 	```
1766 | 
1767 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L70)
1768 | 
1769 | 	```solidity
1770 | 	        token1 = _token1;
1771 | 	```
1772 | 
1773 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L76)
1774 | 
1775 | 	```solidity
1776 | 	        router = _router;
1777 | 	```
1778 | 
1779 | - Found in contracts/amo/AuraStaking.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L49)
1780 | 
1781 | 	```solidity
1782 | 	        rewardsRecipient = _recipient;
1783 | 	```
1784 | 
1785 | - Found in contracts/amo/Ramos.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L123)
1786 | 
1787 | 	```solidity
1788 | 	        feeCollector = _feeCollector;
1789 | 	```
1790 | 
1791 | - Found in contracts/amo/Ramos.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L135)
1792 | 
1793 | 	```solidity
1794 | 	        poolHelper = IBalancerPoolHelper(_poolHelper);
1795 | 	```
1796 | 
1797 | - Found in contracts/amo/Ramos.sol [Line: 183](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L183)
1798 | 
1799 | 	```solidity
1800 | 	        tpiOracle = ITreasuryPriceIndexOracle(newTpiOracle);
1801 | 	```
1802 | 
1803 | - Found in contracts/amo/Ramos.sol [Line: 199](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L199)
1804 | 
1805 | 	```solidity
1806 | 	        tokenVault = IRamosTokenVault(vault);
1807 | 	```
1808 | 
1809 | - Found in contracts/core/Exposure.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L41)
1810 | 
1811 | 	```solidity
1812 | 	        revalToken = _revalToken;
1813 | 	```
1814 | 
1815 | - Found in contracts/core/Exposure.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L68)
1816 | 
1817 | 	```solidity
1818 | 	        liquidator = _liquidator;
1819 | 	```
1820 | 
1821 | - Found in contracts/core/OpsManager.sol [Line: 35](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L35)
1822 | 
1823 | 	```solidity
1824 | 	        templeExposure = new Exposure("vaulted temple", "V_TEMPLE", _templeToken);
1825 | 	```
1826 | 
1827 | - Found in contracts/core/OpsManager.sol [Line: 37](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L37)
1828 | 
1829 | 	```solidity
1830 | 	        vaultedTemple = new VaultedTemple(_templeToken, address(templeExposure));
1831 | 	```
1832 | 
1833 | - Found in contracts/core/OtcOffer.sol [Line: 80](../tests/2024-07-templegold/protocol/contracts/core/OtcOffer.sol#L80)
1834 | 
1835 | 	```solidity
1836 | 	        fundsOwner = _fundsOwner;
1837 | 	```
1838 | 
1839 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L18)
1840 | 
1841 | 	```solidity
1842 | 	        templeStaking = _templeStaking;
1843 | 	```
1844 | 
1845 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L19)
1846 | 
1847 | 	```solidity
1848 | 	        templeToken = _templeToken;
1849 | 	```
1850 | 
1851 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L27)
1852 | 
1853 | 	```solidity
1854 | 	    OG_TEMPLE = _OG_TEMPLE;
1855 | 	```
1856 | 
1857 | - Found in contracts/deprecated/TempleStaking.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L55)
1858 | 
1859 | 	```solidity
1860 | 	        EXIT_QUEUE = _EXIT_QUEUE;
1861 | 	```
1862 | 
1863 | - Found in contracts/deprecated/TempleStaking.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L68)
1864 | 
1865 | 	```solidity
1866 | 	        EXIT_QUEUE = _EXIT_QUEUE;
1867 | 	```
1868 | 
1869 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L16)
1870 | 
1871 | 	```solidity
1872 | 	        templeToken = _templeToken;
1873 | 	```
1874 | 
1875 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L18)
1876 | 
1877 | 	```solidity
1878 | 	        templeToken = _templeToken;
1879 | 	```
1880 | 
1881 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L19)
1882 | 
1883 | 	```solidity
1884 | 	        vaultedTemple = _vaultedTemple;
1885 | 	```
1886 | 
1887 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 143](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L143)
1888 | 
1889 | 	```solidity
1890 | 	        previousStaking = ITempleGoldStaking(_previousStaking);
1891 | 	```
1892 | 
1893 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 192](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L192)
1894 | 
1895 | 	```solidity
1896 | 	        distributionStarter = _starter;
1897 | 	```
1898 | 
1899 | - Found in contracts/governance/ElderElection.sol [Line: 60](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L60)
1900 | 
1901 | 	```solidity
1902 | 	        templars = _templars;
1903 | 	```
1904 | 
1905 | - Found in contracts/governance/TemplarMetadata.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L21)
1906 | 
1907 | 	```solidity
1908 | 	        templars = _templars;
1909 | 	```
1910 | 
1911 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L56)
1912 | 
1913 | 	```solidity
1914 | 	        bidToken = IERC20(_bidToken);
1915 | 	```
1916 | 
1917 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 81](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L81)
1918 | 
1919 | 	```solidity
1920 | 	        auctionStarter = _starter;
1921 | 	```
1922 | 
1923 | - Found in contracts/templegold/SpiceAuction.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/templegold/SpiceAuction.sol#L63)
1924 | 
1925 | 	```solidity
1926 | 	        daoExecutor = _daoExecutor;
1927 | 	```
1928 | 
1929 | - Found in contracts/templegold/TempleGold.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L69)
1930 | 
1931 | 	```solidity
1932 | 	       staking = ITempleGoldStaking(_initArgs.staking);
1933 | 	```
1934 | 
1935 | - Found in contracts/templegold/TempleGold.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L70)
1936 | 
1937 | 	```solidity
1938 | 	       escrow = IDaiGoldAuction(_initArgs.escrow);
1939 | 	```
1940 | 
1941 | - Found in contracts/templegold/TempleGold.sol [Line: 71](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L71)
1942 | 
1943 | 	```solidity
1944 | 	       teamGnosis = _initArgs.gnosis;
1945 | 	```
1946 | 
1947 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 127](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L127)
1948 | 
1949 | 	```solidity
1950 | 	        distributionStarter = _starter;
1951 | 	```
1952 | 
1953 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 101](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L101)
1954 | 
1955 | 	```solidity
1956 | 	        tpiOracle = ITreasuryPriceIndexOracle(_tpiOracle);
1957 | 	```
1958 | 
1959 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L120)
1960 | 
1961 | 	```solidity
1962 | 	        borrowTokens[token] = BorrowTokenConfig({
1963 | 	```
1964 | 
1965 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 46](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L46)
1966 | 
1967 | 	```solidity
1968 | 	        treasuryReservesVault = ITreasuryReservesVault(_treasuryReservesVault);
1969 | 	```
1970 | 
1971 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 389](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L389)
1972 | 
1973 | 	```solidity
1974 | 	        tlcStrategy = ITlcStrategy(newTlcStrategy);
1975 | 	```
1976 | 
1977 | </details>
1978 | 
1979 | 
1980 | 
1981 | ## L-6: Public Function Not Used Internally
1982 | 
1983 | If a function is marked public but is not used internally, consider marking it as `external`.
1984 | 
1985 | <details><summary>17 Found Instances</summary>
1986 | 
1987 | 
1988 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 25](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L25)
1989 | 
1990 | 	```solidity
1991 | 	    function initialize(IERC20 _temple) public initializer {
1992 | 	```
1993 | 
1994 | - Found in contracts/core/OpsManagerLib.sol [Line: 12](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L12)
1995 | 
1996 | 	```solidity
1997 | 	    function createExposure(
1998 | 	```
1999 | 
2000 | - Found in contracts/core/OpsManagerLib.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L32)
2001 | 
2002 | 	```solidity
2003 | 	    function setExposureLiquidator(
2004 | 	```
2005 | 
2006 | - Found in contracts/core/OpsManagerLib.sol [Line: 45](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L45)
2007 | 
2008 | 	```solidity
2009 | 	    function setExposureMinterState(
2010 | 	```
2011 | 
2012 | - Found in contracts/core/OpsManagerLib.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L55)
2013 | 
2014 | 	```solidity
2015 | 	    function rebalance(
2016 | 	```
2017 | 
2018 | - Found in contracts/core/OpsManagerLib.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L79)
2019 | 
2020 | 	```solidity
2021 | 	    function requiresRebalance(
2022 | 	```
2023 | 
2024 | - Found in contracts/core/OpsManagerLib.sol [Line: 97](../tests/2024-07-templegold/protocol/contracts/core/OpsManagerLib.sol#L97)
2025 | 
2026 | 	```solidity
2027 | 	    function updateExposureReval(IERC20[] memory exposureTokens, uint256[] memory revals, mapping(IERC20 => TreasuryFarmingRevenue) storage pools) public {
2028 | 	```
2029 | 
2030 | - Found in contracts/core/TreasuryFarmingRevenue.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/core/TreasuryFarmingRevenue.sol#L48)
2031 | 
2032 | 	```solidity
2033 | 	    function addRevenue(uint256 revenueEarned) onlyOwner public {
2034 | 	```
2035 | 
2036 | - Found in contracts/core/Vault.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L86)
2037 | 
2038 | 	```solidity
2039 | 	    function withdraw(uint256 amount) public {
2040 | 	```
2041 | 
2042 | - Found in contracts/core/Vault.sol [Line: 96](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L96)
2043 | 
2044 | 	```solidity
2045 | 	    function withdrawFor(address owner, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
2046 | 	```
2047 | 
2048 | - Found in contracts/core/Vault.sol [Line: 167](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L167)
2049 | 
2050 | 	```solidity
2051 | 	    function deposit(uint256 amount) public {
2052 | 	```
2053 | 
2054 | - Found in contracts/core/VaultProxy.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L58)
2055 | 
2056 | 	```solidity
2057 | 	    function depositTempleWithFaith(uint256 _amountTemple, uint112 _amountFaith, Vault vault) public {
2058 | 	```
2059 | 
2060 | - Found in contracts/core/VaultProxy.sol [Line: 109](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L109)
2061 | 
2062 | 	```solidity
2063 | 	    function depositTempleFor(uint256 _amount, Vault vault) public {
2064 | 	```
2065 | 
2066 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L77)
2067 | 
2068 | 	```solidity
2069 | 	    function circulatingSupply() public view returns (uint256) {
2070 | 	```
2071 | 
2072 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 431](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L431)
2073 | 
2074 | 	```solidity
2075 | 	    function balanceOf(address account) public view returns (uint256) {
2076 | 	```
2077 | 
2078 | - Found in contracts/governance/Templar.sol [Line: 65](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L65)
2079 | 
2080 | 	```solidity
2081 | 	    function checkExists(uint256 discordId) public view {
2082 | 	```
2083 | 
2084 | - Found in contracts/templegold/TempleGoldAdmin.sol [Line: 107](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldAdmin.sol#L107)
2085 | 
2086 | 	```solidity
2087 | 	    function setDelegate(address _delegate) public onlyElevatedAccess {
2088 | 	```
2089 | 
2090 | </details>
2091 | 
2092 | 
2093 | 
2094 | ## L-7: Literal Instead of Constant
2095 | 
2096 | Define and use `constant` variables instead of using literals. If the same constant literal value is used multiple times, create a constant state variable and reference it throughout the contract.
2097 | 
2098 | <details><summary>712 Found Instances</summary>
2099 | 
2100 | 
2101 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 163](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L163)
2102 | 
2103 | 	```solidity
2104 | 	        uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
2105 | 	```
2106 | 
2107 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 164](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L164)
2108 | 
2109 | 	```solidity
2110 | 	        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
2111 | 	```
2112 | 
2113 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 165](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L165)
2114 | 
2115 | 	```solidity
2116 | 	        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
2117 | 	```
2118 | 
2119 | - Found in contracts/deprecated/TempleStaking.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L52)
2120 | 
2121 | 	```solidity
2122 | 	        require(_startTimestamp > (block.timestamp - (24 * 2 * 60 * 60)), "Start timestamp can't be more than 2 days in the past");
2123 | 	```
2124 | 
2125 | - Found in contracts/deprecated/TempleStaking.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L100)
2126 | 
2127 | 	```solidity
2128 | 	            ABDKMath64x64.divu(amountOgTemple, 1e18).mul(_accumulationFactorAt(currentEpoch()))
2129 | 	```
2130 | 
2131 | - Found in contracts/deprecated/TempleStaking.sol [Line: 129](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L129)
2132 | 
2133 | 	```solidity
2134 | 	        amountOgTemple = _overflowSafeMul1e18(ABDKMath64x64.divu(_amountTemple, 1e18).div(accumulationFactor));
2135 | 	```
2136 | 
2137 | - Found in contracts/deprecated/TempleStaking.sol [Line: 159](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L159)
2138 | 
2139 | 	```solidity
2140 | 	        uint256 fractionalDigits = amountFixedPoint.sub(ABDKMath64x64.fromUInt(integralDigits)).mul(ABDKMath64x64.fromUInt(1e18)).toUInt();
2141 | 	```
2142 | 
2143 | - Found in contracts/deprecated/TempleStaking.sol [Line: 160](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L160)
2144 | 
2145 | 	```solidity
2146 | 	        return (integralDigits * 1e18) + fractionalDigits;
2147 | 	```
2148 | 
2149 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 537](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L537)
2150 | 
2151 | 	```solidity
2152 | 	            vestingRate = 1e18;
2153 | 	```
2154 | 
2155 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 539](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L539)
2156 | 
2157 | 	```solidity
2158 | 	            vestingRate = (block.timestamp - _stakeInfo.stakeTime) * 1e18 / vestingPeriod;
2159 | 	```
2160 | 
2161 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 542](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L542)
2162 | 
2163 | 	```solidity
2164 | 	        if (vestingRate == 1e18) { 
2165 | 	```
2166 | 
2167 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 545](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L545)
2168 | 
2169 | 	```solidity
2170 | 	            _perTokenReward = _rewardPerToken() * vestingRate / 1e18;
2171 | 	```
2172 | 
2173 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 549](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L549)
2174 | 
2175 | 	```solidity
2176 | 	            (_balance * (_perTokenReward - userRewardPerTokenPaid[_account][_index])) / 1e18 +
2177 | 	```
2178 | 
2179 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 558](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L558)
2180 | 
2181 | 	```solidity
2182 | 	            vestingRate = 1e18;
2183 | 	```
2184 | 
2185 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 560](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L560)
2186 | 
2187 | 	```solidity
2188 | 	            vestingRate = (block.timestamp - _stakeInfo.stakeTime) * 1e18 / vestingPeriod;
2189 | 	```
2190 | 
2191 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 580](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L580)
2192 | 
2193 | 	```solidity
2194 | 	                rewardData.rewardRate * 1e18)
2195 | 	```
2196 | 
2197 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 680](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L680)
2198 | 
2199 | 	```solidity
2200 | 	                userRewardPerTokenPaid[_account][_index] = vestingRate * uint256(rewardData.rewardPerTokenStored) / 1e18;
2201 | 	```
2202 | 
2203 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L76)
2204 | 
2205 | 	```solidity
2206 | 	        return existingBalance * (1e18 + (daiSavingsRate * elapsed / 365 days)) / 1e18;
2207 | 	```
2208 | 
2209 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 473](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L473)
2210 | 
2211 | 	```solidity
2212 | 	        if (vestingRate == 1e18) { 
2213 | 	```
2214 | 
2215 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 476](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L476)
2216 | 
2217 | 	```solidity
2218 | 	            _perTokenReward = _rewardPerToken() * vestingRate / 1e18;
2219 | 	```
2220 | 
2221 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 480](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L480)
2222 | 
2223 | 	```solidity
2224 | 	            (_stakeInfo.amount * (_perTokenReward - userRewardPerTokenPaid[_account][_index])) / 1e18 +
2225 | 	```
2226 | 
2227 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 489](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L489)
2228 | 
2229 | 	```solidity
2230 | 	            vestingRate = 1e18;
2231 | 	```
2232 | 
2233 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 491](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L491)
2234 | 
2235 | 	```solidity
2236 | 	            vestingRate = (block.timestamp - _stakeInfo.stakeTime) * 1e18 / vestingPeriod;
2237 | 	```
2238 | 
2239 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 511](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L511)
2240 | 
2241 | 	```solidity
2242 | 	                rewardData.rewardRate * 1e18)
2243 | 	```
2244 | 
2245 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 598](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L598)
2246 | 
2247 | 	```solidity
2248 | 	                userRewardPerTokenPaid[_account][_index] = vestingRate * uint256(rewardData.rewardPerTokenStored) / 1e18;
2249 | 	```
2250 | 
2251 | - Found in contracts/util/ABDKMath64x64.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L36)
2252 | 
2253 | 	```solidity
2254 | 	      require (x >= -0x8000000000000000 && x <= 0x7FFFFFFFFFFFFFFF);
2255 | 	```
2256 | 
2257 | - Found in contracts/util/ABDKMath64x64.sol [Line: 37](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L37)
2258 | 
2259 | 	```solidity
2260 | 	      return int128 (x << 64);
2261 | 	```
2262 | 
2263 | - Found in contracts/util/ABDKMath64x64.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L50)
2264 | 
2265 | 	```solidity
2266 | 	      return int64 (x >> 64);
2267 | 	```
2268 | 
2269 | - Found in contracts/util/ABDKMath64x64.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L63)
2270 | 
2271 | 	```solidity
2272 | 	      require (x <= 0x7FFFFFFFFFFFFFFF);
2273 | 	```
2274 | 
2275 | - Found in contracts/util/ABDKMath64x64.sol [Line: 64](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L64)
2276 | 
2277 | 	```solidity
2278 | 	      return int128 (int256 (x << 64));
2279 | 	```
2280 | 
2281 | - Found in contracts/util/ABDKMath64x64.sol [Line: 78](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L78)
2282 | 
2283 | 	```solidity
2284 | 	      return uint64 (uint128 (x >> 64));
2285 | 	```
2286 | 
2287 | - Found in contracts/util/ABDKMath64x64.sol [Line: 91](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L91)
2288 | 
2289 | 	```solidity
2290 | 	      int256 result = x >> 64;
2291 | 	```
2292 | 
2293 | - Found in contracts/util/ABDKMath64x64.sol [Line: 106](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L106)
2294 | 
2295 | 	```solidity
2296 | 	      return int256 (x) << 64;
2297 | 	```
2298 | 
2299 | - Found in contracts/util/ABDKMath64x64.sol [Line: 149](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L149)
2300 | 
2301 | 	```solidity
2302 | 	      int256 result = int256(x) * y >> 64;
2303 | 	```
2304 | 
2305 | - Found in contracts/util/ABDKMath64x64.sol [Line: 166](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L166)
2306 | 
2307 | 	```solidity
2308 | 	        require (y >= -0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF &&
2309 | 	```
2310 | 
2311 | - Found in contracts/util/ABDKMath64x64.sol [Line: 168](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L168)
2312 | 
2313 | 	```solidity
2314 | 	        return -y << 63;
2315 | 	```
2316 | 
2317 | - Found in contracts/util/ABDKMath64x64.sol [Line: 207](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L207)
2318 | 
2319 | 	```solidity
2320 | 	      uint256 lo = (uint256 (int256 (x)) * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)) >> 64;
2321 | 	```
2322 | 
2323 | - Found in contracts/util/ABDKMath64x64.sol [Line: 208](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L208)
2324 | 
2325 | 	```solidity
2326 | 	      uint256 hi = uint256 (int256 (x)) * (y >> 128);
2327 | 	```
2328 | 
2329 | - Found in contracts/util/ABDKMath64x64.sol [Line: 210](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L210)
2330 | 
2331 | 	```solidity
2332 | 	      require (hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
2333 | 	```
2334 | 
2335 | - Found in contracts/util/ABDKMath64x64.sol [Line: 211](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L211)
2336 | 
2337 | 	```solidity
2338 | 	      hi <<= 64;
2339 | 	```
2340 | 
2341 | - Found in contracts/util/ABDKMath64x64.sol [Line: 230](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L230)
2342 | 
2343 | 	```solidity
2344 | 	      int256 result = (int256 (x) << 64) / y;
2345 | 	```
2346 | 
2347 | - Found in contracts/util/ABDKMath64x64.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L259)
2348 | 
2349 | 	```solidity
2350 | 	        require (absoluteResult <= 0x80000000000000000000000000000000);
2351 | 	```
2352 | 
2353 | - Found in contracts/util/ABDKMath64x64.sol [Line: 321](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L321)
2354 | 
2355 | 	```solidity
2356 | 	      int256 result = int256 (0x100000000000000000000000000000000) / x;
2357 | 	```
2358 | 
2359 | - Found in contracts/util/ABDKMath64x64.sol [Line: 372](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L372)
2360 | 
2361 | 	```solidity
2362 | 	      absResult = 0x100000000000000000000000000000000;
2363 | 	```
2364 | 
2365 | - Found in contracts/util/ABDKMath64x64.sol [Line: 374](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L374)
2366 | 
2367 | 	```solidity
2368 | 	      if (absX <= 0x10000000000000000) {
2369 | 	```
2370 | 
2371 | - Found in contracts/util/ABDKMath64x64.sol [Line: 375](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L375)
2372 | 
2373 | 	```solidity
2374 | 	        absX <<= 63;
2375 | 	```
2376 | 
2377 | - Found in contracts/util/ABDKMath64x64.sol [Line: 377](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L377)
2378 | 
2379 | 	```solidity
2380 | 	          if (y & 0x1 != 0) {
2381 | 	```
2382 | 
2383 | - Found in contracts/util/ABDKMath64x64.sol [Line: 378](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L378)
2384 | 
2385 | 	```solidity
2386 | 	            absResult = absResult * absX >> 127;
2387 | 	```
2388 | 
2389 | - Found in contracts/util/ABDKMath64x64.sol [Line: 380](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L380)
2390 | 
2391 | 	```solidity
2392 | 	          absX = absX * absX >> 127;
2393 | 	```
2394 | 
2395 | - Found in contracts/util/ABDKMath64x64.sol [Line: 382](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L382)
2396 | 
2397 | 	```solidity
2398 | 	          if (y & 0x2 != 0) {
2399 | 	```
2400 | 
2401 | - Found in contracts/util/ABDKMath64x64.sol [Line: 383](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L383)
2402 | 
2403 | 	```solidity
2404 | 	            absResult = absResult * absX >> 127;
2405 | 	```
2406 | 
2407 | - Found in contracts/util/ABDKMath64x64.sol [Line: 385](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L385)
2408 | 
2409 | 	```solidity
2410 | 	          absX = absX * absX >> 127;
2411 | 	```
2412 | 
2413 | - Found in contracts/util/ABDKMath64x64.sol [Line: 387](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L387)
2414 | 
2415 | 	```solidity
2416 | 	          if (y & 0x4 != 0) {
2417 | 	```
2418 | 
2419 | - Found in contracts/util/ABDKMath64x64.sol [Line: 388](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L388)
2420 | 
2421 | 	```solidity
2422 | 	            absResult = absResult * absX >> 127;
2423 | 	```
2424 | 
2425 | - Found in contracts/util/ABDKMath64x64.sol [Line: 390](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L390)
2426 | 
2427 | 	```solidity
2428 | 	          absX = absX * absX >> 127;
2429 | 	```
2430 | 
2431 | - Found in contracts/util/ABDKMath64x64.sol [Line: 392](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L392)
2432 | 
2433 | 	```solidity
2434 | 	          if (y & 0x8 != 0) {
2435 | 	```
2436 | 
2437 | - Found in contracts/util/ABDKMath64x64.sol [Line: 393](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L393)
2438 | 
2439 | 	```solidity
2440 | 	            absResult = absResult * absX >> 127;
2441 | 	```
2442 | 
2443 | - Found in contracts/util/ABDKMath64x64.sol [Line: 395](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L395)
2444 | 
2445 | 	```solidity
2446 | 	          absX = absX * absX >> 127;
2447 | 	```
2448 | 
2449 | - Found in contracts/util/ABDKMath64x64.sol [Line: 397](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L397)
2450 | 
2451 | 	```solidity
2452 | 	          y >>= 4;
2453 | 	```
2454 | 
2455 | - Found in contracts/util/ABDKMath64x64.sol [Line: 400](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L400)
2456 | 
2457 | 	```solidity
2458 | 	        absResult >>= 64;
2459 | 	```
2460 | 
2461 | - Found in contracts/util/ABDKMath64x64.sol [Line: 402](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L402)
2462 | 
2463 | 	```solidity
2464 | 	        uint256 absXShift = 63;
2465 | 	```
2466 | 
2467 | - Found in contracts/util/ABDKMath64x64.sol [Line: 403](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L403)
2468 | 
2469 | 	```solidity
2470 | 	        if (absX < 0x1000000000000000000000000) { absX <<= 32; absXShift -= 32; }
2471 | 	```
2472 | 
2473 | - Found in contracts/util/ABDKMath64x64.sol [Line: 404](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L404)
2474 | 
2475 | 	```solidity
2476 | 	        if (absX < 0x10000000000000000000000000000) { absX <<= 16; absXShift -= 16; }
2477 | 	```
2478 | 
2479 | - Found in contracts/util/ABDKMath64x64.sol [Line: 405](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L405)
2480 | 
2481 | 	```solidity
2482 | 	        if (absX < 0x1000000000000000000000000000000) { absX <<= 8; absXShift -= 8; }
2483 | 	```
2484 | 
2485 | - Found in contracts/util/ABDKMath64x64.sol [Line: 406](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L406)
2486 | 
2487 | 	```solidity
2488 | 	        if (absX < 0x10000000000000000000000000000000) { absX <<= 4; absXShift -= 4; }
2489 | 	```
2490 | 
2491 | - Found in contracts/util/ABDKMath64x64.sol [Line: 408](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L408)
2492 | 
2493 | 	```solidity
2494 | 	        if (absX < 0x80000000000000000000000000000000) { absX <<= 1; absXShift -= 1; }
2495 | 	```
2496 | 
2497 | - Found in contracts/util/ABDKMath64x64.sol [Line: 412](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L412)
2498 | 
2499 | 	```solidity
2500 | 	          require (absXShift < 64);
2501 | 	```
2502 | 
2503 | - Found in contracts/util/ABDKMath64x64.sol [Line: 414](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L414)
2504 | 
2505 | 	```solidity
2506 | 	          if (y & 0x1 != 0) {
2507 | 	```
2508 | 
2509 | - Found in contracts/util/ABDKMath64x64.sol [Line: 415](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L415)
2510 | 
2511 | 	```solidity
2512 | 	            absResult = absResult * absX >> 127;
2513 | 	```
2514 | 
2515 | - Found in contracts/util/ABDKMath64x64.sol [Line: 417](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L417)
2516 | 
2517 | 	```solidity
2518 | 	            if (absResult > 0x100000000000000000000000000000000) {
2519 | 	```
2520 | 
2521 | - Found in contracts/util/ABDKMath64x64.sol [Line: 422](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L422)
2522 | 
2523 | 	```solidity
2524 | 	          absX = absX * absX >> 127;
2525 | 	```
2526 | 
2527 | - Found in contracts/util/ABDKMath64x64.sol [Line: 424](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L424)
2528 | 
2529 | 	```solidity
2530 | 	          if (absX >= 0x100000000000000000000000000000000) {
2531 | 	```
2532 | 
2533 | - Found in contracts/util/ABDKMath64x64.sol [Line: 432](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L432)
2534 | 
2535 | 	```solidity
2536 | 	        require (resultShift < 64);
2537 | 	```
2538 | 
2539 | - Found in contracts/util/ABDKMath64x64.sol [Line: 433](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L433)
2540 | 
2541 | 	```solidity
2542 | 	        absResult >>= 64 - resultShift;
2543 | 	```
2544 | 
2545 | - Found in contracts/util/ABDKMath64x64.sol [Line: 450](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L450)
2546 | 
2547 | 	```solidity
2548 | 	      return int128 (sqrtu (uint256 (int256 (x)) << 64));
2549 | 	```
2550 | 
2551 | - Found in contracts/util/ABDKMath64x64.sol [Line: 466](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L466)
2552 | 
2553 | 	```solidity
2554 | 	      if (xc >= 0x10000000000000000) { xc >>= 64; msb += 64; }
2555 | 	```
2556 | 
2557 | - Found in contracts/util/ABDKMath64x64.sol [Line: 467](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L467)
2558 | 
2559 | 	```solidity
2560 | 	      if (xc >= 0x100000000) { xc >>= 32; msb += 32; }
2561 | 	```
2562 | 
2563 | - Found in contracts/util/ABDKMath64x64.sol [Line: 468](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L468)
2564 | 
2565 | 	```solidity
2566 | 	      if (xc >= 0x10000) { xc >>= 16; msb += 16; }
2567 | 	```
2568 | 
2569 | - Found in contracts/util/ABDKMath64x64.sol [Line: 469](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L469)
2570 | 
2571 | 	```solidity
2572 | 	      if (xc >= 0x100) { xc >>= 8; msb += 8; }
2573 | 	```
2574 | 
2575 | - Found in contracts/util/ABDKMath64x64.sol [Line: 470](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L470)
2576 | 
2577 | 	```solidity
2578 | 	      if (xc >= 0x10) { xc >>= 4; msb += 4; }
2579 | 	```
2580 | 
2581 | - Found in contracts/util/ABDKMath64x64.sol [Line: 471](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L471)
2582 | 
2583 | 	```solidity
2584 | 	      if (xc >= 0x4) { xc >>= 2; msb += 2; }
2585 | 	```
2586 | 
2587 | - Found in contracts/util/ABDKMath64x64.sol [Line: 472](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L472)
2588 | 
2589 | 	```solidity
2590 | 	      if (xc >= 0x2) msb += 1;  // No need to shift xc anymore
2591 | 	```
2592 | 
2593 | - Found in contracts/util/ABDKMath64x64.sol [Line: 474](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L474)
2594 | 
2595 | 	```solidity
2596 | 	      int256 result = msb - 64 << 64;
2597 | 	```
2598 | 
2599 | - Found in contracts/util/ABDKMath64x64.sol [Line: 475](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L475)
2600 | 
2601 | 	```solidity
2602 | 	      uint256 ux = uint256 (int256 (x)) << uint256 (127 - msb);
2603 | 	```
2604 | 
2605 | - Found in contracts/util/ABDKMath64x64.sol [Line: 476](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L476)
2606 | 
2607 | 	```solidity
2608 | 	      for (int256 bit = 0x8000000000000000; bit > 0; bit >>= 1) {
2609 | 	```
2610 | 
2611 | - Found in contracts/util/ABDKMath64x64.sol [Line: 478](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L478)
2612 | 
2613 | 	```solidity
2614 | 	        uint256 b = ux >> 255;
2615 | 	```
2616 | 
2617 | - Found in contracts/util/ABDKMath64x64.sol [Line: 479](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L479)
2618 | 
2619 | 	```solidity
2620 | 	        ux >>= 127 + b;
2621 | 	```
2622 | 
2623 | - Found in contracts/util/ABDKMath64x64.sol [Line: 498](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L498)
2624 | 
2625 | 	```solidity
2626 | 	          uint256 (int256 (log_2 (x))) * 0xB17217F7D1CF79ABC9E3B39803F2F6AF >> 128));
2627 | 	```
2628 | 
2629 | - Found in contracts/util/ABDKMath64x64.sol [Line: 510](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L510)
2630 | 
2631 | 	```solidity
2632 | 	      require (x < 0x400000000000000000); // Overflow
2633 | 	```
2634 | 
2635 | - Found in contracts/util/ABDKMath64x64.sol [Line: 512](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L512)
2636 | 
2637 | 	```solidity
2638 | 	      if (x < -0x400000000000000000) return 0; // Underflow
2639 | 	```
2640 | 
2641 | - Found in contracts/util/ABDKMath64x64.sol [Line: 514](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L514)
2642 | 
2643 | 	```solidity
2644 | 	      uint256 result = 0x80000000000000000000000000000000;
2645 | 	```
2646 | 
2647 | - Found in contracts/util/ABDKMath64x64.sol [Line: 516](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L516)
2648 | 
2649 | 	```solidity
2650 | 	      if (x & 0x8000000000000000 > 0)
2651 | 	```
2652 | 
2653 | - Found in contracts/util/ABDKMath64x64.sol [Line: 517](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L517)
2654 | 
2655 | 	```solidity
2656 | 	        result = result * 0x16A09E667F3BCC908B2FB1366EA957D3E >> 128;
2657 | 	```
2658 | 
2659 | - Found in contracts/util/ABDKMath64x64.sol [Line: 519](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L519)
2660 | 
2661 | 	```solidity
2662 | 	        result = result * 0x1306FE0A31B7152DE8D5A46305C85EDEC >> 128;
2663 | 	```
2664 | 
2665 | - Found in contracts/util/ABDKMath64x64.sol [Line: 521](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L521)
2666 | 
2667 | 	```solidity
2668 | 	        result = result * 0x1172B83C7D517ADCDF7C8C50EB14A791F >> 128;
2669 | 	```
2670 | 
2671 | - Found in contracts/util/ABDKMath64x64.sol [Line: 523](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L523)
2672 | 
2673 | 	```solidity
2674 | 	        result = result * 0x10B5586CF9890F6298B92B71842A98363 >> 128;
2675 | 	```
2676 | 
2677 | - Found in contracts/util/ABDKMath64x64.sol [Line: 525](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L525)
2678 | 
2679 | 	```solidity
2680 | 	        result = result * 0x1059B0D31585743AE7C548EB68CA417FD >> 128;
2681 | 	```
2682 | 
2683 | - Found in contracts/util/ABDKMath64x64.sol [Line: 527](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L527)
2684 | 
2685 | 	```solidity
2686 | 	        result = result * 0x102C9A3E778060EE6F7CACA4F7A29BDE8 >> 128;
2687 | 	```
2688 | 
2689 | - Found in contracts/util/ABDKMath64x64.sol [Line: 529](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L529)
2690 | 
2691 | 	```solidity
2692 | 	        result = result * 0x10163DA9FB33356D84A66AE336DCDFA3F >> 128;
2693 | 	```
2694 | 
2695 | - Found in contracts/util/ABDKMath64x64.sol [Line: 531](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L531)
2696 | 
2697 | 	```solidity
2698 | 	        result = result * 0x100B1AFA5ABCBED6129AB13EC11DC9543 >> 128;
2699 | 	```
2700 | 
2701 | - Found in contracts/util/ABDKMath64x64.sol [Line: 533](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L533)
2702 | 
2703 | 	```solidity
2704 | 	        result = result * 0x10058C86DA1C09EA1FF19D294CF2F679B >> 128;
2705 | 	```
2706 | 
2707 | - Found in contracts/util/ABDKMath64x64.sol [Line: 535](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L535)
2708 | 
2709 | 	```solidity
2710 | 	        result = result * 0x1002C605E2E8CEC506D21BFC89A23A00F >> 128;
2711 | 	```
2712 | 
2713 | - Found in contracts/util/ABDKMath64x64.sol [Line: 537](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L537)
2714 | 
2715 | 	```solidity
2716 | 	        result = result * 0x100162F3904051FA128BCA9C55C31E5DF >> 128;
2717 | 	```
2718 | 
2719 | - Found in contracts/util/ABDKMath64x64.sol [Line: 539](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L539)
2720 | 
2721 | 	```solidity
2722 | 	        result = result * 0x1000B175EFFDC76BA38E31671CA939725 >> 128;
2723 | 	```
2724 | 
2725 | - Found in contracts/util/ABDKMath64x64.sol [Line: 541](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L541)
2726 | 
2727 | 	```solidity
2728 | 	        result = result * 0x100058BA01FB9F96D6CACD4B180917C3D >> 128;
2729 | 	```
2730 | 
2731 | - Found in contracts/util/ABDKMath64x64.sol [Line: 543](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L543)
2732 | 
2733 | 	```solidity
2734 | 	        result = result * 0x10002C5CC37DA9491D0985C348C68E7B3 >> 128;
2735 | 	```
2736 | 
2737 | - Found in contracts/util/ABDKMath64x64.sol [Line: 545](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L545)
2738 | 
2739 | 	```solidity
2740 | 	        result = result * 0x1000162E525EE054754457D5995292026 >> 128;
2741 | 	```
2742 | 
2743 | - Found in contracts/util/ABDKMath64x64.sol [Line: 547](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L547)
2744 | 
2745 | 	```solidity
2746 | 	        result = result * 0x10000B17255775C040618BF4A4ADE83FC >> 128;
2747 | 	```
2748 | 
2749 | - Found in contracts/util/ABDKMath64x64.sol [Line: 549](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L549)
2750 | 
2751 | 	```solidity
2752 | 	        result = result * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB >> 128;
2753 | 	```
2754 | 
2755 | - Found in contracts/util/ABDKMath64x64.sol [Line: 551](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L551)
2756 | 
2757 | 	```solidity
2758 | 	        result = result * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9 >> 128;
2759 | 	```
2760 | 
2761 | - Found in contracts/util/ABDKMath64x64.sol [Line: 553](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L553)
2762 | 
2763 | 	```solidity
2764 | 	        result = result * 0x10000162E43F4F831060E02D839A9D16D >> 128;
2765 | 	```
2766 | 
2767 | - Found in contracts/util/ABDKMath64x64.sol [Line: 555](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L555)
2768 | 
2769 | 	```solidity
2770 | 	        result = result * 0x100000B1721BCFC99D9F890EA06911763 >> 128;
2771 | 	```
2772 | 
2773 | - Found in contracts/util/ABDKMath64x64.sol [Line: 557](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L557)
2774 | 
2775 | 	```solidity
2776 | 	        result = result * 0x10000058B90CF1E6D97F9CA14DBCC1628 >> 128;
2777 | 	```
2778 | 
2779 | - Found in contracts/util/ABDKMath64x64.sol [Line: 559](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L559)
2780 | 
2781 | 	```solidity
2782 | 	        result = result * 0x1000002C5C863B73F016468F6BAC5CA2B >> 128;
2783 | 	```
2784 | 
2785 | - Found in contracts/util/ABDKMath64x64.sol [Line: 561](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L561)
2786 | 
2787 | 	```solidity
2788 | 	        result = result * 0x100000162E430E5A18F6119E3C02282A5 >> 128;
2789 | 	```
2790 | 
2791 | - Found in contracts/util/ABDKMath64x64.sol [Line: 563](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L563)
2792 | 
2793 | 	```solidity
2794 | 	        result = result * 0x1000000B1721835514B86E6D96EFD1BFE >> 128;
2795 | 	```
2796 | 
2797 | - Found in contracts/util/ABDKMath64x64.sol [Line: 565](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L565)
2798 | 
2799 | 	```solidity
2800 | 	        result = result * 0x100000058B90C0B48C6BE5DF846C5B2EF >> 128;
2801 | 	```
2802 | 
2803 | - Found in contracts/util/ABDKMath64x64.sol [Line: 567](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L567)
2804 | 
2805 | 	```solidity
2806 | 	        result = result * 0x10000002C5C8601CC6B9E94213C72737A >> 128;
2807 | 	```
2808 | 
2809 | - Found in contracts/util/ABDKMath64x64.sol [Line: 569](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L569)
2810 | 
2811 | 	```solidity
2812 | 	        result = result * 0x1000000162E42FFF037DF38AA2B219F06 >> 128;
2813 | 	```
2814 | 
2815 | - Found in contracts/util/ABDKMath64x64.sol [Line: 571](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L571)
2816 | 
2817 | 	```solidity
2818 | 	        result = result * 0x10000000B17217FBA9C739AA5819F44F9 >> 128;
2819 | 	```
2820 | 
2821 | - Found in contracts/util/ABDKMath64x64.sol [Line: 573](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L573)
2822 | 
2823 | 	```solidity
2824 | 	        result = result * 0x1000000058B90BFCDEE5ACD3C1CEDC823 >> 128;
2825 | 	```
2826 | 
2827 | - Found in contracts/util/ABDKMath64x64.sol [Line: 575](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L575)
2828 | 
2829 | 	```solidity
2830 | 	        result = result * 0x100000002C5C85FE31F35A6A30DA1BE50 >> 128;
2831 | 	```
2832 | 
2833 | - Found in contracts/util/ABDKMath64x64.sol [Line: 577](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L577)
2834 | 
2835 | 	```solidity
2836 | 	        result = result * 0x10000000162E42FF0999CE3541B9FFFCF >> 128;
2837 | 	```
2838 | 
2839 | - Found in contracts/util/ABDKMath64x64.sol [Line: 578](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L578)
2840 | 
2841 | 	```solidity
2842 | 	      if (x & 0x100000000 > 0)
2843 | 	```
2844 | 
2845 | - Found in contracts/util/ABDKMath64x64.sol [Line: 579](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L579)
2846 | 
2847 | 	```solidity
2848 | 	        result = result * 0x100000000B17217F80F4EF5AADDA45554 >> 128;
2849 | 	```
2850 | 
2851 | - Found in contracts/util/ABDKMath64x64.sol [Line: 581](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L581)
2852 | 
2853 | 	```solidity
2854 | 	        result = result * 0x10000000058B90BFBF8479BD5A81B51AD >> 128;
2855 | 	```
2856 | 
2857 | - Found in contracts/util/ABDKMath64x64.sol [Line: 583](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L583)
2858 | 
2859 | 	```solidity
2860 | 	        result = result * 0x1000000002C5C85FDF84BD62AE30A74CC >> 128;
2861 | 	```
2862 | 
2863 | - Found in contracts/util/ABDKMath64x64.sol [Line: 585](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L585)
2864 | 
2865 | 	```solidity
2866 | 	        result = result * 0x100000000162E42FEFB2FED257559BDAA >> 128;
2867 | 	```
2868 | 
2869 | - Found in contracts/util/ABDKMath64x64.sol [Line: 587](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L587)
2870 | 
2871 | 	```solidity
2872 | 	        result = result * 0x1000000000B17217F7D5A7716BBA4A9AE >> 128;
2873 | 	```
2874 | 
2875 | - Found in contracts/util/ABDKMath64x64.sol [Line: 589](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L589)
2876 | 
2877 | 	```solidity
2878 | 	        result = result * 0x100000000058B90BFBE9DDBAC5E109CCE >> 128;
2879 | 	```
2880 | 
2881 | - Found in contracts/util/ABDKMath64x64.sol [Line: 591](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L591)
2882 | 
2883 | 	```solidity
2884 | 	        result = result * 0x10000000002C5C85FDF4B15DE6F17EB0D >> 128;
2885 | 	```
2886 | 
2887 | - Found in contracts/util/ABDKMath64x64.sol [Line: 593](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L593)
2888 | 
2889 | 	```solidity
2890 | 	        result = result * 0x1000000000162E42FEFA494F1478FDE05 >> 128;
2891 | 	```
2892 | 
2893 | - Found in contracts/util/ABDKMath64x64.sol [Line: 595](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L595)
2894 | 
2895 | 	```solidity
2896 | 	        result = result * 0x10000000000B17217F7D20CF927C8E94C >> 128;
2897 | 	```
2898 | 
2899 | - Found in contracts/util/ABDKMath64x64.sol [Line: 597](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L597)
2900 | 
2901 | 	```solidity
2902 | 	        result = result * 0x1000000000058B90BFBE8F71CB4E4B33D >> 128;
2903 | 	```
2904 | 
2905 | - Found in contracts/util/ABDKMath64x64.sol [Line: 599](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L599)
2906 | 
2907 | 	```solidity
2908 | 	        result = result * 0x100000000002C5C85FDF477B662B26945 >> 128;
2909 | 	```
2910 | 
2911 | - Found in contracts/util/ABDKMath64x64.sol [Line: 601](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L601)
2912 | 
2913 | 	```solidity
2914 | 	        result = result * 0x10000000000162E42FEFA3AE53369388C >> 128;
2915 | 	```
2916 | 
2917 | - Found in contracts/util/ABDKMath64x64.sol [Line: 603](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L603)
2918 | 
2919 | 	```solidity
2920 | 	        result = result * 0x100000000000B17217F7D1D351A389D40 >> 128;
2921 | 	```
2922 | 
2923 | - Found in contracts/util/ABDKMath64x64.sol [Line: 605](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L605)
2924 | 
2925 | 	```solidity
2926 | 	        result = result * 0x10000000000058B90BFBE8E8B2D3D4EDE >> 128;
2927 | 	```
2928 | 
2929 | - Found in contracts/util/ABDKMath64x64.sol [Line: 607](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L607)
2930 | 
2931 | 	```solidity
2932 | 	        result = result * 0x1000000000002C5C85FDF4741BEA6E77E >> 128;
2933 | 	```
2934 | 
2935 | - Found in contracts/util/ABDKMath64x64.sol [Line: 609](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L609)
2936 | 
2937 | 	```solidity
2938 | 	        result = result * 0x100000000000162E42FEFA39FE95583C2 >> 128;
2939 | 	```
2940 | 
2941 | - Found in contracts/util/ABDKMath64x64.sol [Line: 610](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L610)
2942 | 
2943 | 	```solidity
2944 | 	      if (x & 0x10000 > 0)
2945 | 	```
2946 | 
2947 | - Found in contracts/util/ABDKMath64x64.sol [Line: 611](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L611)
2948 | 
2949 | 	```solidity
2950 | 	        result = result * 0x1000000000000B17217F7D1CFB72B45E1 >> 128;
2951 | 	```
2952 | 
2953 | - Found in contracts/util/ABDKMath64x64.sol [Line: 613](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L613)
2954 | 
2955 | 	```solidity
2956 | 	        result = result * 0x100000000000058B90BFBE8E7CC35C3F0 >> 128;
2957 | 	```
2958 | 
2959 | - Found in contracts/util/ABDKMath64x64.sol [Line: 615](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L615)
2960 | 
2961 | 	```solidity
2962 | 	        result = result * 0x10000000000002C5C85FDF473E242EA38 >> 128;
2963 | 	```
2964 | 
2965 | - Found in contracts/util/ABDKMath64x64.sol [Line: 617](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L617)
2966 | 
2967 | 	```solidity
2968 | 	        result = result * 0x1000000000000162E42FEFA39F02B772C >> 128;
2969 | 	```
2970 | 
2971 | - Found in contracts/util/ABDKMath64x64.sol [Line: 619](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L619)
2972 | 
2973 | 	```solidity
2974 | 	        result = result * 0x10000000000000B17217F7D1CF7D83C1A >> 128;
2975 | 	```
2976 | 
2977 | - Found in contracts/util/ABDKMath64x64.sol [Line: 621](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L621)
2978 | 
2979 | 	```solidity
2980 | 	        result = result * 0x1000000000000058B90BFBE8E7BDCBE2E >> 128;
2981 | 	```
2982 | 
2983 | - Found in contracts/util/ABDKMath64x64.sol [Line: 623](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L623)
2984 | 
2985 | 	```solidity
2986 | 	        result = result * 0x100000000000002C5C85FDF473DEA871F >> 128;
2987 | 	```
2988 | 
2989 | - Found in contracts/util/ABDKMath64x64.sol [Line: 625](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L625)
2990 | 
2991 | 	```solidity
2992 | 	        result = result * 0x10000000000000162E42FEFA39EF44D91 >> 128;
2993 | 	```
2994 | 
2995 | - Found in contracts/util/ABDKMath64x64.sol [Line: 626](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L626)
2996 | 
2997 | 	```solidity
2998 | 	      if (x & 0x100 > 0)
2999 | 	```
3000 | 
3001 | - Found in contracts/util/ABDKMath64x64.sol [Line: 627](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L627)
3002 | 
3003 | 	```solidity
3004 | 	        result = result * 0x100000000000000B17217F7D1CF79E949 >> 128;
3005 | 	```
3006 | 
3007 | - Found in contracts/util/ABDKMath64x64.sol [Line: 629](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L629)
3008 | 
3009 | 	```solidity
3010 | 	        result = result * 0x10000000000000058B90BFBE8E7BCE544 >> 128;
3011 | 	```
3012 | 
3013 | - Found in contracts/util/ABDKMath64x64.sol [Line: 631](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L631)
3014 | 
3015 | 	```solidity
3016 | 	        result = result * 0x1000000000000002C5C85FDF473DE6ECA >> 128;
3017 | 	```
3018 | 
3019 | - Found in contracts/util/ABDKMath64x64.sol [Line: 633](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L633)
3020 | 
3021 | 	```solidity
3022 | 	        result = result * 0x100000000000000162E42FEFA39EF366F >> 128;
3023 | 	```
3024 | 
3025 | - Found in contracts/util/ABDKMath64x64.sol [Line: 634](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L634)
3026 | 
3027 | 	```solidity
3028 | 	      if (x & 0x10 > 0)
3029 | 	```
3030 | 
3031 | - Found in contracts/util/ABDKMath64x64.sol [Line: 635](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L635)
3032 | 
3033 | 	```solidity
3034 | 	        result = result * 0x1000000000000000B17217F7D1CF79AFA >> 128;
3035 | 	```
3036 | 
3037 | - Found in contracts/util/ABDKMath64x64.sol [Line: 636](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L636)
3038 | 
3039 | 	```solidity
3040 | 	      if (x & 0x8 > 0)
3041 | 	```
3042 | 
3043 | - Found in contracts/util/ABDKMath64x64.sol [Line: 637](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L637)
3044 | 
3045 | 	```solidity
3046 | 	        result = result * 0x100000000000000058B90BFBE8E7BCD6D >> 128;
3047 | 	```
3048 | 
3049 | - Found in contracts/util/ABDKMath64x64.sol [Line: 638](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L638)
3050 | 
3051 | 	```solidity
3052 | 	      if (x & 0x4 > 0)
3053 | 	```
3054 | 
3055 | - Found in contracts/util/ABDKMath64x64.sol [Line: 639](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L639)
3056 | 
3057 | 	```solidity
3058 | 	        result = result * 0x10000000000000002C5C85FDF473DE6B2 >> 128;
3059 | 	```
3060 | 
3061 | - Found in contracts/util/ABDKMath64x64.sol [Line: 640](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L640)
3062 | 
3063 | 	```solidity
3064 | 	      if (x & 0x2 > 0)
3065 | 	```
3066 | 
3067 | - Found in contracts/util/ABDKMath64x64.sol [Line: 641](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L641)
3068 | 
3069 | 	```solidity
3070 | 	        result = result * 0x1000000000000000162E42FEFA39EF358 >> 128;
3071 | 	```
3072 | 
3073 | - Found in contracts/util/ABDKMath64x64.sol [Line: 642](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L642)
3074 | 
3075 | 	```solidity
3076 | 	      if (x & 0x1 > 0)
3077 | 	```
3078 | 
3079 | - Found in contracts/util/ABDKMath64x64.sol [Line: 643](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L643)
3080 | 
3081 | 	```solidity
3082 | 	        result = result * 0x10000000000000000B17217F7D1CF79AB >> 128;
3083 | 	```
3084 | 
3085 | - Found in contracts/util/ABDKMath64x64.sol [Line: 645](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L645)
3086 | 
3087 | 	```solidity
3088 | 	      result >>= uint256 (int256 (63 - (x >> 64)));
3089 | 	```
3090 | 
3091 | - Found in contracts/util/ABDKMath64x64.sol [Line: 660](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L660)
3092 | 
3093 | 	```solidity
3094 | 	      require (x < 0x400000000000000000); // Overflow
3095 | 	```
3096 | 
3097 | - Found in contracts/util/ABDKMath64x64.sol [Line: 662](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L662)
3098 | 
3099 | 	```solidity
3100 | 	      if (x < -0x400000000000000000) return 0; // Underflow
3101 | 	```
3102 | 
3103 | - Found in contracts/util/ABDKMath64x64.sol [Line: 665](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L665)
3104 | 
3105 | 	```solidity
3106 | 	          int128 (int256 (x) * 0x171547652B82FE1777D0FFDA0D23A7D12 >> 128));
3107 | 	```
3108 | 
3109 | - Found in contracts/util/ABDKMath64x64.sol [Line: 683](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L683)
3110 | 
3111 | 	```solidity
3112 | 	      if (x <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
3113 | 	```
3114 | 
3115 | - Found in contracts/util/ABDKMath64x64.sol [Line: 684](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L684)
3116 | 
3117 | 	```solidity
3118 | 	        result = (x << 64) / y;
3119 | 	```
3120 | 
3121 | - Found in contracts/util/ABDKMath64x64.sol [Line: 686](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L686)
3122 | 
3123 | 	```solidity
3124 | 	        uint256 msb = 192;
3125 | 	```
3126 | 
3127 | - Found in contracts/util/ABDKMath64x64.sol [Line: 687](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L687)
3128 | 
3129 | 	```solidity
3130 | 	        uint256 xc = x >> 192;
3131 | 	```
3132 | 
3133 | - Found in contracts/util/ABDKMath64x64.sol [Line: 688](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L688)
3134 | 
3135 | 	```solidity
3136 | 	        if (xc >= 0x100000000) { xc >>= 32; msb += 32; }
3137 | 	```
3138 | 
3139 | - Found in contracts/util/ABDKMath64x64.sol [Line: 689](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L689)
3140 | 
3141 | 	```solidity
3142 | 	        if (xc >= 0x10000) { xc >>= 16; msb += 16; }
3143 | 	```
3144 | 
3145 | - Found in contracts/util/ABDKMath64x64.sol [Line: 690](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L690)
3146 | 
3147 | 	```solidity
3148 | 	        if (xc >= 0x100) { xc >>= 8; msb += 8; }
3149 | 	```
3150 | 
3151 | - Found in contracts/util/ABDKMath64x64.sol [Line: 691](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L691)
3152 | 
3153 | 	```solidity
3154 | 	        if (xc >= 0x10) { xc >>= 4; msb += 4; }
3155 | 	```
3156 | 
3157 | - Found in contracts/util/ABDKMath64x64.sol [Line: 692](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L692)
3158 | 
3159 | 	```solidity
3160 | 	        if (xc >= 0x4) { xc >>= 2; msb += 2; }
3161 | 	```
3162 | 
3163 | - Found in contracts/util/ABDKMath64x64.sol [Line: 693](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L693)
3164 | 
3165 | 	```solidity
3166 | 	        if (xc >= 0x2) msb += 1;  // No need to shift xc anymore
3167 | 	```
3168 | 
3169 | - Found in contracts/util/ABDKMath64x64.sol [Line: 695](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L695)
3170 | 
3171 | 	```solidity
3172 | 	        result = (x << 255 - msb) / ((y - 1 >> msb - 191) + 1);
3173 | 	```
3174 | 
3175 | - Found in contracts/util/ABDKMath64x64.sol [Line: 696](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L696)
3176 | 
3177 | 	```solidity
3178 | 	        require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3179 | 	```
3180 | 
3181 | - Found in contracts/util/ABDKMath64x64.sol [Line: 698](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L698)
3182 | 
3183 | 	```solidity
3184 | 	        uint256 hi = result * (y >> 128);
3185 | 	```
3186 | 
3187 | - Found in contracts/util/ABDKMath64x64.sol [Line: 699](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L699)
3188 | 
3189 | 	```solidity
3190 | 	        uint256 lo = result * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3191 | 	```
3192 | 
3193 | - Found in contracts/util/ABDKMath64x64.sol [Line: 701](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L701)
3194 | 
3195 | 	```solidity
3196 | 	        uint256 xh = x >> 192;
3197 | 	```
3198 | 
3199 | - Found in contracts/util/ABDKMath64x64.sol [Line: 702](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L702)
3200 | 
3201 | 	```solidity
3202 | 	        uint256 xl = x << 64;
3203 | 	```
3204 | 
3205 | - Found in contracts/util/ABDKMath64x64.sol [Line: 706](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L706)
3206 | 
3207 | 	```solidity
3208 | 	        lo = hi << 128;
3209 | 	```
3210 | 
3211 | - Found in contracts/util/ABDKMath64x64.sol [Line: 710](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L710)
3212 | 
3213 | 	```solidity
3214 | 	        assert (xh == hi >> 128);
3215 | 	```
3216 | 
3217 | - Found in contracts/util/ABDKMath64x64.sol [Line: 715](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L715)
3218 | 
3219 | 	```solidity
3220 | 	      require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3221 | 	```
3222 | 
3223 | - Found in contracts/util/ABDKMath64x64.sol [Line: 733](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L733)
3224 | 
3225 | 	```solidity
3226 | 	        if (xx >= 0x100000000000000000000000000000000) { xx >>= 128; r <<= 64; }
3227 | 	```
3228 | 
3229 | - Found in contracts/util/ABDKMath64x64.sol [Line: 734](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L734)
3230 | 
3231 | 	```solidity
3232 | 	        if (xx >= 0x10000000000000000) { xx >>= 64; r <<= 32; }
3233 | 	```
3234 | 
3235 | - Found in contracts/util/ABDKMath64x64.sol [Line: 735](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L735)
3236 | 
3237 | 	```solidity
3238 | 	        if (xx >= 0x100000000) { xx >>= 32; r <<= 16; }
3239 | 	```
3240 | 
3241 | - Found in contracts/util/ABDKMath64x64.sol [Line: 736](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L736)
3242 | 
3243 | 	```solidity
3244 | 	        if (xx >= 0x10000) { xx >>= 16; r <<= 8; }
3245 | 	```
3246 | 
3247 | - Found in contracts/util/ABDKMath64x64.sol [Line: 737](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L737)
3248 | 
3249 | 	```solidity
3250 | 	        if (xx >= 0x100) { xx >>= 8; r <<= 4; }
3251 | 	```
3252 | 
3253 | - Found in contracts/util/ABDKMath64x64.sol [Line: 738](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L738)
3254 | 
3255 | 	```solidity
3256 | 	        if (xx >= 0x10) { xx >>= 4; r <<= 2; }
3257 | 	```
3258 | 
3259 | - Found in contracts/util/ABDKMath64x64.sol [Line: 739](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L739)
3260 | 
3261 | 	```solidity
3262 | 	        if (xx >= 0x8) { r <<= 1; }
3263 | 	```
3264 | 
3265 | - Found in contracts/util/ABDKMathQuad.sol [Line: 54](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L54)
3266 | 
3267 | 	```solidity
3268 | 	        if (msb < 112) result <<= 112 - msb;
3269 | 	```
3270 | 
3271 | - Found in contracts/util/ABDKMathQuad.sol [Line: 55](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L55)
3272 | 
3273 | 	```solidity
3274 | 	        else if (msb > 112) result >>= msb - 112;
3275 | 	```
3276 | 
3277 | - Found in contracts/util/ABDKMathQuad.sol [Line: 57](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L57)
3278 | 
3279 | 	```solidity
3280 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16383 + msb << 112;
3281 | 	```
3282 | 
3283 | - Found in contracts/util/ABDKMathQuad.sol [Line: 58](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L58)
3284 | 
3285 | 	```solidity
3286 | 	        if (x < 0) result |= 0x80000000000000000000000000000000;
3287 | 	```
3288 | 
3289 | - Found in contracts/util/ABDKMathQuad.sol [Line: 74](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L74)
3290 | 
3291 | 	```solidity
3292 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3293 | 	```
3294 | 
3295 | - Found in contracts/util/ABDKMathQuad.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L76)
3296 | 
3297 | 	```solidity
3298 | 	      require (exponent <= 16638); // Overflow
3299 | 	```
3300 | 
3301 | - Found in contracts/util/ABDKMathQuad.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L77)
3302 | 
3303 | 	```solidity
3304 | 	      if (exponent < 16383) return 0; // Underflow
3305 | 	```
3306 | 
3307 | - Found in contracts/util/ABDKMathQuad.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L79)
3308 | 
3309 | 	```solidity
3310 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3311 | 	```
3312 | 
3313 | - Found in contracts/util/ABDKMathQuad.sol [Line: 80](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L80)
3314 | 
3315 | 	```solidity
3316 | 	        0x10000000000000000000000000000;
3317 | 	```
3318 | 
3319 | - Found in contracts/util/ABDKMathQuad.sol [Line: 82](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L82)
3320 | 
3321 | 	```solidity
3322 | 	      if (exponent < 16495) result >>= 16495 - exponent;
3323 | 	```
3324 | 
3325 | - Found in contracts/util/ABDKMathQuad.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L83)
3326 | 
3327 | 	```solidity
3328 | 	      else if (exponent > 16495) result <<= exponent - 16495;
3329 | 	```
3330 | 
3331 | - Found in contracts/util/ABDKMathQuad.sol [Line: 85](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L85)
3332 | 
3333 | 	```solidity
3334 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative
3335 | 	```
3336 | 
3337 | - Found in contracts/util/ABDKMathQuad.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L86)
3338 | 
3339 | 	```solidity
3340 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
3341 | 	```
3342 | 
3343 | - Found in contracts/util/ABDKMathQuad.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L89)
3344 | 
3345 | 	```solidity
3346 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3347 | 	```
3348 | 
3349 | - Found in contracts/util/ABDKMathQuad.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L108)
3350 | 
3351 | 	```solidity
3352 | 	        if (msb < 112) result <<= 112 - msb;
3353 | 	```
3354 | 
3355 | - Found in contracts/util/ABDKMathQuad.sol [Line: 109](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L109)
3356 | 
3357 | 	```solidity
3358 | 	        else if (msb > 112) result >>= msb - 112;
3359 | 	```
3360 | 
3361 | - Found in contracts/util/ABDKMathQuad.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L111)
3362 | 
3363 | 	```solidity
3364 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16383 + msb << 112;
3365 | 	```
3366 | 
3367 | - Found in contracts/util/ABDKMathQuad.sol [Line: 129](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L129)
3368 | 
3369 | 	```solidity
3370 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3371 | 	```
3372 | 
3373 | - Found in contracts/util/ABDKMathQuad.sol [Line: 131](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L131)
3374 | 
3375 | 	```solidity
3376 | 	      if (exponent < 16383) return 0; // Underflow
3377 | 	```
3378 | 
3379 | - Found in contracts/util/ABDKMathQuad.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L133)
3380 | 
3381 | 	```solidity
3382 | 	      require (uint128 (x) < 0x80000000000000000000000000000000); // Negative
3383 | 	```
3384 | 
3385 | - Found in contracts/util/ABDKMathQuad.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L135)
3386 | 
3387 | 	```solidity
3388 | 	      require (exponent <= 16638); // Overflow
3389 | 	```
3390 | 
3391 | - Found in contracts/util/ABDKMathQuad.sol [Line: 136](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L136)
3392 | 
3393 | 	```solidity
3394 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3395 | 	```
3396 | 
3397 | - Found in contracts/util/ABDKMathQuad.sol [Line: 137](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L137)
3398 | 
3399 | 	```solidity
3400 | 	        0x10000000000000000000000000000;
3401 | 	```
3402 | 
3403 | - Found in contracts/util/ABDKMathQuad.sol [Line: 139](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L139)
3404 | 
3405 | 	```solidity
3406 | 	      if (exponent < 16495) result >>= 16495 - exponent;
3407 | 	```
3408 | 
3409 | - Found in contracts/util/ABDKMathQuad.sol [Line: 140](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L140)
3410 | 
3411 | 	```solidity
3412 | 	      else if (exponent > 16495) result <<= exponent - 16495;
3413 | 	```
3414 | 
3415 | - Found in contracts/util/ABDKMathQuad.sol [Line: 161](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L161)
3416 | 
3417 | 	```solidity
3418 | 	        if (msb < 112) result <<= 112 - msb;
3419 | 	```
3420 | 
3421 | - Found in contracts/util/ABDKMathQuad.sol [Line: 162](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L162)
3422 | 
3423 | 	```solidity
3424 | 	        else if (msb > 112) result >>= msb - 112;
3425 | 	```
3426 | 
3427 | - Found in contracts/util/ABDKMathQuad.sol [Line: 164](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L164)
3428 | 
3429 | 	```solidity
3430 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16255 + msb << 112;
3431 | 	```
3432 | 
3433 | - Found in contracts/util/ABDKMathQuad.sol [Line: 165](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L165)
3434 | 
3435 | 	```solidity
3436 | 	        if (x < 0) result |= 0x80000000000000000000000000000000;
3437 | 	```
3438 | 
3439 | - Found in contracts/util/ABDKMathQuad.sol [Line: 181](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L181)
3440 | 
3441 | 	```solidity
3442 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3443 | 	```
3444 | 
3445 | - Found in contracts/util/ABDKMathQuad.sol [Line: 184](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L184)
3446 | 
3447 | 	```solidity
3448 | 	      if (exponent < 16255) return 0; // Underflow
3449 | 	```
3450 | 
3451 | - Found in contracts/util/ABDKMathQuad.sol [Line: 186](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L186)
3452 | 
3453 | 	```solidity
3454 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3455 | 	```
3456 | 
3457 | - Found in contracts/util/ABDKMathQuad.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L187)
3458 | 
3459 | 	```solidity
3460 | 	        0x10000000000000000000000000000;
3461 | 	```
3462 | 
3463 | - Found in contracts/util/ABDKMathQuad.sol [Line: 189](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L189)
3464 | 
3465 | 	```solidity
3466 | 	      if (exponent < 16367) result >>= 16367 - exponent;
3467 | 	```
3468 | 
3469 | - Found in contracts/util/ABDKMathQuad.sol [Line: 190](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L190)
3470 | 
3471 | 	```solidity
3472 | 	      else if (exponent > 16367) result <<= exponent - 16367;
3473 | 	```
3474 | 
3475 | - Found in contracts/util/ABDKMathQuad.sol [Line: 192](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L192)
3476 | 
3477 | 	```solidity
3478 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative
3479 | 	```
3480 | 
3481 | - Found in contracts/util/ABDKMathQuad.sol [Line: 193](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L193)
3482 | 
3483 | 	```solidity
3484 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
3485 | 	```
3486 | 
3487 | - Found in contracts/util/ABDKMathQuad.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L196)
3488 | 
3489 | 	```solidity
3490 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3491 | 	```
3492 | 
3493 | - Found in contracts/util/ABDKMathQuad.sol [Line: 217](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L217)
3494 | 
3495 | 	```solidity
3496 | 	        if (msb < 112) result <<= 112 - msb;
3497 | 	```
3498 | 
3499 | - Found in contracts/util/ABDKMathQuad.sol [Line: 218](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L218)
3500 | 
3501 | 	```solidity
3502 | 	        else if (msb > 112) result >>= msb - 112;
3503 | 	```
3504 | 
3505 | - Found in contracts/util/ABDKMathQuad.sol [Line: 220](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L220)
3506 | 
3507 | 	```solidity
3508 | 	        result = result & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF | 16319 + msb << 112;
3509 | 	```
3510 | 
3511 | - Found in contracts/util/ABDKMathQuad.sol [Line: 221](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L221)
3512 | 
3513 | 	```solidity
3514 | 	        if (x < 0) result |= 0x80000000000000000000000000000000;
3515 | 	```
3516 | 
3517 | - Found in contracts/util/ABDKMathQuad.sol [Line: 237](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L237)
3518 | 
3519 | 	```solidity
3520 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3521 | 	```
3522 | 
3523 | - Found in contracts/util/ABDKMathQuad.sol [Line: 240](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L240)
3524 | 
3525 | 	```solidity
3526 | 	      if (exponent < 16319) return 0; // Underflow
3527 | 	```
3528 | 
3529 | - Found in contracts/util/ABDKMathQuad.sol [Line: 242](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L242)
3530 | 
3531 | 	```solidity
3532 | 	      uint256 result = uint256 (uint128 (x)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
3533 | 	```
3534 | 
3535 | - Found in contracts/util/ABDKMathQuad.sol [Line: 243](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L243)
3536 | 
3537 | 	```solidity
3538 | 	        0x10000000000000000000000000000;
3539 | 	```
3540 | 
3541 | - Found in contracts/util/ABDKMathQuad.sol [Line: 245](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L245)
3542 | 
3543 | 	```solidity
3544 | 	      if (exponent < 16431) result >>= 16431 - exponent;
3545 | 	```
3546 | 
3547 | - Found in contracts/util/ABDKMathQuad.sol [Line: 246](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L246)
3548 | 
3549 | 	```solidity
3550 | 	      else if (exponent > 16431) result <<= exponent - 16431;
3551 | 	```
3552 | 
3553 | - Found in contracts/util/ABDKMathQuad.sol [Line: 248](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L248)
3554 | 
3555 | 	```solidity
3556 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000) { // Negative
3557 | 	```
3558 | 
3559 | - Found in contracts/util/ABDKMathQuad.sol [Line: 249](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L249)
3560 | 
3561 | 	```solidity
3562 | 	        require (result <= 0x80000000000000000000000000000000);
3563 | 	```
3564 | 
3565 | - Found in contracts/util/ABDKMathQuad.sol [Line: 252](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L252)
3566 | 
3567 | 	```solidity
3568 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
3569 | 	```
3570 | 
3571 | - Found in contracts/util/ABDKMathQuad.sol [Line: 266](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L266)
3572 | 
3573 | 	```solidity
3574 | 	      bool negative = x & 0x8000000000000000000000000000000000000000000000000000000000000000 > 0;
3575 | 	```
3576 | 
3577 | - Found in contracts/util/ABDKMathQuad.sol [Line: 268](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L268)
3578 | 
3579 | 	```solidity
3580 | 	      uint256 exponent = uint256 (x) >> 236 & 0x7FFFF;
3581 | 	```
3582 | 
3583 | - Found in contracts/util/ABDKMathQuad.sol [Line: 269](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L269)
3584 | 
3585 | 	```solidity
3586 | 	      uint256 significand = uint256 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3587 | 	```
3588 | 
3589 | - Found in contracts/util/ABDKMathQuad.sol [Line: 271](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L271)
3590 | 
3591 | 	```solidity
3592 | 	      if (exponent == 0x7FFFF) {
3593 | 	```
3594 | 
3595 | - Found in contracts/util/ABDKMathQuad.sol [Line: 278](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L278)
3596 | 
3597 | 	```solidity
3598 | 	      else if (exponent < 245649)
3599 | 	```
3600 | 
3601 | - Found in contracts/util/ABDKMathQuad.sol [Line: 284](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L284)
3602 | 
3603 | 	```solidity
3604 | 	        significand >>= 124;
3605 | 	```
3606 | 
3607 | - Found in contracts/util/ABDKMathQuad.sol [Line: 285](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L285)
3608 | 
3609 | 	```solidity
3610 | 	        exponent -= 245760;
3611 | 	```
3612 | 
3613 | - Found in contracts/util/ABDKMathQuad.sol [Line: 288](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L288)
3614 | 
3615 | 	```solidity
3616 | 	      uint128 result = uint128 (significand | exponent << 112);
3617 | 	```
3618 | 
3619 | - Found in contracts/util/ABDKMathQuad.sol [Line: 289](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L289)
3620 | 
3621 | 	```solidity
3622 | 	      if (negative) result |= 0x80000000000000000000000000000000;
3623 | 	```
3624 | 
3625 | - Found in contracts/util/ABDKMathQuad.sol [Line: 303](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L303)
3626 | 
3627 | 	```solidity
3628 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3629 | 	```
3630 | 
3631 | - Found in contracts/util/ABDKMathQuad.sol [Line: 305](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L305)
3632 | 
3633 | 	```solidity
3634 | 	      uint256 result = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3635 | 	```
3636 | 
3637 | - Found in contracts/util/ABDKMathQuad.sol [Line: 307](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L307)
3638 | 
3639 | 	```solidity
3640 | 	      if (exponent == 0x7FFF) exponent = 0x7FFFF; // Infinity or NaN
3641 | 	```
3642 | 
3643 | - Found in contracts/util/ABDKMathQuad.sol [Line: 311](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L311)
3644 | 
3645 | 	```solidity
3646 | 	          result = result << 236 - msb & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3647 | 	```
3648 | 
3649 | - Found in contracts/util/ABDKMathQuad.sol [Line: 312](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L312)
3650 | 
3651 | 	```solidity
3652 | 	          exponent = 245649 + msb;
3653 | 	```
3654 | 
3655 | - Found in contracts/util/ABDKMathQuad.sol [Line: 315](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L315)
3656 | 
3657 | 	```solidity
3658 | 	        result <<= 124;
3659 | 	```
3660 | 
3661 | - Found in contracts/util/ABDKMathQuad.sol [Line: 316](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L316)
3662 | 
3663 | 	```solidity
3664 | 	        exponent += 245760;
3665 | 	```
3666 | 
3667 | - Found in contracts/util/ABDKMathQuad.sol [Line: 319](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L319)
3668 | 
3669 | 	```solidity
3670 | 	      result |= exponent << 236;
3671 | 	```
3672 | 
3673 | - Found in contracts/util/ABDKMathQuad.sol [Line: 320](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L320)
3674 | 
3675 | 	```solidity
3676 | 	      if (uint128 (x) >= 0x80000000000000000000000000000000)
3677 | 	```
3678 | 
3679 | - Found in contracts/util/ABDKMathQuad.sol [Line: 321](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L321)
3680 | 
3681 | 	```solidity
3682 | 	        result |= 0x8000000000000000000000000000000000000000000000000000000000000000;
3683 | 	```
3684 | 
3685 | - Found in contracts/util/ABDKMathQuad.sol [Line: 335](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L335)
3686 | 
3687 | 	```solidity
3688 | 	      uint256 exponent = uint64 (x) >> 52 & 0x7FF;
3689 | 	```
3690 | 
3691 | - Found in contracts/util/ABDKMathQuad.sol [Line: 339](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L339)
3692 | 
3693 | 	```solidity
3694 | 	      if (exponent == 0x7FF) exponent = 0x7FFF; // Infinity or NaN
3695 | 	```
3696 | 
3697 | - Found in contracts/util/ABDKMathQuad.sol [Line: 343](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L343)
3698 | 
3699 | 	```solidity
3700 | 	          result = result << 112 - msb & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3701 | 	```
3702 | 
3703 | - Found in contracts/util/ABDKMathQuad.sol [Line: 344](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L344)
3704 | 
3705 | 	```solidity
3706 | 	          exponent = 15309 + msb;
3707 | 	```
3708 | 
3709 | - Found in contracts/util/ABDKMathQuad.sol [Line: 347](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L347)
3710 | 
3711 | 	```solidity
3712 | 	        result <<= 60;
3713 | 	```
3714 | 
3715 | - Found in contracts/util/ABDKMathQuad.sol [Line: 348](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L348)
3716 | 
3717 | 	```solidity
3718 | 	        exponent += 15360;
3719 | 	```
3720 | 
3721 | - Found in contracts/util/ABDKMathQuad.sol [Line: 351](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L351)
3722 | 
3723 | 	```solidity
3724 | 	      result |= exponent << 112;
3725 | 	```
3726 | 
3727 | - Found in contracts/util/ABDKMathQuad.sol [Line: 352](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L352)
3728 | 
3729 | 	```solidity
3730 | 	      if (x & 0x8000000000000000 > 0)
3731 | 	```
3732 | 
3733 | - Found in contracts/util/ABDKMathQuad.sol [Line: 353](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L353)
3734 | 
3735 | 	```solidity
3736 | 	        result |= 0x80000000000000000000000000000000;
3737 | 	```
3738 | 
3739 | - Found in contracts/util/ABDKMathQuad.sol [Line: 367](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L367)
3740 | 
3741 | 	```solidity
3742 | 	      bool negative = uint128 (x) >= 0x80000000000000000000000000000000;
3743 | 	```
3744 | 
3745 | - Found in contracts/util/ABDKMathQuad.sol [Line: 369](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L369)
3746 | 
3747 | 	```solidity
3748 | 	      uint256 exponent = uint128 (x) >> 112 & 0x7FFF;
3749 | 	```
3750 | 
3751 | - Found in contracts/util/ABDKMathQuad.sol [Line: 370](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L370)
3752 | 
3753 | 	```solidity
3754 | 	      uint256 significand = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3755 | 	```
3756 | 
3757 | - Found in contracts/util/ABDKMathQuad.sol [Line: 372](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L372)
3758 | 
3759 | 	```solidity
3760 | 	      if (exponent == 0x7FFF) {
3761 | 	```
3762 | 
3763 | - Found in contracts/util/ABDKMathQuad.sol [Line: 375](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L375)
3764 | 
3765 | 	```solidity
3766 | 	            bytes8 (0xFFF0000000000000) : // -Infinity
3767 | 	```
3768 | 
3769 | - Found in contracts/util/ABDKMathQuad.sol [Line: 376](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L376)
3770 | 
3771 | 	```solidity
3772 | 	            bytes8 (0x7FF0000000000000); // Infinity
3773 | 	```
3774 | 
3775 | - Found in contracts/util/ABDKMathQuad.sol [Line: 381](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L381)
3776 | 
3777 | 	```solidity
3778 | 	            bytes8 (0xFFF0000000000000) : // -Infinity
3779 | 	```
3780 | 
3781 | - Found in contracts/util/ABDKMathQuad.sol [Line: 382](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L382)
3782 | 
3783 | 	```solidity
3784 | 	            bytes8 (0x7FF0000000000000); // Infinity
3785 | 	```
3786 | 
3787 | - Found in contracts/util/ABDKMathQuad.sol [Line: 383](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L383)
3788 | 
3789 | 	```solidity
3790 | 	      else if (exponent < 15309)
3791 | 	```
3792 | 
3793 | - Found in contracts/util/ABDKMathQuad.sol [Line: 385](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L385)
3794 | 
3795 | 	```solidity
3796 | 	            bytes8 (0x8000000000000000) : // -0
3797 | 	```
3798 | 
3799 | - Found in contracts/util/ABDKMathQuad.sol [Line: 388](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L388)
3800 | 
3801 | 	```solidity
3802 | 	        significand = (significand | 0x10000000000000000000000000000) >> 15421 - exponent;
3803 | 	```
3804 | 
3805 | - Found in contracts/util/ABDKMathQuad.sol [Line: 391](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L391)
3806 | 
3807 | 	```solidity
3808 | 	        significand >>= 60;
3809 | 	```
3810 | 
3811 | - Found in contracts/util/ABDKMathQuad.sol [Line: 392](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L392)
3812 | 
3813 | 	```solidity
3814 | 	        exponent -= 15360;
3815 | 	```
3816 | 
3817 | - Found in contracts/util/ABDKMathQuad.sol [Line: 395](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L395)
3818 | 
3819 | 	```solidity
3820 | 	      uint64 result = uint64 (significand | exponent << 52);
3821 | 	```
3822 | 
3823 | - Found in contracts/util/ABDKMathQuad.sol [Line: 396](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L396)
3824 | 
3825 | 	```solidity
3826 | 	      if (negative) result |= 0x8000000000000000;
3827 | 	```
3828 | 
3829 | - Found in contracts/util/ABDKMathQuad.sol [Line: 410](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L410)
3830 | 
3831 | 	```solidity
3832 | 	      return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF >
3833 | 	```
3834 | 
3835 | - Found in contracts/util/ABDKMathQuad.sol [Line: 411](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L411)
3836 | 
3837 | 	```solidity
3838 | 	        0x7FFF0000000000000000000000000000;
3839 | 	```
3840 | 
3841 | - Found in contracts/util/ABDKMathQuad.sol [Line: 424](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L424)
3842 | 
3843 | 	```solidity
3844 | 	      return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ==
3845 | 	```
3846 | 
3847 | - Found in contracts/util/ABDKMathQuad.sol [Line: 425](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L425)
3848 | 
3849 | 	```solidity
3850 | 	        0x7FFF0000000000000000000000000000;
3851 | 	```
3852 | 
3853 | - Found in contracts/util/ABDKMathQuad.sol [Line: 438](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L438)
3854 | 
3855 | 	```solidity
3856 | 	      uint128 absoluteX = uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3857 | 	```
3858 | 
3859 | - Found in contracts/util/ABDKMathQuad.sol [Line: 440](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L440)
3860 | 
3861 | 	```solidity
3862 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
3863 | 	```
3864 | 
3865 | - Found in contracts/util/ABDKMathQuad.sol [Line: 443](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L443)
3866 | 
3867 | 	```solidity
3868 | 	      else if (uint128 (x) >= 0x80000000000000000000000000000000) return -1;
3869 | 	```
3870 | 
3871 | - Found in contracts/util/ABDKMathQuad.sol [Line: 458](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L458)
3872 | 
3873 | 	```solidity
3874 | 	      uint128 absoluteX = uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3875 | 	```
3876 | 
3877 | - Found in contracts/util/ABDKMathQuad.sol [Line: 460](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L460)
3878 | 
3879 | 	```solidity
3880 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
3881 | 	```
3882 | 
3883 | - Found in contracts/util/ABDKMathQuad.sol [Line: 462](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L462)
3884 | 
3885 | 	```solidity
3886 | 	      uint128 absoluteY = uint128 (y) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3887 | 	```
3888 | 
3889 | - Found in contracts/util/ABDKMathQuad.sol [Line: 464](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L464)
3890 | 
3891 | 	```solidity
3892 | 	      require (absoluteY <= 0x7FFF0000000000000000000000000000); // Not NaN
3893 | 	```
3894 | 
3895 | - Found in contracts/util/ABDKMathQuad.sol [Line: 467](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L467)
3896 | 
3897 | 	```solidity
3898 | 	      require (x != y || absoluteX < 0x7FFF0000000000000000000000000000);
3899 | 	```
3900 | 
3901 | - Found in contracts/util/ABDKMathQuad.sol [Line: 471](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L471)
3902 | 
3903 | 	```solidity
3904 | 	        bool negativeX = uint128 (x) >= 0x80000000000000000000000000000000;
3905 | 	```
3906 | 
3907 | - Found in contracts/util/ABDKMathQuad.sol [Line: 472](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L472)
3908 | 
3909 | 	```solidity
3910 | 	        bool negativeY = uint128 (y) >= 0x80000000000000000000000000000000;
3911 | 	```
3912 | 
3913 | - Found in contracts/util/ABDKMathQuad.sol [Line: 496](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L496)
3914 | 
3915 | 	```solidity
3916 | 	        return uint128 (x) & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF <
3917 | 	```
3918 | 
3919 | - Found in contracts/util/ABDKMathQuad.sol [Line: 497](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L497)
3920 | 
3921 | 	```solidity
3922 | 	          0x7FFF0000000000000000000000000000;
3923 | 	```
3924 | 
3925 | - Found in contracts/util/ABDKMathQuad.sol [Line: 518](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L518)
3926 | 
3927 | 	```solidity
3928 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
3929 | 	```
3930 | 
3931 | - Found in contracts/util/ABDKMathQuad.sol [Line: 519](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L519)
3932 | 
3933 | 	```solidity
3934 | 	      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;
3935 | 	```
3936 | 
3937 | - Found in contracts/util/ABDKMathQuad.sol [Line: 521](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L521)
3938 | 
3939 | 	```solidity
3940 | 	      if (xExponent == 0x7FFF) {
3941 | 	```
3942 | 
3943 | - Found in contracts/util/ABDKMathQuad.sol [Line: 522](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L522)
3944 | 
3945 | 	```solidity
3946 | 	        if (yExponent == 0x7FFF) { 
3947 | 	```
3948 | 
3949 | - Found in contracts/util/ABDKMathQuad.sol [Line: 526](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L526)
3950 | 
3951 | 	```solidity
3952 | 	      } else if (yExponent == 0x7FFF) return y;
3953 | 	```
3954 | 
3955 | - Found in contracts/util/ABDKMathQuad.sol [Line: 528](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L528)
3956 | 
3957 | 	```solidity
3958 | 	        bool xSign = uint128 (x) >= 0x80000000000000000000000000000000;
3959 | 	```
3960 | 
3961 | - Found in contracts/util/ABDKMathQuad.sol [Line: 529](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L529)
3962 | 
3963 | 	```solidity
3964 | 	        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3965 | 	```
3966 | 
3967 | - Found in contracts/util/ABDKMathQuad.sol [Line: 531](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L531)
3968 | 
3969 | 	```solidity
3970 | 	        else xSignifier |= 0x10000000000000000000000000000;
3971 | 	```
3972 | 
3973 | - Found in contracts/util/ABDKMathQuad.sol [Line: 533](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L533)
3974 | 
3975 | 	```solidity
3976 | 	        bool ySign = uint128 (y) >= 0x80000000000000000000000000000000;
3977 | 	```
3978 | 
3979 | - Found in contracts/util/ABDKMathQuad.sol [Line: 534](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L534)
3980 | 
3981 | 	```solidity
3982 | 	        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
3983 | 	```
3984 | 
3985 | - Found in contracts/util/ABDKMathQuad.sol [Line: 536](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L536)
3986 | 
3987 | 	```solidity
3988 | 	        else ySignifier |= 0x10000000000000000000000000000;
3989 | 	```
3990 | 
3991 | - Found in contracts/util/ABDKMathQuad.sol [Line: 544](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L544)
3992 | 
3993 | 	```solidity
3994 | 	            if (delta > 112) return x;
3995 | 	```
3996 | 
3997 | - Found in contracts/util/ABDKMathQuad.sol [Line: 546](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L546)
3998 | 
3999 | 	```solidity
4000 | 	            else if (delta < -112) return y;
4001 | 	```
4002 | 
4003 | - Found in contracts/util/ABDKMathQuad.sol [Line: 554](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L554)
4004 | 
4005 | 	```solidity
4006 | 	            if (xSignifier >= 0x20000000000000000000000000000) {
4007 | 	```
4008 | 
4009 | - Found in contracts/util/ABDKMathQuad.sol [Line: 559](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L559)
4010 | 
4011 | 	```solidity
4012 | 	            if (xExponent == 0x7FFF)
4013 | 	```
4014 | 
4015 | - Found in contracts/util/ABDKMathQuad.sol [Line: 562](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L562)
4016 | 
4017 | 	```solidity
4018 | 	              if (xSignifier < 0x10000000000000000000000000000) xExponent = 0;
4019 | 	```
4020 | 
4021 | - Found in contracts/util/ABDKMathQuad.sol [Line: 563](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L563)
4022 | 
4023 | 	```solidity
4024 | 	              else xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4025 | 	```
4026 | 
4027 | - Found in contracts/util/ABDKMathQuad.sol [Line: 566](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L566)
4028 | 
4029 | 	```solidity
4030 | 	                  (xSign ? 0x80000000000000000000000000000000 : 0) |
4031 | 	```
4032 | 
4033 | - Found in contracts/util/ABDKMathQuad.sol [Line: 567](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L567)
4034 | 
4035 | 	```solidity
4036 | 	                  (xExponent << 112) |
4037 | 	```
4038 | 
4039 | - Found in contracts/util/ABDKMathQuad.sol [Line: 579](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L579)
4040 | 
4041 | 	```solidity
4042 | 	            if (delta > 112) ySignifier = 1;
4043 | 	```
4044 | 
4045 | - Found in contracts/util/ABDKMathQuad.sol [Line: 581](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L581)
4046 | 
4047 | 	```solidity
4048 | 	            else if (delta < -112) xSignifier = 1;
4049 | 	```
4050 | 
4051 | - Found in contracts/util/ABDKMathQuad.sol [Line: 595](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L595)
4052 | 
4053 | 	```solidity
4054 | 	            if (msb == 113) {
4055 | 	```
4056 | 
4057 | - Found in contracts/util/ABDKMathQuad.sol [Line: 596](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L596)
4058 | 
4059 | 	```solidity
4060 | 	              xSignifier = xSignifier >> 1 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4061 | 	```
4062 | 
4063 | - Found in contracts/util/ABDKMathQuad.sol [Line: 598](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L598)
4064 | 
4065 | 	```solidity
4066 | 	            } else if (msb < 112) {
4067 | 	```
4068 | 
4069 | - Found in contracts/util/ABDKMathQuad.sol [Line: 599](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L599)
4070 | 
4071 | 	```solidity
4072 | 	              uint256 shift = 112 - msb;
4073 | 	```
4074 | 
4075 | - Found in contracts/util/ABDKMathQuad.sol [Line: 601](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L601)
4076 | 
4077 | 	```solidity
4078 | 	                xSignifier = xSignifier << shift & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4079 | 	```
4080 | 
4081 | - Found in contracts/util/ABDKMathQuad.sol [Line: 607](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L607)
4082 | 
4083 | 	```solidity
4084 | 	            } else xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4085 | 	```
4086 | 
4087 | - Found in contracts/util/ABDKMathQuad.sol [Line: 609](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L609)
4088 | 
4089 | 	```solidity
4090 | 	            if (xExponent == 0x7FFF)
4091 | 	```
4092 | 
4093 | - Found in contracts/util/ABDKMathQuad.sol [Line: 612](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L612)
4094 | 
4095 | 	```solidity
4096 | 	                (xSign ? 0x80000000000000000000000000000000 : 0) |
4097 | 	```
4098 | 
4099 | - Found in contracts/util/ABDKMathQuad.sol [Line: 613](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L613)
4100 | 
4101 | 	```solidity
4102 | 	                (xExponent << 112) |
4103 | 	```
4104 | 
4105 | - Found in contracts/util/ABDKMathQuad.sol [Line: 637](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L637)
4106 | 
4107 | 	```solidity
4108 | 	      return add (x, y ^ 0x80000000000000000000000000000000);
4109 | 	```
4110 | 
4111 | - Found in contracts/util/ABDKMathQuad.sol [Line: 662](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L662)
4112 | 
4113 | 	```solidity
4114 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4115 | 	```
4116 | 
4117 | - Found in contracts/util/ABDKMathQuad.sol [Line: 663](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L663)
4118 | 
4119 | 	```solidity
4120 | 	      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;
4121 | 	```
4122 | 
4123 | - Found in contracts/util/ABDKMathQuad.sol [Line: 665](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L665)
4124 | 
4125 | 	```solidity
4126 | 	      if (xExponent == 0x7FFF) {
4127 | 	```
4128 | 
4129 | - Found in contracts/util/ABDKMathQuad.sol [Line: 666](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L666)
4130 | 
4131 | 	```solidity
4132 | 	        if (yExponent == 0x7FFF) {
4133 | 	```
4134 | 
4135 | - Found in contracts/util/ABDKMathQuad.sol [Line: 667](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L667)
4136 | 
4137 | 	```solidity
4138 | 	          if (x == y) return x ^ y & 0x80000000000000000000000000000000;
4139 | 	```
4140 | 
4141 | - Found in contracts/util/ABDKMathQuad.sol [Line: 668](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L668)
4142 | 
4143 | 	```solidity
4144 | 	          else if (x ^ y == 0x80000000000000000000000000000000) return x | y;
4145 | 	```
4146 | 
4147 | - Found in contracts/util/ABDKMathQuad.sol [Line: 671](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L671)
4148 | 
4149 | 	```solidity
4150 | 	          if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;
4151 | 	```
4152 | 
4153 | - Found in contracts/util/ABDKMathQuad.sol [Line: 672](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L672)
4154 | 
4155 | 	```solidity
4156 | 	          else return x ^ y & 0x80000000000000000000000000000000;
4157 | 	```
4158 | 
4159 | - Found in contracts/util/ABDKMathQuad.sol [Line: 674](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L674)
4160 | 
4161 | 	```solidity
4162 | 	      } else if (yExponent == 0x7FFF) {
4163 | 	```
4164 | 
4165 | - Found in contracts/util/ABDKMathQuad.sol [Line: 675](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L675)
4166 | 
4167 | 	```solidity
4168 | 	          if (x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;
4169 | 	```
4170 | 
4171 | - Found in contracts/util/ABDKMathQuad.sol [Line: 676](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L676)
4172 | 
4173 | 	```solidity
4174 | 	          else return y ^ x & 0x80000000000000000000000000000000;
4175 | 	```
4176 | 
4177 | - Found in contracts/util/ABDKMathQuad.sol [Line: 678](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L678)
4178 | 
4179 | 	```solidity
4180 | 	        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4181 | 	```
4182 | 
4183 | - Found in contracts/util/ABDKMathQuad.sol [Line: 680](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L680)
4184 | 
4185 | 	```solidity
4186 | 	        else xSignifier |= 0x10000000000000000000000000000;
4187 | 	```
4188 | 
4189 | - Found in contracts/util/ABDKMathQuad.sol [Line: 682](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L682)
4190 | 
4191 | 	```solidity
4192 | 	        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4193 | 	```
4194 | 
4195 | - Found in contracts/util/ABDKMathQuad.sol [Line: 684](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L684)
4196 | 
4197 | 	```solidity
4198 | 	        else ySignifier |= 0x10000000000000000000000000000;
4199 | 	```
4200 | 
4201 | - Found in contracts/util/ABDKMathQuad.sol [Line: 688](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L688)
4202 | 
4203 | 	```solidity
4204 | 	          return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?
4205 | 	```
4206 | 
4207 | - Found in contracts/util/ABDKMathQuad.sol [Line: 694](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L694)
4208 | 
4209 | 	```solidity
4210 | 	          xSignifier >= 0x200000000000000000000000000000000000000000000000000000000 ? 225 :
4211 | 	```
4212 | 
4213 | - Found in contracts/util/ABDKMathQuad.sol [Line: 698](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L698)
4214 | 
4215 | 	```solidity
4216 | 	        if (xExponent + msb < 16496) { // Underflow
4217 | 	```
4218 | 
4219 | - Found in contracts/util/ABDKMathQuad.sol [Line: 702](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L702)
4220 | 
4221 | 	```solidity
4222 | 	          if (xExponent < 16496)
4223 | 	```
4224 | 
4225 | - Found in contracts/util/ABDKMathQuad.sol [Line: 703](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L703)
4226 | 
4227 | 	```solidity
4228 | 	            xSignifier >>= 16496 - xExponent;
4229 | 	```
4230 | 
4231 | - Found in contracts/util/ABDKMathQuad.sol [Line: 704](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L704)
4232 | 
4233 | 	```solidity
4234 | 	          else if (xExponent > 16496)
4235 | 	```
4236 | 
4237 | - Found in contracts/util/ABDKMathQuad.sol [Line: 705](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L705)
4238 | 
4239 | 	```solidity
4240 | 	            xSignifier <<= xExponent - 16496;
4241 | 	```
4242 | 
4243 | - Found in contracts/util/ABDKMathQuad.sol [Line: 708](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L708)
4244 | 
4245 | 	```solidity
4246 | 	          xExponent = 0x7FFF;
4247 | 	```
4248 | 
4249 | - Found in contracts/util/ABDKMathQuad.sol [Line: 711](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L711)
4250 | 
4251 | 	```solidity
4252 | 	          if (msb > 112)
4253 | 	```
4254 | 
4255 | - Found in contracts/util/ABDKMathQuad.sol [Line: 712](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L712)
4256 | 
4257 | 	```solidity
4258 | 	            xSignifier >>= msb - 112;
4259 | 	```
4260 | 
4261 | - Found in contracts/util/ABDKMathQuad.sol [Line: 713](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L713)
4262 | 
4263 | 	```solidity
4264 | 	          else if (msb < 112)
4265 | 	```
4266 | 
4267 | - Found in contracts/util/ABDKMathQuad.sol [Line: 714](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L714)
4268 | 
4269 | 	```solidity
4270 | 	            xSignifier <<= 112 - msb;
4271 | 	```
4272 | 
4273 | - Found in contracts/util/ABDKMathQuad.sol [Line: 716](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L716)
4274 | 
4275 | 	```solidity
4276 | 	          xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4277 | 	```
4278 | 
4279 | - Found in contracts/util/ABDKMathQuad.sol [Line: 721](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L721)
4280 | 
4281 | 	```solidity
4282 | 	        return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |
4283 | 	```
4284 | 
4285 | - Found in contracts/util/ABDKMathQuad.sol [Line: 722](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L722)
4286 | 
4287 | 	```solidity
4288 | 	            xExponent << 112 | xSignifier));
4289 | 	```
4290 | 
4291 | - Found in contracts/util/ABDKMathQuad.sol [Line: 763](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L763)
4292 | 
4293 | 	```solidity
4294 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4295 | 	```
4296 | 
4297 | - Found in contracts/util/ABDKMathQuad.sol [Line: 764](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L764)
4298 | 
4299 | 	```solidity
4300 | 	      uint256 yExponent = uint128 (y) >> 112 & 0x7FFF;
4301 | 	```
4302 | 
4303 | - Found in contracts/util/ABDKMathQuad.sol [Line: 766](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L766)
4304 | 
4305 | 	```solidity
4306 | 	      if (xExponent == 0x7FFF) {
4307 | 	```
4308 | 
4309 | - Found in contracts/util/ABDKMathQuad.sol [Line: 767](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L767)
4310 | 
4311 | 	```solidity
4312 | 	        if (yExponent == 0x7FFF) return NaN;
4313 | 	```
4314 | 
4315 | - Found in contracts/util/ABDKMathQuad.sol [Line: 768](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L768)
4316 | 
4317 | 	```solidity
4318 | 	        else return x ^ y & 0x80000000000000000000000000000000;
4319 | 	```
4320 | 
4321 | - Found in contracts/util/ABDKMathQuad.sol [Line: 769](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L769)
4322 | 
4323 | 	```solidity
4324 | 	      } else if (yExponent == 0x7FFF) {
4325 | 	```
4326 | 
4327 | - Found in contracts/util/ABDKMathQuad.sol [Line: 771](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L771)
4328 | 
4329 | 	```solidity
4330 | 	        else return POSITIVE_ZERO | (x ^ y) & 0x80000000000000000000000000000000;
4331 | 	```
4332 | 
4333 | - Found in contracts/util/ABDKMathQuad.sol [Line: 772](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L772)
4334 | 
4335 | 	```solidity
4336 | 	      } else if (y & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) {
4337 | 	```
4338 | 
4339 | - Found in contracts/util/ABDKMathQuad.sol [Line: 773](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L773)
4340 | 
4341 | 	```solidity
4342 | 	        if (x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF == 0) return NaN;
4343 | 	```
4344 | 
4345 | - Found in contracts/util/ABDKMathQuad.sol [Line: 774](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L774)
4346 | 
4347 | 	```solidity
4348 | 	        else return POSITIVE_INFINITY | (x ^ y) & 0x80000000000000000000000000000000;
4349 | 	```
4350 | 
4351 | - Found in contracts/util/ABDKMathQuad.sol [Line: 776](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L776)
4352 | 
4353 | 	```solidity
4354 | 	        uint256 ySignifier = uint128 (y) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4355 | 	```
4356 | 
4357 | - Found in contracts/util/ABDKMathQuad.sol [Line: 778](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L778)
4358 | 
4359 | 	```solidity
4360 | 	        else ySignifier |= 0x10000000000000000000000000000;
4361 | 	```
4362 | 
4363 | - Found in contracts/util/ABDKMathQuad.sol [Line: 780](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L780)
4364 | 
4365 | 	```solidity
4366 | 	        uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4367 | 	```
4368 | 
4369 | - Found in contracts/util/ABDKMathQuad.sol [Line: 783](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L783)
4370 | 
4371 | 	```solidity
4372 | 	            uint shift = 226 - mostSignificantBit (xSignifier);
4373 | 	```
4374 | 
4375 | - Found in contracts/util/ABDKMathQuad.sol [Line: 788](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L788)
4376 | 
4377 | 	```solidity
4378 | 	            yExponent += shift - 114;
4379 | 	```
4380 | 
4381 | - Found in contracts/util/ABDKMathQuad.sol [Line: 792](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L792)
4382 | 
4383 | 	```solidity
4384 | 	          xSignifier = (xSignifier | 0x10000000000000000000000000000) << 114;
4385 | 	```
4386 | 
4387 | - Found in contracts/util/ABDKMathQuad.sol [Line: 797](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L797)
4388 | 
4389 | 	```solidity
4390 | 	          return (x ^ y) & 0x80000000000000000000000000000000 > 0 ?
4391 | 	```
4392 | 
4393 | - Found in contracts/util/ABDKMathQuad.sol [Line: 800](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L800)
4394 | 
4395 | 	```solidity
4396 | 	        assert (xSignifier >= 0x1000000000000000000000000000);
4397 | 	```
4398 | 
4399 | - Found in contracts/util/ABDKMathQuad.sol [Line: 803](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L803)
4400 | 
4401 | 	```solidity
4402 | 	          xSignifier >= 0x80000000000000000000000000000 ? mostSignificantBit (xSignifier) :
4403 | 	```
4404 | 
4405 | - Found in contracts/util/ABDKMathQuad.sol [Line: 804](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L804)
4406 | 
4407 | 	```solidity
4408 | 	          xSignifier >= 0x40000000000000000000000000000 ? 114 :
4409 | 	```
4410 | 
4411 | - Found in contracts/util/ABDKMathQuad.sol [Line: 805](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L805)
4412 | 
4413 | 	```solidity
4414 | 	          xSignifier >= 0x20000000000000000000000000000 ? 113 : 112;
4415 | 	```
4416 | 
4417 | - Found in contracts/util/ABDKMathQuad.sol [Line: 808](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L808)
4418 | 
4419 | 	```solidity
4420 | 	          xExponent = 0x7FFF;
4421 | 	```
4422 | 
4423 | - Found in contracts/util/ABDKMathQuad.sol [Line: 810](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L810)
4424 | 
4425 | 	```solidity
4426 | 	        } else if (xExponent + msb + 16380  < yExponent) { // Underflow
4427 | 	```
4428 | 
4429 | - Found in contracts/util/ABDKMathQuad.sol [Line: 814](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L814)
4430 | 
4431 | 	```solidity
4432 | 	          if (xExponent + 16380 > yExponent)
4433 | 	```
4434 | 
4435 | - Found in contracts/util/ABDKMathQuad.sol [Line: 815](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L815)
4436 | 
4437 | 	```solidity
4438 | 	            xSignifier <<= xExponent + 16380 - yExponent;
4439 | 	```
4440 | 
4441 | - Found in contracts/util/ABDKMathQuad.sol [Line: 816](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L816)
4442 | 
4443 | 	```solidity
4444 | 	          else if (xExponent + 16380 < yExponent)
4445 | 	```
4446 | 
4447 | - Found in contracts/util/ABDKMathQuad.sol [Line: 817](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L817)
4448 | 
4449 | 	```solidity
4450 | 	            xSignifier >>= yExponent - xExponent - 16380;
4451 | 	```
4452 | 
4453 | - Found in contracts/util/ABDKMathQuad.sol [Line: 821](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L821)
4454 | 
4455 | 	```solidity
4456 | 	          if (msb > 112)
4457 | 	```
4458 | 
4459 | - Found in contracts/util/ABDKMathQuad.sol [Line: 822](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L822)
4460 | 
4461 | 	```solidity
4462 | 	            xSignifier >>= msb - 112;
4463 | 	```
4464 | 
4465 | - Found in contracts/util/ABDKMathQuad.sol [Line: 824](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L824)
4466 | 
4467 | 	```solidity
4468 | 	          xSignifier &= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4469 | 	```
4470 | 
4471 | - Found in contracts/util/ABDKMathQuad.sol [Line: 829](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L829)
4472 | 
4473 | 	```solidity
4474 | 	        return bytes16 (uint128 (uint128 ((x ^ y) & 0x80000000000000000000000000000000) |
4475 | 	```
4476 | 
4477 | - Found in contracts/util/ABDKMathQuad.sol [Line: 830](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L830)
4478 | 
4479 | 	```solidity
4480 | 	            xExponent << 112 | xSignifier));
4481 | 	```
4482 | 
4483 | - Found in contracts/util/ABDKMathQuad.sol [Line: 843](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L843)
4484 | 
4485 | 	```solidity
4486 | 	      return x ^ 0x80000000000000000000000000000000;
4487 | 	```
4488 | 
4489 | - Found in contracts/util/ABDKMathQuad.sol [Line: 855](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L855)
4490 | 
4491 | 	```solidity
4492 | 	      return x & 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4493 | 	```
4494 | 
4495 | - Found in contracts/util/ABDKMathQuad.sol [Line: 867](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L867)
4496 | 
4497 | 	```solidity
4498 | 	      if (uint128 (x) >  0x80000000000000000000000000000000) return NaN;
4499 | 	```
4500 | 
4501 | - Found in contracts/util/ABDKMathQuad.sol [Line: 869](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L869)
4502 | 
4503 | 	```solidity
4504 | 	        uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4505 | 	```
4506 | 
4507 | - Found in contracts/util/ABDKMathQuad.sol [Line: 870](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L870)
4508 | 
4509 | 	```solidity
4510 | 	        if (xExponent == 0x7FFF) return x;
4511 | 	```
4512 | 
4513 | - Found in contracts/util/ABDKMathQuad.sol [Line: 872](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L872)
4514 | 
4515 | 	```solidity
4516 | 	          uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4517 | 	```
4518 | 
4519 | - Found in contracts/util/ABDKMathQuad.sol [Line: 874](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L874)
4520 | 
4521 | 	```solidity
4522 | 	          else xSignifier |= 0x10000000000000000000000000000;
4523 | 	```
4524 | 
4525 | - Found in contracts/util/ABDKMathQuad.sol [Line: 879](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L879)
4526 | 
4527 | 	```solidity
4528 | 	          xExponent = xExponent + 16383 >> 1;
4529 | 	```
4530 | 
4531 | - Found in contracts/util/ABDKMathQuad.sol [Line: 882](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L882)
4532 | 
4533 | 	```solidity
4534 | 	            if (xSignifier >= 0x10000000000000000000000000000)
4535 | 	```
4536 | 
4537 | - Found in contracts/util/ABDKMathQuad.sol [Line: 883](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L883)
4538 | 
4539 | 	```solidity
4540 | 	              xSignifier <<= 113;
4541 | 	```
4542 | 
4543 | - Found in contracts/util/ABDKMathQuad.sol [Line: 886](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L886)
4544 | 
4545 | 	```solidity
4546 | 	              uint256 shift = (226 - msb) & 0xFE;
4547 | 	```
4548 | 
4549 | - Found in contracts/util/ABDKMathQuad.sol [Line: 888](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L888)
4550 | 
4551 | 	```solidity
4552 | 	              xExponent -= shift - 112 >> 1;
4553 | 	```
4554 | 
4555 | - Found in contracts/util/ABDKMathQuad.sol [Line: 891](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L891)
4556 | 
4557 | 	```solidity
4558 | 	            if (xSignifier >= 0x10000000000000000000000000000)
4559 | 	```
4560 | 
4561 | - Found in contracts/util/ABDKMathQuad.sol [Line: 892](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L892)
4562 | 
4563 | 	```solidity
4564 | 	              xSignifier <<= 112;
4565 | 	```
4566 | 
4567 | - Found in contracts/util/ABDKMathQuad.sol [Line: 895](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L895)
4568 | 
4569 | 	```solidity
4570 | 	              uint256 shift = (225 - msb) & 0xFE;
4571 | 	```
4572 | 
4573 | - Found in contracts/util/ABDKMathQuad.sol [Line: 897](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L897)
4574 | 
4575 | 	```solidity
4576 | 	              xExponent -= shift - 112 >> 1;
4577 | 	```
4578 | 
4579 | - Found in contracts/util/ABDKMathQuad.sol [Line: 901](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L901)
4580 | 
4581 | 	```solidity
4582 | 	          uint256 r = 0x10000000000000000000000000000;
4583 | 	```
4584 | 
4585 | - Found in contracts/util/ABDKMathQuad.sol [Line: 912](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L912)
4586 | 
4587 | 	```solidity
4588 | 	          return bytes16 (uint128 (xExponent << 112 | r & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF));
4589 | 	```
4590 | 
4591 | - Found in contracts/util/ABDKMathQuad.sol [Line: 926](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L926)
4592 | 
4593 | 	```solidity
4594 | 	      if (uint128 (x) > 0x80000000000000000000000000000000) return NaN;
4595 | 	```
4596 | 
4597 | - Found in contracts/util/ABDKMathQuad.sol [Line: 927](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L927)
4598 | 
4599 | 	```solidity
4600 | 	      else if (x == 0x3FFF0000000000000000000000000000) return POSITIVE_ZERO; 
4601 | 	```
4602 | 
4603 | - Found in contracts/util/ABDKMathQuad.sol [Line: 929](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L929)
4604 | 
4605 | 	```solidity
4606 | 	        uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4607 | 	```
4608 | 
4609 | - Found in contracts/util/ABDKMathQuad.sol [Line: 930](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L930)
4610 | 
4611 | 	```solidity
4612 | 	        if (xExponent == 0x7FFF) return x;
4613 | 	```
4614 | 
4615 | - Found in contracts/util/ABDKMathQuad.sol [Line: 932](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L932)
4616 | 
4617 | 	```solidity
4618 | 	          uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4619 | 	```
4620 | 
4621 | - Found in contracts/util/ABDKMathQuad.sol [Line: 934](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L934)
4622 | 
4623 | 	```solidity
4624 | 	          else xSignifier |= 0x10000000000000000000000000000;
4625 | 	```
4626 | 
4627 | - Found in contracts/util/ABDKMathQuad.sol [Line: 939](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L939)
4628 | 
4629 | 	```solidity
4630 | 	          uint256 resultExponent = 16495;
4631 | 	```
4632 | 
4633 | - Found in contracts/util/ABDKMathQuad.sol [Line: 942](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L942)
4634 | 
4635 | 	```solidity
4636 | 	          if (xExponent >= 0x3FFF) {
4637 | 	```
4638 | 
4639 | - Found in contracts/util/ABDKMathQuad.sol [Line: 944](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L944)
4640 | 
4641 | 	```solidity
4642 | 	            resultSignifier = xExponent - 0x3FFF;
4643 | 	```
4644 | 
4645 | - Found in contracts/util/ABDKMathQuad.sol [Line: 945](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L945)
4646 | 
4647 | 	```solidity
4648 | 	            xSignifier <<= 15;
4649 | 	```
4650 | 
4651 | - Found in contracts/util/ABDKMathQuad.sol [Line: 948](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L948)
4652 | 
4653 | 	```solidity
4654 | 	            if (xSignifier >= 0x10000000000000000000000000000) {
4655 | 	```
4656 | 
4657 | - Found in contracts/util/ABDKMathQuad.sol [Line: 949](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L949)
4658 | 
4659 | 	```solidity
4660 | 	              resultSignifier = 0x3FFE - xExponent;
4661 | 	```
4662 | 
4663 | - Found in contracts/util/ABDKMathQuad.sol [Line: 950](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L950)
4664 | 
4665 | 	```solidity
4666 | 	              xSignifier <<= 15;
4667 | 	```
4668 | 
4669 | - Found in contracts/util/ABDKMathQuad.sol [Line: 954](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L954)
4670 | 
4671 | 	```solidity
4672 | 	              xSignifier <<= 127 - msb;
4673 | 	```
4674 | 
4675 | - Found in contracts/util/ABDKMathQuad.sol [Line: 958](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L958)
4676 | 
4677 | 	```solidity
4678 | 	          if (xSignifier == 0x80000000000000000000000000000000) {
4679 | 	```
4680 | 
4681 | - Found in contracts/util/ABDKMathQuad.sol [Line: 960](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L960)
4682 | 
4683 | 	```solidity
4684 | 	            uint256 shift = 112 - mostSignificantBit (resultSignifier);
4685 | 	```
4686 | 
4687 | - Found in contracts/util/ABDKMathQuad.sol [Line: 965](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L965)
4688 | 
4689 | 	```solidity
4690 | 	            while (resultSignifier < 0x10000000000000000000000000000) {
4691 | 	```
4692 | 
4693 | - Found in contracts/util/ABDKMathQuad.sol [Line: 972](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L972)
4694 | 
4695 | 	```solidity
4696 | 	              xSignifier >>= 127 + b;
4697 | 	```
4698 | 
4699 | - Found in contracts/util/ABDKMathQuad.sol [Line: 976](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L976)
4700 | 
4701 | 	```solidity
4702 | 	          return bytes16 (uint128 ((resultNegative ? 0x80000000000000000000000000000000 : 0) |
4703 | 	```
4704 | 
4705 | - Found in contracts/util/ABDKMathQuad.sol [Line: 977](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L977)
4706 | 
4707 | 	```solidity
4708 | 	              resultExponent << 112 | resultSignifier & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF));
4709 | 	```
4710 | 
4711 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1003](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1003)
4712 | 
4713 | 	```solidity
4714 | 	      bool xNegative = uint128 (x) > 0x80000000000000000000000000000000;
4715 | 	```
4716 | 
4717 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1004](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1004)
4718 | 
4719 | 	```solidity
4720 | 	      uint256 xExponent = uint128 (x) >> 112 & 0x7FFF;
4721 | 	```
4722 | 
4723 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1005](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1005)
4724 | 
4725 | 	```solidity
4726 | 	      uint256 xSignifier = uint128 (x) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
4727 | 	```
4728 | 
4729 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1007](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1007)
4730 | 
4731 | 	```solidity
4732 | 	      if (xExponent == 0x7FFF && xSignifier != 0) return NaN;
4733 | 	```
4734 | 
4735 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1010](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1010)
4736 | 
4737 | 	```solidity
4738 | 	      else if (xExponent < 16255)
4739 | 	```
4740 | 
4741 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1011](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1011)
4742 | 
4743 | 	```solidity
4744 | 	        return 0x3FFF0000000000000000000000000000;
4745 | 	```
4746 | 
4747 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1014](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1014)
4748 | 
4749 | 	```solidity
4750 | 	        else xSignifier |= 0x10000000000000000000000000000;
4751 | 	```
4752 | 
4753 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1016](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1016)
4754 | 
4755 | 	```solidity
4756 | 	        if (xExponent > 16367)
4757 | 	```
4758 | 
4759 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1017](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1017)
4760 | 
4761 | 	```solidity
4762 | 	          xSignifier <<= xExponent - 16367;
4763 | 	```
4764 | 
4765 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1018](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1018)
4766 | 
4767 | 	```solidity
4768 | 	        else if (xExponent < 16367)
4769 | 	```
4770 | 
4771 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1019](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1019)
4772 | 
4773 | 	```solidity
4774 | 	          xSignifier >>= 16367 - xExponent;
4775 | 	```
4776 | 
4777 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1027](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1027)
4778 | 
4779 | 	```solidity
4780 | 	        uint256 resultExponent = xSignifier >> 128;
4781 | 	```
4782 | 
4783 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1034](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1034)
4784 | 
4785 | 	```solidity
4786 | 	        uint256 resultSignifier = 0x80000000000000000000000000000000;
4787 | 	```
4788 | 
4789 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1035](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1035)
4790 | 
4791 | 	```solidity
4792 | 	        if (xSignifier & 0x80000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x16A09E667F3BCC908B2FB1366EA957D3E >> 128;
4793 | 	```
4794 | 
4795 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1036](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1036)
4796 | 
4797 | 	```solidity
4798 | 	        if (xSignifier & 0x40000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1306FE0A31B7152DE8D5A46305C85EDEC >> 128;
4799 | 	```
4800 | 
4801 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1037](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1037)
4802 | 
4803 | 	```solidity
4804 | 	        if (xSignifier & 0x20000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1172B83C7D517ADCDF7C8C50EB14A791F >> 128;
4805 | 	```
4806 | 
4807 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1038](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1038)
4808 | 
4809 | 	```solidity
4810 | 	        if (xSignifier & 0x10000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10B5586CF9890F6298B92B71842A98363 >> 128;
4811 | 	```
4812 | 
4813 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1039](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1039)
4814 | 
4815 | 	```solidity
4816 | 	        if (xSignifier & 0x8000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1059B0D31585743AE7C548EB68CA417FD >> 128;
4817 | 	```
4818 | 
4819 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1040](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1040)
4820 | 
4821 | 	```solidity
4822 | 	        if (xSignifier & 0x4000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x102C9A3E778060EE6F7CACA4F7A29BDE8 >> 128;
4823 | 	```
4824 | 
4825 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1041](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1041)
4826 | 
4827 | 	```solidity
4828 | 	        if (xSignifier & 0x2000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10163DA9FB33356D84A66AE336DCDFA3F >> 128;
4829 | 	```
4830 | 
4831 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1042](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1042)
4832 | 
4833 | 	```solidity
4834 | 	        if (xSignifier & 0x1000000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100B1AFA5ABCBED6129AB13EC11DC9543 >> 128;
4835 | 	```
4836 | 
4837 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1043](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1043)
4838 | 
4839 | 	```solidity
4840 | 	        if (xSignifier & 0x800000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10058C86DA1C09EA1FF19D294CF2F679B >> 128;
4841 | 	```
4842 | 
4843 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1044](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1044)
4844 | 
4845 | 	```solidity
4846 | 	        if (xSignifier & 0x400000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1002C605E2E8CEC506D21BFC89A23A00F >> 128;
4847 | 	```
4848 | 
4849 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1045](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1045)
4850 | 
4851 | 	```solidity
4852 | 	        if (xSignifier & 0x200000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100162F3904051FA128BCA9C55C31E5DF >> 128;
4853 | 	```
4854 | 
4855 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1046](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1046)
4856 | 
4857 | 	```solidity
4858 | 	        if (xSignifier & 0x100000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000B175EFFDC76BA38E31671CA939725 >> 128;
4859 | 	```
4860 | 
4861 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1047](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1047)
4862 | 
4863 | 	```solidity
4864 | 	        if (xSignifier & 0x80000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100058BA01FB9F96D6CACD4B180917C3D >> 128;
4865 | 	```
4866 | 
4867 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1048](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1048)
4868 | 
4869 | 	```solidity
4870 | 	        if (xSignifier & 0x40000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10002C5CC37DA9491D0985C348C68E7B3 >> 128;
4871 | 	```
4872 | 
4873 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1049](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1049)
4874 | 
4875 | 	```solidity
4876 | 	        if (xSignifier & 0x20000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000162E525EE054754457D5995292026 >> 128;
4877 | 	```
4878 | 
4879 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1050](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1050)
4880 | 
4881 | 	```solidity
4882 | 	        if (xSignifier & 0x10000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000B17255775C040618BF4A4ADE83FC >> 128;
4883 | 	```
4884 | 
4885 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1051](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1051)
4886 | 
4887 | 	```solidity
4888 | 	        if (xSignifier & 0x8000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB >> 128;
4889 | 	```
4890 | 
4891 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1052](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1052)
4892 | 
4893 | 	```solidity
4894 | 	        if (xSignifier & 0x4000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9 >> 128;
4895 | 	```
4896 | 
4897 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1053](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1053)
4898 | 
4899 | 	```solidity
4900 | 	        if (xSignifier & 0x2000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000162E43F4F831060E02D839A9D16D >> 128;
4901 | 	```
4902 | 
4903 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1054](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1054)
4904 | 
4905 | 	```solidity
4906 | 	        if (xSignifier & 0x1000000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000B1721BCFC99D9F890EA06911763 >> 128;
4907 | 	```
4908 | 
4909 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1055](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1055)
4910 | 
4911 | 	```solidity
4912 | 	        if (xSignifier & 0x800000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000058B90CF1E6D97F9CA14DBCC1628 >> 128;
4913 | 	```
4914 | 
4915 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1056](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1056)
4916 | 
4917 | 	```solidity
4918 | 	        if (xSignifier & 0x400000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000002C5C863B73F016468F6BAC5CA2B >> 128;
4919 | 	```
4920 | 
4921 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1057](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1057)
4922 | 
4923 | 	```solidity
4924 | 	        if (xSignifier & 0x200000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000162E430E5A18F6119E3C02282A5 >> 128;
4925 | 	```
4926 | 
4927 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1058](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1058)
4928 | 
4929 | 	```solidity
4930 | 	        if (xSignifier & 0x100000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000B1721835514B86E6D96EFD1BFE >> 128;
4931 | 	```
4932 | 
4933 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1059](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1059)
4934 | 
4935 | 	```solidity
4936 | 	        if (xSignifier & 0x80000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000058B90C0B48C6BE5DF846C5B2EF >> 128;
4937 | 	```
4938 | 
4939 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1060](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1060)
4940 | 
4941 | 	```solidity
4942 | 	        if (xSignifier & 0x40000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000002C5C8601CC6B9E94213C72737A >> 128;
4943 | 	```
4944 | 
4945 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1061](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1061)
4946 | 
4947 | 	```solidity
4948 | 	        if (xSignifier & 0x20000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000162E42FFF037DF38AA2B219F06 >> 128;
4949 | 	```
4950 | 
4951 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1062](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1062)
4952 | 
4953 | 	```solidity
4954 | 	        if (xSignifier & 0x10000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000B17217FBA9C739AA5819F44F9 >> 128;
4955 | 	```
4956 | 
4957 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1063](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1063)
4958 | 
4959 | 	```solidity
4960 | 	        if (xSignifier & 0x8000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000058B90BFCDEE5ACD3C1CEDC823 >> 128;
4961 | 	```
4962 | 
4963 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1064](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1064)
4964 | 
4965 | 	```solidity
4966 | 	        if (xSignifier & 0x4000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000002C5C85FE31F35A6A30DA1BE50 >> 128;
4967 | 	```
4968 | 
4969 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1065](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1065)
4970 | 
4971 | 	```solidity
4972 | 	        if (xSignifier & 0x2000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000162E42FF0999CE3541B9FFFCF >> 128;
4973 | 	```
4974 | 
4975 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1066](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1066)
4976 | 
4977 | 	```solidity
4978 | 	        if (xSignifier & 0x1000000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000B17217F80F4EF5AADDA45554 >> 128;
4979 | 	```
4980 | 
4981 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1067](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1067)
4982 | 
4983 | 	```solidity
4984 | 	        if (xSignifier & 0x800000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000058B90BFBF8479BD5A81B51AD >> 128;
4985 | 	```
4986 | 
4987 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1068](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1068)
4988 | 
4989 | 	```solidity
4990 | 	        if (xSignifier & 0x400000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000002C5C85FDF84BD62AE30A74CC >> 128;
4991 | 	```
4992 | 
4993 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1069](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1069)
4994 | 
4995 | 	```solidity
4996 | 	        if (xSignifier & 0x200000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000162E42FEFB2FED257559BDAA >> 128;
4997 | 	```
4998 | 
4999 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1070](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1070)
5000 | 
5001 | 	```solidity
5002 | 	        if (xSignifier & 0x100000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000B17217F7D5A7716BBA4A9AE >> 128;
5003 | 	```
5004 | 
5005 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1071](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1071)
5006 | 
5007 | 	```solidity
5008 | 	        if (xSignifier & 0x80000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000058B90BFBE9DDBAC5E109CCE >> 128;
5009 | 	```
5010 | 
5011 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1072](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1072)
5012 | 
5013 | 	```solidity
5014 | 	        if (xSignifier & 0x40000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000002C5C85FDF4B15DE6F17EB0D >> 128;
5015 | 	```
5016 | 
5017 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1073](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1073)
5018 | 
5019 | 	```solidity
5020 | 	        if (xSignifier & 0x20000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000162E42FEFA494F1478FDE05 >> 128;
5021 | 	```
5022 | 
5023 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1074](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1074)
5024 | 
5025 | 	```solidity
5026 | 	        if (xSignifier & 0x10000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000B17217F7D20CF927C8E94C >> 128;
5027 | 	```
5028 | 
5029 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1075](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1075)
5030 | 
5031 | 	```solidity
5032 | 	        if (xSignifier & 0x8000000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000058B90BFBE8F71CB4E4B33D >> 128;
5033 | 	```
5034 | 
5035 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1076](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1076)
5036 | 
5037 | 	```solidity
5038 | 	        if (xSignifier & 0x4000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000002C5C85FDF477B662B26945 >> 128;
5039 | 	```
5040 | 
5041 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1077](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1077)
5042 | 
5043 | 	```solidity
5044 | 	        if (xSignifier & 0x2000000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000162E42FEFA3AE53369388C >> 128;
5045 | 	```
5046 | 
5047 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1078](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1078)
5048 | 
5049 | 	```solidity
5050 | 	        if (xSignifier & 0x1000000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000B17217F7D1D351A389D40 >> 128;
5051 | 	```
5052 | 
5053 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1079](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1079)
5054 | 
5055 | 	```solidity
5056 | 	        if (xSignifier & 0x800000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000058B90BFBE8E8B2D3D4EDE >> 128;
5057 | 	```
5058 | 
5059 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1080](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1080)
5060 | 
5061 | 	```solidity
5062 | 	        if (xSignifier & 0x400000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000002C5C85FDF4741BEA6E77E >> 128;
5063 | 	```
5064 | 
5065 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1081](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1081)
5066 | 
5067 | 	```solidity
5068 | 	        if (xSignifier & 0x200000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000162E42FEFA39FE95583C2 >> 128;
5069 | 	```
5070 | 
5071 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1082](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1082)
5072 | 
5073 | 	```solidity
5074 | 	        if (xSignifier & 0x100000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000B17217F7D1CFB72B45E1 >> 128;
5075 | 	```
5076 | 
5077 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1083](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1083)
5078 | 
5079 | 	```solidity
5080 | 	        if (xSignifier & 0x80000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000058B90BFBE8E7CC35C3F0 >> 128;
5081 | 	```
5082 | 
5083 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1084](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1084)
5084 | 
5085 | 	```solidity
5086 | 	        if (xSignifier & 0x40000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000002C5C85FDF473E242EA38 >> 128;
5087 | 	```
5088 | 
5089 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1085](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1085)
5090 | 
5091 | 	```solidity
5092 | 	        if (xSignifier & 0x20000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000162E42FEFA39F02B772C >> 128;
5093 | 	```
5094 | 
5095 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1086](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1086)
5096 | 
5097 | 	```solidity
5098 | 	        if (xSignifier & 0x10000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000B17217F7D1CF7D83C1A >> 128;
5099 | 	```
5100 | 
5101 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1087](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1087)
5102 | 
5103 | 	```solidity
5104 | 	        if (xSignifier & 0x8000000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000058B90BFBE8E7BDCBE2E >> 128;
5105 | 	```
5106 | 
5107 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1088](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1088)
5108 | 
5109 | 	```solidity
5110 | 	        if (xSignifier & 0x4000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000002C5C85FDF473DEA871F >> 128;
5111 | 	```
5112 | 
5113 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1089](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1089)
5114 | 
5115 | 	```solidity
5116 | 	        if (xSignifier & 0x2000000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000162E42FEFA39EF44D91 >> 128;
5117 | 	```
5118 | 
5119 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1090](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1090)
5120 | 
5121 | 	```solidity
5122 | 	        if (xSignifier & 0x1000000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000B17217F7D1CF79E949 >> 128;
5123 | 	```
5124 | 
5125 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1091](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1091)
5126 | 
5127 | 	```solidity
5128 | 	        if (xSignifier & 0x800000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000058B90BFBE8E7BCE544 >> 128;
5129 | 	```
5130 | 
5131 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1092](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1092)
5132 | 
5133 | 	```solidity
5134 | 	        if (xSignifier & 0x400000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000002C5C85FDF473DE6ECA >> 128;
5135 | 	```
5136 | 
5137 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1093](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1093)
5138 | 
5139 | 	```solidity
5140 | 	        if (xSignifier & 0x200000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000162E42FEFA39EF366F >> 128;
5141 | 	```
5142 | 
5143 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1094](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1094)
5144 | 
5145 | 	```solidity
5146 | 	        if (xSignifier & 0x100000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000B17217F7D1CF79AFA >> 128;
5147 | 	```
5148 | 
5149 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1095](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1095)
5150 | 
5151 | 	```solidity
5152 | 	        if (xSignifier & 0x80000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000058B90BFBE8E7BCD6D >> 128;
5153 | 	```
5154 | 
5155 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1096](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1096)
5156 | 
5157 | 	```solidity
5158 | 	        if (xSignifier & 0x40000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000002C5C85FDF473DE6B2 >> 128;
5159 | 	```
5160 | 
5161 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1097](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1097)
5162 | 
5163 | 	```solidity
5164 | 	        if (xSignifier & 0x20000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000162E42FEFA39EF358 >> 128;
5165 | 	```
5166 | 
5167 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1098](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1098)
5168 | 
5169 | 	```solidity
5170 | 	        if (xSignifier & 0x10000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000B17217F7D1CF79AB >> 128;
5171 | 	```
5172 | 
5173 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1099](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1099)
5174 | 
5175 | 	```solidity
5176 | 	        if (xSignifier & 0x8000000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000058B90BFBE8E7BCD5 >> 128;
5177 | 	```
5178 | 
5179 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1100](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1100)
5180 | 
5181 | 	```solidity
5182 | 	        if (xSignifier & 0x4000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000002C5C85FDF473DE6A >> 128;
5183 | 	```
5184 | 
5185 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1101](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1101)
5186 | 
5187 | 	```solidity
5188 | 	        if (xSignifier & 0x2000000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000162E42FEFA39EF34 >> 128;
5189 | 	```
5190 | 
5191 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1102](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1102)
5192 | 
5193 | 	```solidity
5194 | 	        if (xSignifier & 0x1000000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000B17217F7D1CF799 >> 128;
5195 | 	```
5196 | 
5197 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1103](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1103)
5198 | 
5199 | 	```solidity
5200 | 	        if (xSignifier & 0x800000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000058B90BFBE8E7BCC >> 128;
5201 | 	```
5202 | 
5203 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1104](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1104)
5204 | 
5205 | 	```solidity
5206 | 	        if (xSignifier & 0x400000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000002C5C85FDF473DE5 >> 128;
5207 | 	```
5208 | 
5209 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1105](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1105)
5210 | 
5211 | 	```solidity
5212 | 	        if (xSignifier & 0x200000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000162E42FEFA39EF2 >> 128;
5213 | 	```
5214 | 
5215 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1106](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1106)
5216 | 
5217 | 	```solidity
5218 | 	        if (xSignifier & 0x100000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000B17217F7D1CF78 >> 128;
5219 | 	```
5220 | 
5221 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1107](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1107)
5222 | 
5223 | 	```solidity
5224 | 	        if (xSignifier & 0x80000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000058B90BFBE8E7BB >> 128;
5225 | 	```
5226 | 
5227 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1108](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1108)
5228 | 
5229 | 	```solidity
5230 | 	        if (xSignifier & 0x40000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000002C5C85FDF473DD >> 128;
5231 | 	```
5232 | 
5233 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1109](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1109)
5234 | 
5235 | 	```solidity
5236 | 	        if (xSignifier & 0x20000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000162E42FEFA39EE >> 128;
5237 | 	```
5238 | 
5239 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1110](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1110)
5240 | 
5241 | 	```solidity
5242 | 	        if (xSignifier & 0x10000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000B17217F7D1CF6 >> 128;
5243 | 	```
5244 | 
5245 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1111](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1111)
5246 | 
5247 | 	```solidity
5248 | 	        if (xSignifier & 0x8000000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000058B90BFBE8E7A >> 128;
5249 | 	```
5250 | 
5251 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1112](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1112)
5252 | 
5253 | 	```solidity
5254 | 	        if (xSignifier & 0x4000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000002C5C85FDF473C >> 128;
5255 | 	```
5256 | 
5257 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1113](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1113)
5258 | 
5259 | 	```solidity
5260 | 	        if (xSignifier & 0x2000000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000162E42FEFA39D >> 128;
5261 | 	```
5262 | 
5263 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1114](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1114)
5264 | 
5265 | 	```solidity
5266 | 	        if (xSignifier & 0x1000000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000B17217F7D1CE >> 128;
5267 | 	```
5268 | 
5269 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1115](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1115)
5270 | 
5271 | 	```solidity
5272 | 	        if (xSignifier & 0x800000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000058B90BFBE8E6 >> 128;
5273 | 	```
5274 | 
5275 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1116](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1116)
5276 | 
5277 | 	```solidity
5278 | 	        if (xSignifier & 0x400000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000002C5C85FDF472 >> 128;
5279 | 	```
5280 | 
5281 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1117](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1117)
5282 | 
5283 | 	```solidity
5284 | 	        if (xSignifier & 0x200000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000162E42FEFA38 >> 128;
5285 | 	```
5286 | 
5287 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1118](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1118)
5288 | 
5289 | 	```solidity
5290 | 	        if (xSignifier & 0x100000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000B17217F7D1B >> 128;
5291 | 	```
5292 | 
5293 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1119](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1119)
5294 | 
5295 | 	```solidity
5296 | 	        if (xSignifier & 0x80000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000058B90BFBE8D >> 128;
5297 | 	```
5298 | 
5299 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1120](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1120)
5300 | 
5301 | 	```solidity
5302 | 	        if (xSignifier & 0x40000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000002C5C85FDF46 >> 128;
5303 | 	```
5304 | 
5305 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1121](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1121)
5306 | 
5307 | 	```solidity
5308 | 	        if (xSignifier & 0x20000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000162E42FEFA2 >> 128;
5309 | 	```
5310 | 
5311 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1122](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1122)
5312 | 
5313 | 	```solidity
5314 | 	        if (xSignifier & 0x10000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000B17217F7D0 >> 128;
5315 | 	```
5316 | 
5317 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1123](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1123)
5318 | 
5319 | 	```solidity
5320 | 	        if (xSignifier & 0x8000000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000058B90BFBE7 >> 128;
5321 | 	```
5322 | 
5323 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1124](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1124)
5324 | 
5325 | 	```solidity
5326 | 	        if (xSignifier & 0x4000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000002C5C85FDF3 >> 128;
5327 | 	```
5328 | 
5329 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1125](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1125)
5330 | 
5331 | 	```solidity
5332 | 	        if (xSignifier & 0x2000000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000162E42FEF9 >> 128;
5333 | 	```
5334 | 
5335 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1126](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1126)
5336 | 
5337 | 	```solidity
5338 | 	        if (xSignifier & 0x1000000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000B17217F7C >> 128;
5339 | 	```
5340 | 
5341 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1127](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1127)
5342 | 
5343 | 	```solidity
5344 | 	        if (xSignifier & 0x800000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000058B90BFBD >> 128;
5345 | 	```
5346 | 
5347 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1128](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1128)
5348 | 
5349 | 	```solidity
5350 | 	        if (xSignifier & 0x400000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000002C5C85FDE >> 128;
5351 | 	```
5352 | 
5353 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1129](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1129)
5354 | 
5355 | 	```solidity
5356 | 	        if (xSignifier & 0x200000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000162E42FEE >> 128;
5357 | 	```
5358 | 
5359 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1130](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1130)
5360 | 
5361 | 	```solidity
5362 | 	        if (xSignifier & 0x100000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000B17217F6 >> 128;
5363 | 	```
5364 | 
5365 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1131](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1131)
5366 | 
5367 | 	```solidity
5368 | 	        if (xSignifier & 0x80000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000058B90BFA >> 128;
5369 | 	```
5370 | 
5371 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1132](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1132)
5372 | 
5373 | 	```solidity
5374 | 	        if (xSignifier & 0x40000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000002C5C85FC >> 128;
5375 | 	```
5376 | 
5377 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1133](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1133)
5378 | 
5379 | 	```solidity
5380 | 	        if (xSignifier & 0x20000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000162E42FD >> 128;
5381 | 	```
5382 | 
5383 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1134](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1134)
5384 | 
5385 | 	```solidity
5386 | 	        if (xSignifier & 0x10000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000B17217E >> 128;
5387 | 	```
5388 | 
5389 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1135)
5390 | 
5391 | 	```solidity
5392 | 	        if (xSignifier & 0x8000000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000058B90BE >> 128;
5393 | 	```
5394 | 
5395 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1136](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1136)
5396 | 
5397 | 	```solidity
5398 | 	        if (xSignifier & 0x4000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000002C5C85E >> 128;
5399 | 	```
5400 | 
5401 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1137](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1137)
5402 | 
5403 | 	```solidity
5404 | 	        if (xSignifier & 0x2000000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000162E42E >> 128;
5405 | 	```
5406 | 
5407 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1138](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1138)
5408 | 
5409 | 	```solidity
5410 | 	        if (xSignifier & 0x1000000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000B17216 >> 128;
5411 | 	```
5412 | 
5413 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1139](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1139)
5414 | 
5415 | 	```solidity
5416 | 	        if (xSignifier & 0x800000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000058B90A >> 128;
5417 | 	```
5418 | 
5419 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1140](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1140)
5420 | 
5421 | 	```solidity
5422 | 	        if (xSignifier & 0x400000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000002C5C84 >> 128;
5423 | 	```
5424 | 
5425 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1141](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1141)
5426 | 
5427 | 	```solidity
5428 | 	        if (xSignifier & 0x200000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000162E41 >> 128;
5429 | 	```
5430 | 
5431 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1142](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1142)
5432 | 
5433 | 	```solidity
5434 | 	        if (xSignifier & 0x100000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000B1720 >> 128;
5435 | 	```
5436 | 
5437 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1143](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1143)
5438 | 
5439 | 	```solidity
5440 | 	        if (xSignifier & 0x80000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000058B8F >> 128;
5441 | 	```
5442 | 
5443 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1144](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1144)
5444 | 
5445 | 	```solidity
5446 | 	        if (xSignifier & 0x40000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000002C5C7 >> 128;
5447 | 	```
5448 | 
5449 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1145](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1145)
5450 | 
5451 | 	```solidity
5452 | 	        if (xSignifier & 0x20000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000162E3 >> 128;
5453 | 	```
5454 | 
5455 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1146](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1146)
5456 | 
5457 | 	```solidity
5458 | 	        if (xSignifier & 0x10000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000B171 >> 128;
5459 | 	```
5460 | 
5461 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1147](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1147)
5462 | 
5463 | 	```solidity
5464 | 	        if (xSignifier & 0x8000 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000058B8 >> 128;
5465 | 	```
5466 | 
5467 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1148](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1148)
5468 | 
5469 | 	```solidity
5470 | 	        if (xSignifier & 0x4000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000002C5B >> 128;
5471 | 	```
5472 | 
5473 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1149](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1149)
5474 | 
5475 | 	```solidity
5476 | 	        if (xSignifier & 0x2000 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000162D >> 128;
5477 | 	```
5478 | 
5479 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1150](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1150)
5480 | 
5481 | 	```solidity
5482 | 	        if (xSignifier & 0x1000 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000B16 >> 128;
5483 | 	```
5484 | 
5485 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1151](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1151)
5486 | 
5487 | 	```solidity
5488 | 	        if (xSignifier & 0x800 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000058A >> 128;
5489 | 	```
5490 | 
5491 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1152](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1152)
5492 | 
5493 | 	```solidity
5494 | 	        if (xSignifier & 0x400 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000002C4 >> 128;
5495 | 	```
5496 | 
5497 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1153](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1153)
5498 | 
5499 | 	```solidity
5500 | 	        if (xSignifier & 0x200 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000161 >> 128;
5501 | 	```
5502 | 
5503 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1154](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1154)
5504 | 
5505 | 	```solidity
5506 | 	        if (xSignifier & 0x100 > 0) resultSignifier = resultSignifier * 0x1000000000000000000000000000000B0 >> 128;
5507 | 	```
5508 | 
5509 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1155](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1155)
5510 | 
5511 | 	```solidity
5512 | 	        if (xSignifier & 0x80 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000057 >> 128;
5513 | 	```
5514 | 
5515 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1156](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1156)
5516 | 
5517 | 	```solidity
5518 | 	        if (xSignifier & 0x40 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000002B >> 128;
5519 | 	```
5520 | 
5521 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1157](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1157)
5522 | 
5523 | 	```solidity
5524 | 	        if (xSignifier & 0x20 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000015 >> 128;
5525 | 	```
5526 | 
5527 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1158](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1158)
5528 | 
5529 | 	```solidity
5530 | 	        if (xSignifier & 0x10 > 0) resultSignifier = resultSignifier * 0x10000000000000000000000000000000A >> 128;
5531 | 	```
5532 | 
5533 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1159](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1159)
5534 | 
5535 | 	```solidity
5536 | 	        if (xSignifier & 0x8 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000004 >> 128;
5537 | 	```
5538 | 
5539 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1160](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1160)
5540 | 
5541 | 	```solidity
5542 | 	        if (xSignifier & 0x4 > 0) resultSignifier = resultSignifier * 0x100000000000000000000000000000001 >> 128;
5543 | 	```
5544 | 
5545 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1163](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1163)
5546 | 
5547 | 	```solidity
5548 | 	          resultSignifier = resultSignifier >> 15 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
5549 | 	```
5550 | 
5551 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1164](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1164)
5552 | 
5553 | 	```solidity
5554 | 	          resultExponent += 0x3FFF;
5555 | 	```
5556 | 
5557 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1165](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1165)
5558 | 
5559 | 	```solidity
5560 | 	        } else if (resultExponent <= 0x3FFE) {
5561 | 	```
5562 | 
5563 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1166](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1166)
5564 | 
5565 | 	```solidity
5566 | 	          resultSignifier = resultSignifier >> 15 & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
5567 | 	```
5568 | 
5569 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1167](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1167)
5570 | 
5571 | 	```solidity
5572 | 	          resultExponent = 0x3FFF - resultExponent;
5573 | 	```
5574 | 
5575 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1169](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1169)
5576 | 
5577 | 	```solidity
5578 | 	          resultSignifier = resultSignifier >> resultExponent - 16367;
5579 | 	```
5580 | 
5581 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1173](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1173)
5582 | 
5583 | 	```solidity
5584 | 	        return bytes16 (uint128 (resultExponent << 112 | resultSignifier));
5585 | 	```
5586 | 
5587 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1203](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1203)
5588 | 
5589 | 	```solidity
5590 | 	      if (x >= 0x100000000000000000000000000000000) { x >>= 128; result += 128; }
5591 | 	```
5592 | 
5593 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1204](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1204)
5594 | 
5595 | 	```solidity
5596 | 	      if (x >= 0x10000000000000000) { x >>= 64; result += 64; }
5597 | 	```
5598 | 
5599 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1205](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1205)
5600 | 
5601 | 	```solidity
5602 | 	      if (x >= 0x100000000) { x >>= 32; result += 32; }
5603 | 	```
5604 | 
5605 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1206](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1206)
5606 | 
5607 | 	```solidity
5608 | 	      if (x >= 0x10000) { x >>= 16; result += 16; }
5609 | 	```
5610 | 
5611 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1207](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1207)
5612 | 
5613 | 	```solidity
5614 | 	      if (x >= 0x100) { x >>= 8; result += 8; }
5615 | 	```
5616 | 
5617 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1208](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1208)
5618 | 
5619 | 	```solidity
5620 | 	      if (x >= 0x10) { x >>= 4; result += 4; }
5621 | 	```
5622 | 
5623 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1209](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1209)
5624 | 
5625 | 	```solidity
5626 | 	      if (x >= 0x4) { x >>= 2; result += 2; }
5627 | 	```
5628 | 
5629 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 69](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L69)
5630 | 
5631 | 	```solidity
5632 | 	        require(signatures.length >= requiredSignatures * 65, "!Dynamic Signature Threshold");
5633 | 	```
5634 | 
5635 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 88](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L88)
5636 | 
5637 | 	```solidity
5638 | 	                require(uint256(s) >= (requiredSignatures * 65), "GS021");
5639 | 	```
5640 | 
5641 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 91](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L91)
5642 | 
5643 | 	```solidity
5644 | 	                require((uint256(s) + 32) <= signatures.length, "GS022");
5645 | 	```
5646 | 
5647 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L100)
5648 | 
5649 | 	```solidity
5650 | 	                require((uint256(s) + 32 + contractSignatureLen) <= signatures.length, "GS023");
5651 | 	```
5652 | 
5653 | </details>
5654 | 
5655 | 
5656 | 
5657 | ## L-8: Empty `require()` / `revert()` Statement
5658 | 
5659 | Use descriptive reason strings or custom errors for revert paths.
5660 | 
5661 | <details><summary>55 Found Instances</summary>
5662 | 
5663 | 
5664 | - Found in contracts/core/OpsManager.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L50)
5665 | 
5666 | 	```solidity
5667 | 	        require(address(pools[revalToken]) == address(0));
5668 | 	```
5669 | 
5670 | - Found in contracts/util/ABDKMath64x64.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L36)
5671 | 
5672 | 	```solidity
5673 | 	      require (x >= -0x8000000000000000 && x <= 0x7FFFFFFFFFFFFFFF);
5674 | 	```
5675 | 
5676 | - Found in contracts/util/ABDKMath64x64.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L63)
5677 | 
5678 | 	```solidity
5679 | 	      require (x <= 0x7FFFFFFFFFFFFFFF);
5680 | 	```
5681 | 
5682 | - Found in contracts/util/ABDKMath64x64.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L77)
5683 | 
5684 | 	```solidity
5685 | 	      require (x >= 0);
5686 | 	```
5687 | 
5688 | - Found in contracts/util/ABDKMath64x64.sol [Line: 92](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L92)
5689 | 
5690 | 	```solidity
5691 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
5692 | 	```
5693 | 
5694 | - Found in contracts/util/ABDKMath64x64.sol [Line: 120](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L120)
5695 | 
5696 | 	```solidity
5697 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
5698 | 	```
5699 | 
5700 | - Found in contracts/util/ABDKMath64x64.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L135)
5701 | 
5702 | 	```solidity
5703 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
5704 | 	```
5705 | 
5706 | - Found in contracts/util/ABDKMath64x64.sol [Line: 150](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L150)
5707 | 
5708 | 	```solidity
5709 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
5710 | 	```
5711 | 
5712 | - Found in contracts/util/ABDKMath64x64.sol [Line: 166](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L166)
5713 | 
5714 | 	```solidity
5715 | 	        require (y >= -0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF &&
5716 | 	```
5717 | 
5718 | - Found in contracts/util/ABDKMath64x64.sol [Line: 181](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L181)
5719 | 
5720 | 	```solidity
5721 | 	          require (absoluteResult <=
5722 | 	```
5723 | 
5724 | - Found in contracts/util/ABDKMath64x64.sol [Line: 185](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L185)
5725 | 
5726 | 	```solidity
5727 | 	          require (absoluteResult <=
5728 | 	```
5729 | 
5730 | - Found in contracts/util/ABDKMath64x64.sol [Line: 205](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L205)
5731 | 
5732 | 	```solidity
5733 | 	      require (x >= 0);
5734 | 	```
5735 | 
5736 | - Found in contracts/util/ABDKMath64x64.sol [Line: 210](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L210)
5737 | 
5738 | 	```solidity
5739 | 	      require (hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
5740 | 	```
5741 | 
5742 | - Found in contracts/util/ABDKMath64x64.sol [Line: 213](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L213)
5743 | 
5744 | 	```solidity
5745 | 	      require (hi <=
5746 | 	```
5747 | 
5748 | - Found in contracts/util/ABDKMath64x64.sol [Line: 229](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L229)
5749 | 
5750 | 	```solidity
5751 | 	      require (y != 0);
5752 | 	```
5753 | 
5754 | - Found in contracts/util/ABDKMath64x64.sol [Line: 231](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L231)
5755 | 
5756 | 	```solidity
5757 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
5758 | 	```
5759 | 
5760 | - Found in contracts/util/ABDKMath64x64.sol [Line: 246](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L246)
5761 | 
5762 | 	```solidity
5763 | 	      require (y != 0);
5764 | 	```
5765 | 
5766 | - Found in contracts/util/ABDKMath64x64.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L259)
5767 | 
5768 | 	```solidity
5769 | 	        require (absoluteResult <= 0x80000000000000000000000000000000);
5770 | 	```
5771 | 
5772 | - Found in contracts/util/ABDKMath64x64.sol [Line: 262](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L262)
5773 | 
5774 | 	```solidity
5775 | 	        require (absoluteResult <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
5776 | 	```
5777 | 
5778 | - Found in contracts/util/ABDKMath64x64.sol [Line: 278](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L278)
5779 | 
5780 | 	```solidity
5781 | 	      require (y != 0);
5782 | 	```
5783 | 
5784 | - Found in contracts/util/ABDKMath64x64.sol [Line: 280](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L280)
5785 | 
5786 | 	```solidity
5787 | 	      require (result <= uint128 (MAX_64x64));
5788 | 	```
5789 | 
5790 | - Found in contracts/util/ABDKMath64x64.sol [Line: 293](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L293)
5791 | 
5792 | 	```solidity
5793 | 	      require (x != MIN_64x64);
5794 | 	```
5795 | 
5796 | - Found in contracts/util/ABDKMath64x64.sol [Line: 306](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L306)
5797 | 
5798 | 	```solidity
5799 | 	      require (x != MIN_64x64);
5800 | 	```
5801 | 
5802 | - Found in contracts/util/ABDKMath64x64.sol [Line: 320](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L320)
5803 | 
5804 | 	```solidity
5805 | 	      require (x != 0);
5806 | 	```
5807 | 
5808 | - Found in contracts/util/ABDKMath64x64.sol [Line: 322](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L322)
5809 | 
5810 | 	```solidity
5811 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
5812 | 	```
5813 | 
5814 | - Found in contracts/util/ABDKMath64x64.sol [Line: 351](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L351)
5815 | 
5816 | 	```solidity
5817 | 	      require (m >= 0);
5818 | 	```
5819 | 
5820 | - Found in contracts/util/ABDKMath64x64.sol [Line: 352](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L352)
5821 | 
5822 | 	```solidity
5823 | 	      require (m <
5824 | 	```
5825 | 
5826 | - Found in contracts/util/ABDKMath64x64.sol [Line: 412](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L412)
5827 | 
5828 | 	```solidity
5829 | 	          require (absXShift < 64);
5830 | 	```
5831 | 
5832 | - Found in contracts/util/ABDKMath64x64.sol [Line: 432](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L432)
5833 | 
5834 | 	```solidity
5835 | 	        require (resultShift < 64);
5836 | 	```
5837 | 
5838 | - Found in contracts/util/ABDKMath64x64.sol [Line: 436](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L436)
5839 | 
5840 | 	```solidity
5841 | 	      require (result >= MIN_64x64 && result <= MAX_64x64);
5842 | 	```
5843 | 
5844 | - Found in contracts/util/ABDKMath64x64.sol [Line: 449](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L449)
5845 | 
5846 | 	```solidity
5847 | 	      require (x >= 0);
5848 | 	```
5849 | 
5850 | - Found in contracts/util/ABDKMath64x64.sol [Line: 462](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L462)
5851 | 
5852 | 	```solidity
5853 | 	      require (x > 0);
5854 | 	```
5855 | 
5856 | - Found in contracts/util/ABDKMath64x64.sol [Line: 495](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L495)
5857 | 
5858 | 	```solidity
5859 | 	      require (x > 0);
5860 | 	```
5861 | 
5862 | - Found in contracts/util/ABDKMath64x64.sol [Line: 510](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L510)
5863 | 
5864 | 	```solidity
5865 | 	      require (x < 0x400000000000000000); // Overflow
5866 | 	```
5867 | 
5868 | - Found in contracts/util/ABDKMath64x64.sol [Line: 646](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L646)
5869 | 
5870 | 	```solidity
5871 | 	      require (result <= uint256 (int256 (MAX_64x64)));
5872 | 	```
5873 | 
5874 | - Found in contracts/util/ABDKMath64x64.sol [Line: 660](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L660)
5875 | 
5876 | 	```solidity
5877 | 	      require (x < 0x400000000000000000); // Overflow
5878 | 	```
5879 | 
5880 | - Found in contracts/util/ABDKMath64x64.sol [Line: 679](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L679)
5881 | 
5882 | 	```solidity
5883 | 	      require (y != 0);
5884 | 	```
5885 | 
5886 | - Found in contracts/util/ABDKMath64x64.sol [Line: 696](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L696)
5887 | 
5888 | 	```solidity
5889 | 	        require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
5890 | 	```
5891 | 
5892 | - Found in contracts/util/ABDKMath64x64.sol [Line: 715](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L715)
5893 | 
5894 | 	```solidity
5895 | 	      require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
5896 | 	```
5897 | 
5898 | - Found in contracts/util/ABDKMathQuad.sol [Line: 76](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L76)
5899 | 
5900 | 	```solidity
5901 | 	      require (exponent <= 16638); // Overflow
5902 | 	```
5903 | 
5904 | - Found in contracts/util/ABDKMathQuad.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L86)
5905 | 
5906 | 	```solidity
5907 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
5908 | 	```
5909 | 
5910 | - Found in contracts/util/ABDKMathQuad.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L89)
5911 | 
5912 | 	```solidity
5913 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
5914 | 	```
5915 | 
5916 | - Found in contracts/util/ABDKMathQuad.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L133)
5917 | 
5918 | 	```solidity
5919 | 	      require (uint128 (x) < 0x80000000000000000000000000000000); // Negative
5920 | 	```
5921 | 
5922 | - Found in contracts/util/ABDKMathQuad.sol [Line: 135](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L135)
5923 | 
5924 | 	```solidity
5925 | 	      require (exponent <= 16638); // Overflow
5926 | 	```
5927 | 
5928 | - Found in contracts/util/ABDKMathQuad.sol [Line: 183](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L183)
5929 | 
5930 | 	```solidity
5931 | 	      require (exponent <= 16510); // Overflow
5932 | 	```
5933 | 
5934 | - Found in contracts/util/ABDKMathQuad.sol [Line: 193](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L193)
5935 | 
5936 | 	```solidity
5937 | 	        require (result <= 0x8000000000000000000000000000000000000000000000000000000000000000);
5938 | 	```
5939 | 
5940 | - Found in contracts/util/ABDKMathQuad.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L196)
5941 | 
5942 | 	```solidity
5943 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
5944 | 	```
5945 | 
5946 | - Found in contracts/util/ABDKMathQuad.sol [Line: 239](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L239)
5947 | 
5948 | 	```solidity
5949 | 	      require (exponent <= 16446); // Overflow
5950 | 	```
5951 | 
5952 | - Found in contracts/util/ABDKMathQuad.sol [Line: 249](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L249)
5953 | 
5954 | 	```solidity
5955 | 	        require (result <= 0x80000000000000000000000000000000);
5956 | 	```
5957 | 
5958 | - Found in contracts/util/ABDKMathQuad.sol [Line: 252](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L252)
5959 | 
5960 | 	```solidity
5961 | 	        require (result <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
5962 | 	```
5963 | 
5964 | - Found in contracts/util/ABDKMathQuad.sol [Line: 440](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L440)
5965 | 
5966 | 	```solidity
5967 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
5968 | 	```
5969 | 
5970 | - Found in contracts/util/ABDKMathQuad.sol [Line: 460](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L460)
5971 | 
5972 | 	```solidity
5973 | 	      require (absoluteX <= 0x7FFF0000000000000000000000000000); // Not NaN
5974 | 	```
5975 | 
5976 | - Found in contracts/util/ABDKMathQuad.sol [Line: 464](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L464)
5977 | 
5978 | 	```solidity
5979 | 	      require (absoluteY <= 0x7FFF0000000000000000000000000000); // Not NaN
5980 | 	```
5981 | 
5982 | - Found in contracts/util/ABDKMathQuad.sol [Line: 467](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L467)
5983 | 
5984 | 	```solidity
5985 | 	      require (x != y || absoluteX < 0x7FFF0000000000000000000000000000);
5986 | 	```
5987 | 
5988 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1199](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1199)
5989 | 
5990 | 	```solidity
5991 | 	      require (x > 0);
5992 | 	```
5993 | 
5994 | </details>
5995 | 
5996 | 
5997 | 
5998 | ## L-9: Modifier Invoked Only Once
5999 | 
6000 | Consider removing the modifier or inlining the logic into the calling function.
6001 | 
6002 | <details><summary>5 Found Instances</summary>
6003 | 
6004 | 
6005 | - Found in contracts/core/Exposure.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L133)
6006 | 
6007 | 	```solidity
6008 | 	    modifier onlyMinter() {
6009 | 	```
6010 | 
6011 | - Found in contracts/templegold/DaiGoldAuction.sol [Line: 308](../tests/2024-07-templegold/protocol/contracts/templegold/DaiGoldAuction.sol#L308)
6012 | 
6013 | 	```solidity
6014 | 	    modifier onlyWhenLive() {
6015 | 	```
6016 | 
6017 | - Found in contracts/templegold/TempleGold.sol [Line: 343](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L343)
6018 | 
6019 | 	```solidity
6020 | 	    modifier onlyArbitrum() {
6021 | 	```
6022 | 
6023 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 604](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L604)
6024 | 
6025 | 	```solidity
6026 | 	    modifier onlyMigrator() {
6027 | 	```
6028 | 
6029 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 146](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L146)
6030 | 
6031 | 	```solidity
6032 | 	    modifier onlyInRescueMode() {
6033 | 	```
6034 | 
6035 | </details>
6036 | 
6037 | 
6038 | 
6039 | ## L-10: Empty Block
6040 | 
6041 | Consider removing empty blocks.
6042 | 
6043 | <details><summary>7 Found Instances</summary>
6044 | 
6045 | 
6046 | - Found in contracts/amo/test/RamosTestnetAuraStaking.sol [Line: 70](../tests/2024-07-templegold/protocol/contracts/amo/test/RamosTestnetAuraStaking.sol#L70)
6047 | 
6048 | 	```solidity
6049 | 	    function depositAndStake(uint256 /*amount*/) external override {
6050 | 	```
6051 | 
6052 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 247](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L247)
6053 | 
6054 | 	```solidity
6055 | 	    function checkAfterExecution(bytes32, bool) external view {}
6056 | 	```
6057 | 
6058 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 146](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L146)
6059 | 
6060 | 	```solidity
6061 | 	    function populateShutdownData(
6062 | 	```
6063 | 
6064 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 228](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L228)
6065 | 
6066 | 	```solidity
6067 | 	    function _debtCeilingUpdated(IERC20 /*token*/, uint256 /*newDebtCeiling*/) internal virtual {}
6068 | 	```
6069 | 
6070 | - Found in contracts/v2/strategies/GnosisStrategy.sol [Line: 51](../tests/2024-07-templegold/protocol/contracts/v2/strategies/GnosisStrategy.sol#L51)
6071 | 
6072 | 	```solidity
6073 | 	    function _updateTrvApprovals(
6074 | 	```
6075 | 
6076 | - Found in contracts/v2/strategies/TempleTokenBaseStrategy.sol [Line: 42](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TempleTokenBaseStrategy.sol#L42)
6077 | 
6078 | 	```solidity
6079 | 	    function _updateTrvApprovals(
6080 | 	```
6081 | 
6082 | - Found in contracts/v2/strategies/TlcStrategy.sol [Line: 43](../tests/2024-07-templegold/protocol/contracts/v2/strategies/TlcStrategy.sol#L43)
6083 | 
6084 | 	```solidity
6085 | 	    function _updateTrvApprovals(
6086 | 	```
6087 | 
6088 | </details>
6089 | 
6090 | 
6091 | 
6092 | ## L-11: Large Numeric Literal
6093 | 
6094 | Large literal values multiples of 10000 can be replaced with scientific notation.Use `e` notation, for example: `1e18`, instead of its full numeric value.
6095 | 
6096 | <details><summary>6 Found Instances</summary>
6097 | 
6098 | 
6099 | - Found in contracts/amo/Ramos.sol [Line: 72](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L72)
6100 | 
6101 | 	```solidity
6102 | 	    uint256 public constant override BPS_PRECISION = 10_000;
6103 | 	```
6104 | 
6105 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 27](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L27)
6106 | 
6107 | 	```solidity
6108 | 	    uint256 public constant override BPS_PRECISION = 10_000;
6109 | 	```
6110 | 
6111 | - Found in contracts/deprecated/TempleStaking.sol [Line: 119](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L119)
6112 | 
6113 | 	```solidity
6114 | 	        emit AccumulationFactorUpdated(_nUnupdatedEpochs, _currentEpoch, accumulationFactor.mul(10000).toUInt());
6115 | 	```
6116 | 
6117 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 36](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L36)
6118 | 
6119 | 	```solidity
6120 | 	    uint256 public constant MAX_SUPPLY = 1_000_000_000 ether; // 1B
6121 | 	```
6122 | 
6123 | - Found in contracts/templegold/TempleGold.sol [Line: 47](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L47)
6124 | 
6125 | 	```solidity
6126 | 	    uint256 public constant MAX_SUPPLY = 1_000_000_000 ether; // 1B
6127 | 	```
6128 | 
6129 | - Found in contracts/templegold/TempleGold.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGold.sol#L49)
6130 | 
6131 | 	```solidity
6132 | 	    uint256 public constant MINIMUM_MINT = 10_000 ether;
6133 | 	```
6134 | 
6135 | </details>
6136 | 
6137 | 
6138 | 
6139 | ## L-12: Internal Function Used Only Once
6140 | 
6141 | Instead of separating the logic into a separate function, consider inlining the logic into the calling function. This can reduce the number of function calls and improve readability.
6142 | 
6143 | <details><summary>17 Found Instances</summary>
6144 | 
6145 | 
6146 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 172](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L172)
6147 | 
6148 | 	```solidity
6149 | 	    function createPoolExitRequest(
6150 | 	```
6151 | 
6152 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 190](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L190)
6153 | 
6154 | 	```solidity
6155 | 	    function createPoolJoinRequest(
6156 | 	```
6157 | 
6158 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 283](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L283)
6159 | 
6160 | 	```solidity
6161 | 	    function validateProtocolTokenJoin(
6162 | 	```
6163 | 
6164 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 298](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L298)
6165 | 
6166 | 	```solidity
6167 | 	    function validateProtocolTokenExit(
6168 | 	```
6169 | 
6170 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 316](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L316)
6171 | 
6172 | 	```solidity
6173 | 	    function validateQuoteTokenJoin(
6174 | 	```
6175 | 
6176 | - Found in contracts/amo/helpers/BalancerPoolHelper.sol [Line: 331](../tests/2024-07-templegold/protocol/contracts/amo/helpers/BalancerPoolHelper.sol#L331)
6177 | 
6178 | 	```solidity
6179 | 	    function validateQuoteTokenExit(
6180 | 	```
6181 | 
6182 | - Found in contracts/governance/ElderElection.sol [Line: 139](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L139)
6183 | 
6184 | 	```solidity
6185 | 	    function hash(EIP712Domain memory _input) internal pure returns (bytes32) {    
6186 | 	```
6187 | 
6188 | - Found in contracts/governance/ElderElection.sol [Line: 157](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L157)
6189 | 
6190 | 	```solidity
6191 | 	    function hash(EndorsementReq memory _input) internal pure returns (bytes32) {
6192 | 	```
6193 | 
6194 | - Found in contracts/governance/ElderElection.sol [Line: 167](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L167)
6195 | 
6196 | 	```solidity
6197 | 	    function hash(uint256[] memory _input) internal pure returns (bytes32) {
6198 | 	```
6199 | 
6200 | - Found in contracts/util/ABDKMath64x64.sol [Line: 201](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L201)
6201 | 
6202 | 	```solidity
6203 | 	  function mulu (int128 x, uint256 y) internal pure returns (uint256) {
6204 | 	```
6205 | 
6206 | - Found in contracts/util/ABDKMath64x64.sol [Line: 460](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L460)
6207 | 
6208 | 	```solidity
6209 | 	  function log_2 (int128 x) internal pure returns (int128) {
6210 | 	```
6211 | 
6212 | - Found in contracts/util/ABDKMath64x64.sol [Line: 508](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L508)
6213 | 
6214 | 	```solidity
6215 | 	  function exp_2 (int128 x) internal pure returns (int128) {
6216 | 	```
6217 | 
6218 | - Found in contracts/util/ABDKMathQuad.sol [Line: 516](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L516)
6219 | 
6220 | 	```solidity
6221 | 	  function add (bytes16 x, bytes16 y) internal pure returns (bytes16) {
6222 | 	```
6223 | 
6224 | - Found in contracts/util/ABDKMathQuad.sol [Line: 924](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L924)
6225 | 
6226 | 	```solidity
6227 | 	  function log_2 (bytes16 x) internal pure returns (bytes16) {
6228 | 	```
6229 | 
6230 | - Found in contracts/util/ABDKMathQuad.sol [Line: 1001](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L1001)
6231 | 
6232 | 	```solidity
6233 | 	  function pow_2 (bytes16 x) internal pure returns (bytes16) {
6234 | 	```
6235 | 
6236 | - Found in contracts/v2/interestRate/BaseInterestRateModel.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/v2/interestRate/BaseInterestRateModel.sol#L19)
6237 | 
6238 | 	```solidity
6239 | 	    function computeInterestRateImpl(uint256) internal virtual view returns (uint96);
6240 | 	```
6241 | 
6242 | - Found in contracts/v2/safeGuards/SafeForked.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/SafeForked.sol#L22)
6243 | 
6244 | 	```solidity
6245 | 	    function signatureSplit(bytes memory signatures, uint256 pos)
6246 | 	```
6247 | 
6248 | </details>
6249 | 
6250 | 
6251 | 
6252 | ## L-13: Inconsistent uint256/uint (or) int256/int types
6253 | 
6254 | Inconsistency in declaring uint256/uint (or) int256/int variables within a contract. Use explicit size declarations (uint256 or int256). Consider keeping the naming convention consistent in a given contract. Explicit size declarations are preferred (uint256, int256) over implicit ones (uint, int) to avoid confusion.
6255 | 
6256 | <details><summary>58 Found Instances</summary>
6257 | 
6258 | 
6259 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L32)
6260 | 
6261 | 	```solidity
6262 | 	    modifier ensure(uint deadline) {
6263 | 	```
6264 | 
6265 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 62](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L62)
6266 | 
6267 | 	```solidity
6268 | 	        uint amountADesired,
6269 | 	```
6270 | 
6271 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 63](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L63)
6272 | 
6273 | 	```solidity
6274 | 	        uint amountBDesired,
6275 | 	```
6276 | 
6277 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 64](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L64)
6278 | 
6279 | 	```solidity
6280 | 	        uint amountAMin,
6281 | 	```
6282 | 
6283 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 65](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L65)
6284 | 
6285 | 	```solidity
6286 | 	        uint amountBMin,
6287 | 	```
6288 | 
6289 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L67)
6290 | 
6291 | 	```solidity
6292 | 	    ) internal virtual returns (uint amountA, uint amountB) {
6293 | 	```
6294 | 
6295 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 68](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L68)
6296 | 
6297 | 	```solidity
6298 | 	        (uint reserveA, uint reserveB,) = pair.getReserves();
6299 | 	```
6300 | 
6301 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 72](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L72)
6302 | 
6303 | 	```solidity
6304 | 	            uint amountBOptimal = quote(amountADesired, reserveA, reserveB);
6305 | 	```
6306 | 
6307 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 77](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L77)
6308 | 
6309 | 	```solidity
6310 | 	                uint amountAOptimal = quote(amountBDesired, reserveB, reserveA);
6311 | 	```
6312 | 
6313 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 86](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L86)
6314 | 
6315 | 	```solidity
6316 | 	        uint amountADesired,
6317 | 	```
6318 | 
6319 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 87](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L87)
6320 | 
6321 | 	```solidity
6322 | 	        uint amountBDesired,
6323 | 	```
6324 | 
6325 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 88](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L88)
6326 | 
6327 | 	```solidity
6328 | 	        uint amountAMin,
6329 | 	```
6330 | 
6331 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L89)
6332 | 
6333 | 	```solidity
6334 | 	        uint amountBMin,
6335 | 	```
6336 | 
6337 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 92](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L92)
6338 | 
6339 | 	```solidity
6340 | 	        uint deadline
6341 | 	```
6342 | 
6343 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 93](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L93)
6344 | 
6345 | 	```solidity
6346 | 	    ) external virtual ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) {
6347 | 	```
6348 | 
6349 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 106](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L106)
6350 | 
6351 | 	```solidity
6352 | 	        uint liquidity,
6353 | 	```
6354 | 
6355 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 107](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L107)
6356 | 
6357 | 	```solidity
6358 | 	        uint amountAMin,
6359 | 	```
6360 | 
6361 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L108)
6362 | 
6363 | 	```solidity
6364 | 	        uint amountBMin,
6365 | 	```
6366 | 
6367 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L111)
6368 | 
6369 | 	```solidity
6370 | 	        uint deadline
6371 | 	```
6372 | 
6373 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 112](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L112)
6374 | 
6375 | 	```solidity
6376 | 	    ) public virtual ensure(deadline) returns (uint amountA, uint amountB) {
6377 | 	```
6378 | 
6379 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 123](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L123)
6380 | 
6381 | 	```solidity
6382 | 	        uint amountIn,
6383 | 	```
6384 | 
6385 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 124](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L124)
6386 | 
6387 | 	```solidity
6388 | 	        uint amountOutMin,
6389 | 	```
6390 | 
6391 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 127](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L127)
6392 | 
6393 | 	```solidity
6394 | 	        uint deadline
6395 | 	```
6396 | 
6397 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 128](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L128)
6398 | 
6399 | 	```solidity
6400 | 	    ) external virtual ensure(deadline) returns (uint amountOut) {
6401 | 	```
6402 | 
6403 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L133)
6404 | 
6405 | 	```solidity
6406 | 	        uint amountOut = swapExactStableForTempleQuote(pair, amountIn);
6407 | 	```
6408 | 
6409 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 143](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L143)
6410 | 
6411 | 	```solidity
6412 | 	        uint amountIn,
6413 | 	```
6414 | 
6415 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 144](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L144)
6416 | 
6417 | 	```solidity
6418 | 	        uint amountOutMin,
6419 | 	```
6420 | 
6421 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 147](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L147)
6422 | 
6423 | 	```solidity
6424 | 	        uint deadline
6425 | 	```
6426 | 
6427 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 148](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L148)
6428 | 
6429 | 	```solidity
6430 | 	    ) external virtual ensure(deadline) returns (uint) {
6431 | 	```
6432 | 
6433 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 154](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L154)
6434 | 
6435 | 	```solidity
6436 | 	        (bool priceBelowIV, uint amountOut) = swapExactTempleForStableQuote(pair, amountIn);
6437 | 	```
6438 | 
6439 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 177](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L177)
6440 | 
6441 | 	```solidity
6442 | 	    function quote(uint amountA, uint reserveA, uint reserveB) public pure returns (uint amountB) {
6443 | 	```
6444 | 
6445 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 189](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L189)
6446 | 
6447 | 	```solidity
6448 | 	    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut)
6449 | 	```
6450 | 
6451 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 192](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L192)
6452 | 
6453 | 	```solidity
6454 | 	        returns (uint amountOut)
6455 | 	```
6456 | 
6457 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L196)
6458 | 
6459 | 	```solidity
6460 | 	        uint amountInWithFee = amountIn * 995;
6461 | 	```
6462 | 
6463 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 197](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L197)
6464 | 
6465 | 	```solidity
6466 | 	        uint numerator = amountInWithFee * reserveOut;
6467 | 	```
6468 | 
6469 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 198](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L198)
6470 | 
6471 | 	```solidity
6472 | 	        uint denominator = (reserveIn * 1000) + amountInWithFee;
6473 | 	```
6474 | 
6475 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 202](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L202)
6476 | 
6477 | 	```solidity
6478 | 	    function swapExactStableForTempleQuote(address pair, uint amountIn) public view returns (uint amountOut ) {
6479 | 	```
6480 | 
6481 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 203](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L203)
6482 | 
6483 | 	```solidity
6484 | 	        (uint reserveTemple, uint reserveFrax,) = IUniswapV2Pair(pair).getReserves();
6485 | 	```
6486 | 
6487 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 207](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L207)
6488 | 
6489 | 	```solidity
6490 | 	    function swapExactTempleForStableQuote(address pair, uint amountIn) public view returns (bool priceBelowIV, uint amountOut) {
6491 | 	```
6492 | 
6493 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 208](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L208)
6494 | 
6495 | 	```solidity
6496 | 	        (uint reserveTemple, uint reserveFrax,) = IUniswapV2Pair(pair).getReserves();
6497 | 	```
6498 | 
6499 | - Found in contracts/amo/AuraStaking.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L116)
6500 | 
6501 | 	```solidity
6502 | 	            for (uint i; i < length; ++i) {
6503 | 	```
6504 | 
6505 | - Found in contracts/core/RebasingERC20.sol [Line: 84](../tests/2024-07-templegold/protocol/contracts/core/RebasingERC20.sol#L84)
6506 | 
6507 | 	```solidity
6508 | 	    function toTokenAmount(uint sharesAmount) public view returns (uint256 tokenAmount) {
6509 | 	```
6510 | 
6511 | - Found in contracts/core/RebasingERC20.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/core/RebasingERC20.sol#L89)
6512 | 
6513 | 	```solidity
6514 | 	    function toSharesAmount(uint tokenAmount) public view returns (uint256 sharesAmount) {
6515 | 	```
6516 | 
6517 | - Found in contracts/util/ABDKMathQuad.sol [Line: 783](../tests/2024-07-templegold/protocol/contracts/util/ABDKMathQuad.sol#L783)
6518 | 
6519 | 	```solidity
6520 | 	            uint shift = 226 - mostSignificantBit (xSignifier);
6521 | 	```
6522 | 
6523 | </details>
6524 | 
6525 | 
6526 | 
6527 | ## L-14: Unused Error
6528 | 
6529 | Consider using or removing the unused error.
6530 | 
6531 | <details><summary>12 Found Instances</summary>
6532 | 
6533 | 
6534 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L6)
6535 | 
6536 | 	```solidity
6537 | 	    error NotOperator();
6538 | 	```
6539 | 
6540 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L7)
6541 | 
6542 | 	```solidity
6543 | 	    error NotOperatorOrOwner();
6544 | 	```
6545 | 
6546 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 11](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L11)
6547 | 
6548 | 	```solidity
6549 | 	    error InsufficientBPTAmount(uint256 amount);
6550 | 	```
6551 | 
6552 | - Found in contracts/amo/helpers/AMOCommon.sol [Line: 19](../tests/2024-07-templegold/protocol/contracts/amo/helpers/AMOCommon.sol#L19)
6553 | 
6554 | 	```solidity
6555 | 	    error Paused();
6556 | 	```
6557 | 
6558 | - Found in contracts/core/VaultEarlyWithdraw.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/core/VaultEarlyWithdraw.sol#L31)
6559 | 
6560 | 	```solidity
6561 | 	    error SendFailed();
6562 | 	```
6563 | 
6564 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L108)
6565 | 
6566 | 	```solidity
6567 | 	    error InvalidDelegate();
6568 | 	```
6569 | 
6570 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L111)
6571 | 
6572 | 	```solidity
6573 | 	    error MinimumStakePeriod();
6574 | 	```
6575 | 
6576 | - Found in contracts/governance/ElderElection.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L49)
6577 | 
6578 | 	```solidity
6579 | 	    error NotFromTemplar(address account, uint256 discordId);
6580 | 	```
6581 | 
6582 | - Found in contracts/governance/ElderElection.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L50)
6583 | 
6584 | 	```solidity
6585 | 	    error NotCandidate(uint256 discordId);
6586 | 	```
6587 | 
6588 | - Found in contracts/interfaces/templegold/ISpiceAuction.sol [Line: 14](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ISpiceAuction.sol#L14)
6589 | 
6590 | 	```solidity
6591 | 	    error NoConfig();
6592 | 	```
6593 | 
6594 | - Found in contracts/interfaces/templegold/ITempleGoldStaking.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/interfaces/templegold/ITempleGoldStaking.sol#L21)
6595 | 
6596 | 	```solidity
6597 | 	    error CannotDelegate();
6598 | 	```
6599 | 
6600 | - Found in contracts/interfaces/v2/safeGuards/IThresholdSafeGuard.sol [Line: 16](../tests/2024-07-templegold/protocol/contracts/interfaces/v2/safeGuards/IThresholdSafeGuard.sol#L16)
6601 | 
6602 | 	```solidity
6603 | 	    error DynamicSignatureThresholdNotMet(uint256 required, uint256 found);
6604 | 	```
6605 | 
6606 | </details>
6607 | 
6608 | 
6609 | 
6610 | ## L-15: Loop Contains `require`/`revert`
6611 | 
6612 | Avoid `require` / `revert` statements in a loop because a single bad item can cause the whole transaction to fail. It's better to forgive on fail and return failed elements post processing of the loop
6613 | 
6614 | <details><summary>18 Found Instances</summary>
6615 | 
6616 | 
6617 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 38](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L38)
6618 | 
6619 | 	```solidity
6620 | 	        for (uint256 i = 0; i < _addresses.length; i++) {
6621 | 	```
6622 | 
6623 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 128](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L128)
6624 | 
6625 | 	```solidity
6626 | 	        for (uint256 i; i < _dests.length; ) {
6627 | 	```
6628 | 
6629 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L50)
6630 | 
6631 | 	```solidity
6632 | 	        for (uint256 i; i < _addresses.length; ) {
6633 | 	```
6634 | 
6635 | - Found in contracts/amo/AuraStaking.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L116)
6636 | 
6637 | 	```solidity
6638 | 	            for (uint i; i < length; ++i) {
6639 | 	```
6640 | 
6641 | - Found in contracts/core/OpsManager.sol [Line: 97](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L97)
6642 | 
6643 | 	```solidity
6644 | 	        for (uint256 i = 0; i < vaults.length; i++) {
6645 | 	```
6646 | 
6647 | - Found in contracts/core/OpsManager.sol [Line: 133](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L133)
6648 | 
6649 | 	```solidity
6650 | 	        for (uint256 i = 0; i < vaults.length; i++) {
6651 | 	```
6652 | 
6653 | - Found in contracts/core/OpsManager.sol [Line: 151](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L151)
6654 | 
6655 | 	```solidity
6656 | 	        for (uint256 i = 0; i < vaults.length; i++) {
6657 | 	```
6658 | 
6659 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 178](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L178)
6660 | 
6661 | 	```solidity
6662 | 	        for (uint i; i < path.length - 1; i++) {
6663 | 	```
6664 | 
6665 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L259)
6666 | 
6667 | 	```solidity
6668 | 	        for (uint i; i < path.length - 1; i++) {
6669 | 	```
6670 | 
6671 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 362](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L362)
6672 | 
6673 | 	```solidity
6674 | 	        for (uint i; i < path.length - 1; i++) {
6675 | 	```
6676 | 
6677 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 378](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L378)
6678 | 
6679 | 	```solidity
6680 | 	        for (uint i = path.length - 1; i > 0; i--) {
6681 | 	```
6682 | 
6683 | - Found in contracts/util/ABDKMath64x64.sol [Line: 411](../tests/2024-07-templegold/protocol/contracts/util/ABDKMath64x64.sol#L411)
6684 | 
6685 | 	```solidity
6686 | 	        while (y != 0) {
6687 | 	```
6688 | 
6689 | - Found in contracts/v2/TempleDebtToken.sol [Line: 454](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L454)
6690 | 
6691 | 	```solidity
6692 | 	        for (uint256 i; i < _length; ++i) {
6693 | 	```
6694 | 
6695 | - Found in contracts/v2/TempleDebtToken.sol [Line: 507](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L507)
6696 | 
6697 | 	```solidity
6698 | 	        for (uint256 i; i < _length; ++i) {
6699 | 	```
6700 | 
6701 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L187)
6702 | 
6703 | 	```solidity
6704 | 	        for (uint256 i; i < _length; ++i) {
6705 | 	```
6706 | 
6707 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 216](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L216)
6708 | 
6709 | 	```solidity
6710 | 	        for (; i < _length; ++i) {
6711 | 	```
6712 | 
6713 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 330](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L330)
6714 | 
6715 | 	```solidity
6716 | 	        for (uint256 i; i < _numAccounts; ++i) {
6717 | 	```
6718 | 
6719 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 528](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L528)
6720 | 
6721 | 	```solidity
6722 | 	        for (uint256 i; i < _numAccounts; ++i) {
6723 | 	```
6724 | 
6725 | </details>
6726 | 
6727 | 
6728 | 
6729 | ## L-16: Incorrect Order of Division and Multiplication
6730 | 
6731 | Division operations followed directly by multiplication operations can lead to precision loss due to the way integer arithmetic is handled in Solidity./
6732 |         Consider Multiplication before Division.
6733 | 
6734 | <details><summary>1 Found Instances</summary>
6735 | 
6736 | 
6737 | - Found in contracts/core/JoiningFee.sol [Line: 38](../tests/2024-07-templegold/protocol/contracts/core/JoiningFee.sol#L38)
6738 | 
6739 | 	```solidity
6740 | 	        return (block.timestamp - (numCycles * periodDuration) - firstPeriodStartTimestamp) / 3600 * feePerHour;
6741 | 	```
6742 | 
6743 | </details>
6744 | 
6745 | 
6746 | 
6747 | ## L-17: Redundant Statement
6748 | 
6749 | Remove the redundant statement.
6750 | 
6751 | <details><summary>1 Found Instances</summary>
6752 | 
6753 | 
6754 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 28](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L28)
6755 | 
6756 | 	```solidity
6757 | 	            _exiter;
6758 | 	```
6759 | 
6760 | </details>
6761 | 
6762 | 
6763 | 
6764 | ## L-18: Unused State Variable
6765 | 
6766 | State variable appears to be unused. No analysis has been performed to see if any inline assembly references it. Consider removing this unused variable.
6767 | 
6768 | <details><summary>2 Found Instances</summary>
6769 | 
6770 | 
6771 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 71](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L71)
6772 | 
6773 | 	```solidity
6774 | 	    mapping(address delegate => uint256 balance) private _delegateBalances;
6775 | 	```
6776 | 
6777 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 79](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L79)
6778 | 
6779 | 	```solidity
6780 | 	    mapping(address account => EnumerableSet.UintSet indexes) private _accountStakes;
6781 | 	```
6782 | 
6783 | </details>
6784 | 
6785 | 
6786 | 
6787 | ## L-19: Boolean equality is not required
6788 | 
6789 | If `x` is a boolean, use `if(x)` and `if(!x)` instead of `if(x == true)` or `if(x == false)`.
6790 | 
6791 | <details><summary>2 Found Instances</summary>
6792 | 
6793 | 
6794 | - Found in contracts/deprecated/Faith.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L32)
6795 | 
6796 | 	```solidity
6797 | 	        require(canManageFaith[msg.sender] == true, "Faith: caller cannot manage faith");
6798 | 	```
6799 | 
6800 | - Found in contracts/deprecated/Faith.sol [Line: 40](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L40)
6801 | 
6802 | 	```solidity
6803 | 	        require(canManageFaith[msg.sender] == true, "Faith: caller cannot manage faith");
6804 | 	```
6805 | 
6806 | </details>
6807 | 
6808 | 
6809 | 
6810 | ## L-20: Local Variable Shadows State Variable
6811 | 
6812 | Rename the local variable that shadows another state variable.
6813 | 
6814 | <details><summary>12 Found Instances</summary>
6815 | 
6816 | 
6817 | - Found in contracts/core/Exposure.sol [Line: 40](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L40)
6818 | 
6819 | 	```solidity
6820 | 	    constructor(string memory _name, string memory _symbol, IERC20 _revalToken) ERC20(_name, _symbol) Ownable(msg.sender) {
6821 | 	```
6822 | 
6823 | - Found in contracts/core/Vault.sol [Line: 61](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L61)
6824 | 
6825 | 	```solidity
6826 | 	        string memory _name,
6827 | 	```
6828 | 
6829 | - Found in contracts/core/Vault.sol [Line: 62](../tests/2024-07-templegold/protocol/contracts/core/Vault.sol#L62)
6830 | 
6831 | 	```solidity
6832 | 	        string memory _symbol,
6833 | 	```
6834 | 
6835 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L49)
6836 | 
6837 | 	```solidity
6838 | 	        string memory _name,
6839 | 	```
6840 | 
6841 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L50)
6842 | 
6843 | 	```solidity
6844 | 	        string memory _symbol
6845 | 	```
6846 | 
6847 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L116)
6848 | 
6849 | 	```solidity
6850 | 	        uint40 periodFinish;
6851 | 	```
6852 | 
6853 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 118](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L118)
6854 | 
6855 | 	```solidity
6856 | 	        uint40 lastUpdateTime;
6857 | 	```
6858 | 
6859 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 119](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L119)
6860 | 
6861 | 	```solidity
6862 | 	        uint216 rewardPerTokenStored;
6863 | 	```
6864 | 
6865 | - Found in contracts/v2/TempleDebtToken.sol [Line: 588](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L588)
6866 | 
6867 | 	```solidity
6868 | 	        uint96 baseRate;
6869 | 	```
6870 | 
6871 | - Found in contracts/v2/TempleDebtToken.sol [Line: 591](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L591)
6872 | 
6873 | 	```solidity
6874 | 	        uint128 baseShares;
6875 | 	```
6876 | 
6877 | - Found in contracts/v2/TempleDebtToken.sol [Line: 654](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L654)
6878 | 
6879 | 	```solidity
6880 | 	        uint128 baseShares;
6881 | 	```
6882 | 
6883 | </details>
6884 | 
6885 | 
6886 | 
6887 | ## L-21: Uninitialized Local Variable
6888 | 
6889 | Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
6890 | 
6891 | <details><summary>13 Found Instances</summary>
6892 | 
6893 | 
6894 | - Found in contracts/admin/TempleTeamPaymentsFactory.sol [Line: 128](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsFactory.sol#L128)
6895 | 
6896 | 	```solidity
6897 | 	        for (uint256 i; i < _dests.length; ) {
6898 | 	```
6899 | 
6900 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L50)
6901 | 
6902 | 	```solidity
6903 | 	        for (uint256 i; i < _addresses.length; ) {
6904 | 	```
6905 | 
6906 | - Found in contracts/amo/AuraStaking.sol [Line: 116](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L116)
6907 | 
6908 | 	```solidity
6909 | 	            for (uint i; i < length; ++i) {
6910 | 	```
6911 | 
6912 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 178](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L178)
6913 | 
6914 | 	```solidity
6915 | 	        for (uint i; i < path.length - 1; i++) {
6916 | 	```
6917 | 
6918 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 259](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L259)
6919 | 
6920 | 	```solidity
6921 | 	        for (uint i; i < path.length - 1; i++) {
6922 | 	```
6923 | 
6924 | - Found in contracts/v2/TempleDebtToken.sol [Line: 454](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L454)
6925 | 
6926 | 	```solidity
6927 | 	        for (uint256 i; i < _length; ++i) {
6928 | 	```
6929 | 
6930 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L187)
6931 | 
6932 | 	```solidity
6933 | 	        for (uint256 i; i < _length; ++i) {
6934 | 	```
6935 | 
6936 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 294](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L294)
6937 | 
6938 | 	```solidity
6939 | 	        for (uint256 i; i < _length; ++i) {
6940 | 	```
6941 | 
6942 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 112](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L112)
6943 | 
6944 | 	```solidity
6945 | 	        for (uint256 i; i < _length; ++i) {
6946 | 	```
6947 | 
6948 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 174](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L174)
6949 | 
6950 | 	```solidity
6951 | 	            for (uint256 i; i < _nBuckets; ++i) {
6952 | 	```
6953 | 
6954 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 126](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L126)
6955 | 
6956 | 	```solidity
6957 | 	        for (uint256 i; i < length; ++i) {
6958 | 	```
6959 | 
6960 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L100)
6961 | 
6962 | 	```solidity
6963 | 	        for (uint256 i; i < _length; ++i) {
6964 | 	```
6965 | 
6966 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 330](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L330)
6967 | 
6968 | 	```solidity
6969 | 	        for (uint256 i; i < _numAccounts; ++i) {
6970 | 	```
6971 | 
6972 | </details>
6973 | 
6974 | 
6975 | 
6976 | ## L-22: Costly operations inside loop
6977 | 
6978 | Invoking `SSTORE` operations in loops may waste gas. Use a local variable to hold the loop computation result.
6979 | 
6980 | <details><summary>13 Found Instances</summary>
6981 | 
6982 | 
6983 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 38](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L38)
6984 | 
6985 | 	```solidity
6986 | 	        for (uint256 i = 0; i < _addresses.length; i++) {
6987 | 	```
6988 | 
6989 | - Found in contracts/admin/TempleTeamPaymentsV2.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPaymentsV2.sol#L50)
6990 | 
6991 | 	```solidity
6992 | 	        for (uint256 i; i < _addresses.length; ) {
6993 | 	```
6994 | 
6995 | - Found in contracts/v2/TempleDebtToken.sol [Line: 454](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L454)
6996 | 
6997 | 	```solidity
6998 | 	        for (uint256 i; i < _length; ++i) {
6999 | 	```
7000 | 
7001 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 187](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L187)
7002 | 
7003 | 	```solidity
7004 | 	        for (uint256 i; i < _length; ++i) {
7005 | 	```
7006 | 
7007 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 216](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L216)
7008 | 
7009 | 	```solidity
7010 | 	        for (; i < _length; ++i) {
7011 | 	```
7012 | 
7013 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 223](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L223)
7014 | 
7015 | 	```solidity
7016 | 	        for (i = 0; i < _length; ++i) {
7017 | 	```
7018 | 
7019 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 294](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L294)
7020 | 
7021 | 	```solidity
7022 | 	        for (uint256 i; i < _length; ++i) {
7023 | 	```
7024 | 
7025 | - Found in contracts/v2/access/TempleElevatedAccess.sol [Line: 112](../tests/2024-07-templegold/protocol/contracts/v2/access/TempleElevatedAccess.sol#L112)
7026 | 
7027 | 	```solidity
7028 | 	        for (uint256 i; i < _length; ++i) {
7029 | 	```
7030 | 
7031 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L100)
7032 | 
7033 | 	```solidity
7034 | 	                for (; _minBucketResetIndex < _nextBucketIndex; ++_minBucketResetIndex) {
7035 | 	```
7036 | 
7037 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 197](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L197)
7038 | 
7039 | 	```solidity
7040 | 	            for (uint256 i = 0; i < _nBuckets; ++i) {
7041 | 	```
7042 | 
7043 | - Found in contracts/v2/safeGuards/ThresholdSafeGuard.sol [Line: 126](../tests/2024-07-templegold/protocol/contracts/v2/safeGuards/ThresholdSafeGuard.sol#L126)
7044 | 
7045 | 	```solidity
7046 | 	        for (uint256 i; i < length; ++i) {
7047 | 	```
7048 | 
7049 | - Found in contracts/v2/strategies/AbstractStrategy.sol [Line: 100](../tests/2024-07-templegold/protocol/contracts/v2/strategies/AbstractStrategy.sol#L100)
7050 | 
7051 | 	```solidity
7052 | 	        for (uint256 i; i < _length; ++i) {
7053 | 	```
7054 | 
7055 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 330](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L330)
7056 | 
7057 | 	```solidity
7058 | 	        for (uint256 i; i < _numAccounts; ++i) {
7059 | 	```
7060 | 
7061 | </details>
7062 | 
7063 | 
7064 | 
7065 | ## L-23: Missing Inheritance
7066 | 
7067 | There is an interface / abstract contract that is potentially missing (not included in) the inheritance of this contract.
7068 | 
7069 | <details><summary>1 Found Instances</summary>
7070 | 
7071 | 
7072 | - Found in contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol#L7)
7073 | 
7074 | 	Is this contract supposed to implement an interface? Consider extending one of the following: AMO_IAuraToken
7075 | 	```solidity
7076 | 	contract TempleDebtTokenTestnetAdmin {
7077 | 	```
7078 | 
7079 | </details>
7080 | 
7081 | 
7082 | 
7083 | ## L-24: Unused Import
7084 | 
7085 | Redundant import statement. Consider removing it.
7086 | 
7087 | <details><summary>14 Found Instances</summary>
7088 | 
7089 | 
7090 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 8](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L8)
7091 | 
7092 | 	```solidity
7093 | 	import "@openzeppelin/contracts/access/AccessControl.sol";
7094 | 	```
7095 | 
7096 | - Found in contracts/amm/TempleUniswapV2Pair.sol [Line: 4](../tests/2024-07-templegold/protocol/contracts/amm/TempleUniswapV2Pair.sol#L4)
7097 | 
7098 | 	```solidity
7099 | 	import '@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol';
7100 | 	```
7101 | 
7102 | - Found in contracts/core/TempleERC20Token.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L7)
7103 | 
7104 | 	```solidity
7105 | 	import "@openzeppelin/contracts/utils/Pausable.sol";
7106 | 	```
7107 | 
7108 | - Found in contracts/deprecated/OGTemple.sol [Line: 7](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L7)
7109 | 
7110 | 	```solidity
7111 | 	import "@openzeppelin/contracts/utils/Pausable.sol";
7112 | 	```
7113 | 
7114 | - Found in contracts/deprecated/OGTemple.sol [Line: 9](../tests/2024-07-templegold/protocol/contracts/deprecated/OGTemple.sol#L9)
7115 | 
7116 | 	```solidity
7117 | 	import "@openzeppelin/contracts/access/AccessControl.sol";
7118 | 	```
7119 | 
7120 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 4](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L4)
7121 | 
7122 | 	```solidity
7123 | 	import "@openzeppelin/contracts/access/Ownable.sol";
7124 | 	```
7125 | 
7126 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 4](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L4)
7127 | 
7128 | 	```solidity
7129 | 	import "@openzeppelin/contracts/access/Ownable.sol";
7130 | 	```
7131 | 
7132 | - Found in contracts/fakes/UniswapV2Factory.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Factory.sol#L6)
7133 | 
7134 | 	```solidity
7135 | 	import '@uniswap/v2-core/contracts/UniswapV2Factory.sol';
7136 | 	```
7137 | 
7138 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L17)
7139 | 
7140 | 	```solidity
7141 | 	import '@uniswap/v2-periphery/contracts/interfaces/IWETH.sol';
7142 | 	```
7143 | 
7144 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 10](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L10)
7145 | 
7146 | 	```solidity
7147 | 	import { IDaiGoldAuction } from "contracts/interfaces/templegold/IDaiGoldAuction.sol";
7148 | 	```
7149 | 
7150 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L13)
7151 | 
7152 | 	```solidity
7153 | 	import { ITempleGoldStaking}  from "contracts/interfaces/templegold/ITempleGoldStaking.sol";
7154 | 	```
7155 | 
7156 | - Found in contracts/fakes/templegold/TempleGoldMock.sol [Line: 17](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldMock.sol#L17)
7157 | 
7158 | 	```solidity
7159 | 	import { TempleMath } from "contracts/common/TempleMath.sol";
7160 | 	```
7161 | 
7162 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L6)
7163 | 
7164 | 	```solidity
7165 | 	import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
7166 | 	```
7167 | 
7168 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 6](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L6)
7169 | 
7170 | 	```solidity
7171 | 	import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
7172 | 	```
7173 | 
7174 | </details>
7175 | 
7176 | 
7177 | 
7178 | ## L-25: State Change Without Event
7179 | 
7180 | There are state variable changes in this function but no event is emitted. Consider emitting an event to enable offchain indexers to track the changes.
7181 | 
7182 | <details><summary>18 Found Instances</summary>
7183 | 
7184 | 
7185 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 29](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L29)
7186 | 
7187 | 	```solidity
7188 | 	    function setAllocations(
7189 | 	```
7190 | 
7191 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 44](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L44)
7192 | 
7193 | 	```solidity
7194 | 	    function setAllocation(address _address, uint256 _amount) external onlyOwner {
7195 | 	```
7196 | 
7197 | - Found in contracts/admin/TempleTeamPayments.sol [Line: 49](../tests/2024-07-templegold/protocol/contracts/admin/TempleTeamPayments.sol#L49)
7198 | 
7199 | 	```solidity
7200 | 	    function pauseMember(address _address)
7201 | 	```
7202 | 
7203 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 48](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L48)
7204 | 
7205 | 	```solidity
7206 | 	    function addPair(address _token, address _pair) external onlyOwner {
7207 | 	```
7208 | 
7209 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L52)
7210 | 
7211 | 	```solidity
7212 | 	    function setTreasury(ITreasuryIV _templeTreasury) external onlyOwner {
7213 | 	```
7214 | 
7215 | - Found in contracts/amm/TempleStableAMMRouter.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/amm/TempleStableAMMRouter.sol#L56)
7216 | 
7217 | 	```solidity
7218 | 	    function setDefendStable(address _defendStable) external onlyOwner {
7219 | 	```
7220 | 
7221 | - Found in contracts/amm/TreasuryIV.sol [Line: 23](../tests/2024-07-templegold/protocol/contracts/amm/TreasuryIV.sol#L23)
7222 | 
7223 | 	```solidity
7224 | 	    function setIV(uint256 frax, uint256 temple) external onlyOwner {
7225 | 	```
7226 | 
7227 | - Found in contracts/core/VaultProxy.sol [Line: 118](../tests/2024-07-templegold/protocol/contracts/core/VaultProxy.sol#L118)
7228 | 
7229 | 	```solidity
7230 | 	    function toggleFaithClaimEnabled() external onlyOwner {
7231 | 	```
7232 | 
7233 | - Found in contracts/deprecated/Faith.sol [Line: 50](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L50)
7234 | 
7235 | 	```solidity
7236 | 	    function addManager(address account) external onlyOwner {
7237 | 	```
7238 | 
7239 | - Found in contracts/deprecated/Faith.sol [Line: 54](../tests/2024-07-templegold/protocol/contracts/deprecated/Faith.sol#L54)
7240 | 
7241 | 	```solidity
7242 | 	    function removeManager(address account) external onlyOwner {
7243 | 	```
7244 | 
7245 | - Found in contracts/deprecated/TempleStaking.sol [Line: 67](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L67)
7246 | 
7247 | 	```solidity
7248 | 	    function setExitQueue(IExitQueue _EXIT_QUEUE) external onlyOwner {
7249 | 	```
7250 | 
7251 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 268](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L268)
7252 | 
7253 | 	```solidity
7254 | 	    function distributeRewards() updateReward(address(0), 0) external {
7255 | 	```
7256 | 
7257 | - Found in contracts/templegold/TempleGoldStaking.sol [Line: 180](../tests/2024-07-templegold/protocol/contracts/templegold/TempleGoldStaking.sol#L180)
7258 | 
7259 | 	```solidity
7260 | 	    function distributeRewards() updateReward(address(0), 0) external {
7261 | 	```
7262 | 
7263 | - Found in contracts/v2/TempleDebtToken.sol [Line: 423](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L423)
7264 | 
7265 | 	```solidity
7266 | 	    function checkpointBaseInterest() external override returns (uint256) {
7267 | 	```
7268 | 
7269 | - Found in contracts/v2/TempleDebtToken.sol [Line: 431](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L431)
7270 | 
7271 | 	```solidity
7272 | 	    function checkpointDebtorInterest(address debtor) external override returns (uint256) {
7273 | 	```
7274 | 
7275 | - Found in contracts/v2/TempleDebtToken.sol [Line: 445](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L445)
7276 | 
7277 | 	```solidity
7278 | 	    function checkpointDebtorsInterest(address[] calldata _debtors) external override {
7279 | 	```
7280 | 
7281 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 206](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L206)
7282 | 
7283 | 	```solidity
7284 | 	    function updateStrategyEnabledBorrowTokens(
7285 | 	```
7286 | 
7287 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol [Line: 89](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerAllUsersPerPeriod.sol#L89)
7288 | 
7289 | 	```solidity
7290 | 	    function preCheck(address /*onBehalfOf*/, uint256 amount) external override onlyElevatedAccess {
7291 | 	```
7292 | 
7293 | </details>
7294 | 
7295 | 
7296 | 
7297 | ## L-26: State Variable Could Be Immutable
7298 | 
7299 | State variables that are only changed in the constructor should be declared immutable to save gas. Add the `immutable` attribute to state variables that are only changed in the constructor
7300 | 
7301 | <details><summary>15 Found Instances</summary>
7302 | 
7303 | 
7304 | - Found in contracts/core/Exposure.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/core/Exposure.sol#L18)
7305 | 
7306 | 	```solidity
7307 | 	    IERC20 public revalToken;
7308 | 	```
7309 | 
7310 | - Found in contracts/core/OpsManager.sol [Line: 25](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L25)
7311 | 
7312 | 	```solidity
7313 | 	    Exposure public templeExposure;
7314 | 	```
7315 | 
7316 | - Found in contracts/core/OpsManager.sol [Line: 26](../tests/2024-07-templegold/protocol/contracts/core/OpsManager.sol#L26)
7317 | 
7318 | 	```solidity
7319 | 	    VaultedTemple public vaultedTemple;
7320 | 	```
7321 | 
7322 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 14](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L14)
7323 | 
7324 | 	```solidity
7325 | 	    TempleStaking templeStaking;
7326 | 	```
7327 | 
7328 | - Found in contracts/deprecated/InstantExitQueue.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/deprecated/InstantExitQueue.sol#L15)
7329 | 
7330 | 	```solidity
7331 | 	    IERC20 templeToken;
7332 | 	```
7333 | 
7334 | - Found in contracts/deprecated/LockedOGTemple.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/deprecated/LockedOGTemple.sol#L21)
7335 | 
7336 | 	```solidity
7337 | 	  OGTemple public OG_TEMPLE; // The token being staked, for which TEMPLE rewards are generated
7338 | 	```
7339 | 
7340 | - Found in contracts/deprecated/TempleStaking.sol [Line: 29](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L29)
7341 | 
7342 | 	```solidity
7343 | 	    uint256 public epochSizeSeconds; 
7344 | 	```
7345 | 
7346 | - Found in contracts/deprecated/TempleStaking.sol [Line: 32](../tests/2024-07-templegold/protocol/contracts/deprecated/TempleStaking.sol#L32)
7347 | 
7348 | 	```solidity
7349 | 	    uint256 public startTimestamp;
7350 | 	```
7351 | 
7352 | - Found in contracts/fakes/NoopLiquidator.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/fakes/NoopLiquidator.sol#L13)
7353 | 
7354 | 	```solidity
7355 | 	    TempleERC20Token templeToken;
7356 | 	```
7357 | 
7358 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 14](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L14)
7359 | 
7360 | 	```solidity
7361 | 	    TempleERC20Token templeToken;
7362 | 	```
7363 | 
7364 | - Found in contracts/fakes/NoopVaultedTempleLiquidator.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/fakes/NoopVaultedTempleLiquidator.sol#L15)
7365 | 
7366 | 	```solidity
7367 | 	    VaultedTemple vaultedTemple;
7368 | 	```
7369 | 
7370 | - Found in contracts/fakes/templegold/TempleGoldStakingMock.sol [Line: 31](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleGoldStakingMock.sol#L31)
7371 | 
7372 | 	```solidity
7373 | 	    ITempleGoldStaking public previousStaking;
7374 | 	```
7375 | 
7376 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 24](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L24)
7377 | 
7378 | 	```solidity
7379 | 	    uint256 public lastUpdatedAt;
7380 | 	```
7381 | 
7382 | - Found in contracts/governance/ElderElection.sol [Line: 41](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L41)
7383 | 
7384 | 	```solidity
7385 | 	    Templar public templars;
7386 | 	```
7387 | 
7388 | - Found in contracts/governance/TemplarMetadata.sol [Line: 18](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L18)
7389 | 
7390 | 	```solidity
7391 | 	    Templar public templars;
7392 | 	```
7393 | 
7394 | </details>
7395 | 
7396 | 
7397 | 
7398 | ## L-27: Unchecked Return
7399 | 
7400 | Function returns a value but it is ignored. Consider checking the return value.
7401 | 
7402 | <details><summary>30 Found Instances</summary>
7403 | 
7404 | 
7405 | - Found in contracts/amo/AuraStaking.sol [Line: 83](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L83)
7406 | 
7407 | 	```solidity
7408 | 	            booster.deposit(auraPoolInfo.pId, amount, true);
7409 | 	```
7410 | 
7411 | - Found in contracts/amo/AuraStaking.sol [Line: 93](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L93)
7412 | 
7413 | 	```solidity
7414 | 	            IAuraBaseRewardPool(auraPoolInfo.rewards).withdrawAndUnwrap(toUnstake, claim);
7415 | 	```
7416 | 
7417 | - Found in contracts/amo/AuraStaking.sol [Line: 111](../tests/2024-07-templegold/protocol/contracts/amo/AuraStaking.sol#L111)
7418 | 
7419 | 	```solidity
7420 | 	        IAuraBaseRewardPool(auraPoolInfo.rewards).getReward(address(this), claimExtras);
7421 | 	```
7422 | 
7423 | - Found in contracts/amo/Ramos.sol [Line: 195](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L195)
7424 | 
7425 | 	```solidity
7426 | 	            protocolToken.approve(previousVault, 0);
7427 | 	```
7428 | 
7429 | - Found in contracts/amo/Ramos.sol [Line: 196](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L196)
7430 | 
7431 | 	```solidity
7432 | 	            quoteToken.approve(previousVault, 0);
7433 | 	```
7434 | 
7435 | - Found in contracts/amo/Ramos.sol [Line: 489](../tests/2024-07-templegold/protocol/contracts/amo/Ramos.sol#L489)
7436 | 
7437 | 	```solidity
7438 | 	                quoteToken.approve(address(balancerVault), 0);
7439 | 	```
7440 | 
7441 | - Found in contracts/core/MultiOtcOffer.sol [Line: 84](../tests/2024-07-templegold/protocol/contracts/core/MultiOtcOffer.sol#L84)
7442 | 
7443 | 	```solidity
7444 | 	        _otcMarketIds.remove(_marketId);
7445 | 	```
7446 | 
7447 | - Found in contracts/core/TempleERC20Token.sol [Line: 15](../tests/2024-07-templegold/protocol/contracts/core/TempleERC20Token.sol#L15)
7448 | 
7449 | 	```solidity
7450 | 	        _grantRole(DEFAULT_ADMIN_ROLE, owner());
7451 | 	```
7452 | 
7453 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L52)
7454 | 
7455 | 	```solidity
7456 | 	            IUniswapV2Factory(factory).createPair(tokenA, tokenB);
7457 | 	```
7458 | 
7459 | - Found in contracts/fakes/UniswapV2Router02NoEth.sol [Line: 108](../tests/2024-07-templegold/protocol/contracts/fakes/UniswapV2Router02NoEth.sol#L108)
7460 | 
7461 | 	```solidity
7462 | 	        IUniswapV2Pair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair
7463 | 	```
7464 | 
7465 | - Found in contracts/fakes/templegold/TempleTokenMock.sol [Line: 13](../tests/2024-07-templegold/protocol/contracts/fakes/templegold/TempleTokenMock.sol#L13)
7466 | 
7467 | 	```solidity
7468 | 	        _grantRole(DEFAULT_ADMIN_ROLE, owner());
7469 | 	```
7470 | 
7471 | - Found in contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol [Line: 28](../tests/2024-07-templegold/protocol/contracts/fakes/v2/TempleDebtTokenTestnetAdmin.sol#L28)
7472 | 
7473 | 	```solidity
7474 | 	        dUSD.burn(from, amount);
7475 | 	```
7476 | 
7477 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 52](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L52)
7478 | 
7479 | 	```solidity
7480 | 	        _checkpointDaiBalance(daiToken.balanceOf(address(this)));
7481 | 	```
7482 | 
7483 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 131](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L131)
7484 | 
7485 | 	```solidity
7486 | 	        _checkpointDaiBalance(daiToken.balanceOf(address(this)));
7487 | 	```
7488 | 
7489 | - Found in contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol [Line: 181](../tests/2024-07-templegold/protocol/contracts/fakes/v2/strategies/DsrBaseStrategyTestnet.sol#L181)
7490 | 
7491 | 	```solidity
7492 | 	        _checkpointDaiBalance(balance - amount);
7493 | 	```
7494 | 
7495 | - Found in contracts/governance/ElderElection.sol [Line: 61](../tests/2024-07-templegold/protocol/contracts/governance/ElderElection.sol#L61)
7496 | 
7497 | 	```solidity
7498 | 	        _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
7499 | 	```
7500 | 
7501 | - Found in contracts/governance/Templar.sol [Line: 21](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L21)
7502 | 
7503 | 	```solidity
7504 | 	        _grantRole(OWNER, msg.sender);
7505 | 	```
7506 | 
7507 | - Found in contracts/governance/Templar.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/governance/Templar.sol#L22)
7508 | 
7509 | 	```solidity
7510 | 	        _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
7511 | 	```
7512 | 
7513 | - Found in contracts/governance/TemplarMetadata.sol [Line: 22](../tests/2024-07-templegold/protocol/contracts/governance/TemplarMetadata.sol#L22)
7514 | 
7515 | 	```solidity
7516 | 	        _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
7517 | 	```
7518 | 
7519 | - Found in contracts/v2/TempleDebtToken.sol [Line: 149](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L149)
7520 | 
7521 | 	```solidity
7522 | 	        _getBaseCache();
7523 | 	```
7524 | 
7525 | - Found in contracts/v2/TempleDebtToken.sol [Line: 160](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L160)
7526 | 
7527 | 	```solidity
7528 | 	        _getDebtorCache(_getBaseCache(), debtor, true);
7529 | 	```
7530 | 
7531 | - Found in contracts/v2/TempleDebtToken.sol [Line: 638](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L638)
7532 | 
7533 | 	```solidity
7534 | 	        _initBaseCache(baseCache);
7535 | 	```
7536 | 
7537 | - Found in contracts/v2/TempleDebtToken.sol [Line: 752](../tests/2024-07-templegold/protocol/contracts/v2/TempleDebtToken.sol#L752)
7538 | 
7539 | 	```solidity
7540 | 	        _initDebtorCache(_baseCache, _debtor, debtorCache, _roundUp);
7541 | 	```
7542 | 
7543 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 126](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L126)
7544 | 
7545 | 	```solidity
7546 | 	        _borrowTokenSet.add(address(token));
7547 | 	```
7548 | 
7549 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 138](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L138)
7550 | 
7551 | 	```solidity
7552 | 	        _borrowTokenSet.remove(address(token));
7553 | 	```
7554 | 
7555 | - Found in contracts/v2/TreasuryReservesVault.sol [Line: 318](../tests/2024-07-templegold/protocol/contracts/v2/TreasuryReservesVault.sol#L318)
7556 | 
7557 | 	```solidity
7558 | 	        _strategySet.remove(strategy);
7559 | 	```
7560 | 
7561 | - Found in contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol [Line: 56](../tests/2024-07-templegold/protocol/contracts/v2/circuitBreaker/TempleCircuitBreakerProxy.sol#L56)
7562 | 
7563 | 	```solidity
7564 | 	        _identifiers.add(_identifier);
7565 | 	```
7566 | 
7567 | - Found in contracts/v2/strategies/RamosStrategy.sol [Line: 252](../tests/2024-07-templegold/protocol/contracts/v2/strategies/RamosStrategy.sol#L252)
7568 | 
7569 | 	```solidity
7570 | 	        ramos.removeLiquidity(params.requestData, params.bptAmount);
7571 | 	```
7572 | 
7573 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 394](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L394)
7574 | 
7575 | 	```solidity
7576 | 	            daiToken.approve(previousTrv, 0);
7577 | 	```
7578 | 
7579 | - Found in contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol [Line: 680](../tests/2024-07-templegold/protocol/contracts/v2/templeLineOfCredit/TempleLineOfCredit.sol#L680)
7580 | 
7581 | 	```solidity
7582 | 	        _initDebtTokenCache(cache);
7583 | 	```
7584 | 
7585 | </details>
7586 | 
7587 | 
7588 | 
7589 | 
```
Page 103/103FirstPrevNextLast