{
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "EIP712_DOMAIN_NAME",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_DOMAIN_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_RESTAKE_TYPE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_STAKE_TYPE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "stakeId",
          "type": "uint96"
        },
        {
          "internalType": "NftId",
          "name": "newTarget",
          "type": "uint96"
        },
        {
          "internalType": "bytes32",
          "name": "signatureId",
          "type": "bytes32"
        }
      ],
      "name": "getRestakeDigest",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "getSigner",
      "outputs": [
        {
          "internalType": "address",
          "name": "signer",
          "type": "address"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "NftId",
          "name": "target",
          "type": "uint96"
        },
        {
          "internalType": "uint256",
          "name": "dipAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "signatureId",
          "type": "bytes32"
        }
      ],
      "name": "getStakeDigest",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "NftId",
          "name": "stakeId",
          "type": "uint96"
        },
        {
          "internalType": "NftId",
          "name": "newTarget",
          "type": "uint96"
        },
        {
          "internalType": "bytes32",
          "name": "signatureId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "processRestakeSignature",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "NftId",
          "name": "target",
          "type": "uint96"
        },
        {
          "internalType": "uint256",
          "name": "dipAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "signatureId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "processStakeSignature",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "25": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Strings.sol",
    "26": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/cryptography/ECDSA.sol",
    "27": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/cryptography/EIP712.sol",
    "30": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/math/Math.sol",
    "34": "contracts/registry/IChainNft.sol",
    "53": "contracts/staking/StakingMessageHelper.sol"
  },
  "ast": {
    "absolutePath": "contracts/staking/StakingMessageHelper.sol",
    "exportedSymbols": {
      "ECDSA": [
        14129
      ],
      "EIP712": [
        14283
      ],
      "NftId": [
        3353
      ],
      "StakingMessageHelper": [
        7109
      ]
    },
    "id": 7110,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6868,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:24:53"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/cryptography/ECDSA.sol",
        "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol",
        "id": 6870,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7110,
        "sourceUnit": 14130,
        "src": "65:75:53",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6869,
              "name": "ECDSA",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 14129,
              "src": "73:5:53",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/cryptography/EIP712.sol",
        "file": "@openzeppelin/contracts/utils/cryptography/EIP712.sol",
        "id": 6872,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7110,
        "sourceUnit": 14284,
        "src": "141:77:53",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6871,
              "name": "EIP712",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 14283,
              "src": "149:6:53",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/registry/IChainNft.sol",
        "file": "../registry/IChainNft.sol",
        "id": 6874,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 7110,
        "sourceUnit": 3495,
        "src": "220:48:53",
        "symbolAliases": [
          {
            "foreign": {
              "id": 6873,
              "name": "NftId",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 3353,
              "src": "228:5:53",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 6875,
              "name": "EIP712",
              "nameLocations": [
                "309:6:53"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 14283,
              "src": "309:6:53"
            },
            "id": 6876,
            "nodeType": "InheritanceSpecifier",
            "src": "309:6:53"
          }
        ],
        "canonicalName": "StakingMessageHelper",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 7109,
        "linearizedBaseContracts": [
          7109,
          14283
        ],
        "name": "StakingMessageHelper",
        "nameLocation": "280:20:53",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "fd070296",
            "id": 6879,
            "mutability": "constant",
            "name": "EIP712_DOMAIN_NAME",
            "nameLocation": "345:18:53",
            "nodeType": "VariableDeclaration",
            "scope": 7109,
            "src": "322:61:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 6877,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "322:6:53",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "45746865726973635374616b696e67",
              "id": 6878,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "366:17:53",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b5f2cb8c56dc414bc883b324f248ce0279cad8eb447e9db356d950578504be3e",
                "typeString": "literal_string \"EtheriscStaking\""
              },
              "value": "EtheriscStaking"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "5cc33321",
            "id": 6882,
            "mutability": "constant",
            "name": "EIP712_DOMAIN_VERSION",
            "nameLocation": "412:21:53",
            "nodeType": "VariableDeclaration",
            "scope": 7109,
            "src": "389:50:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 6880,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "389:6:53",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "31",
              "id": 6881,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "436:3:53",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6",
                "typeString": "literal_string \"1\""
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "9f696374",
            "id": 6885,
            "mutability": "constant",
            "name": "EIP712_STAKE_TYPE",
            "nameLocation": "538:17:53",
            "nodeType": "VariableDeclaration",
            "scope": 7109,
            "src": "515:103:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 6883,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "515:6:53",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "5374616b652875696e743936207461726765742c75696e7432353620646970416d6f756e742c62797465733332207369676e6174757265496429",
              "id": 6884,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "558:60:53",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_d54f5fdefb1e2f45575e9386c8d77953264cad7b9468994032cff3c5e586a4b9",
                "typeString": "literal_string \"Stake(uint96 target,uint256 dipAmount,bytes32 signatureId)\""
              },
              "value": "Stake(uint96 target,uint256 dipAmount,bytes32 signatureId)"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 6893,
            "mutability": "constant",
            "name": "EIP712_STAKE_TYPE_HASH",
            "nameLocation": "649:22:53",
            "nodeType": "VariableDeclaration",
            "scope": 7109,
            "src": "624:96:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 6886,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "624:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "id": 6890,
                      "name": "EIP712_STAKE_TYPE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6885,
                      "src": "701:17:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    ],
                    "expression": {
                      "id": 6888,
                      "name": "abi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -1,
                      "src": "684:3:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_abi",
                        "typeString": "abi"
                      }
                    },
                    "id": 6889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "688:12:53",
                    "memberName": "encodePacked",
                    "nodeType": "MemberAccess",
                    "src": "684:16:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                      "typeString": "function () pure returns (bytes memory)"
                    }
                  },
                  "id": 6891,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "684:35:53",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes memory"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes memory"
                  }
                ],
                "id": 6887,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": -8,
                "src": "674:9:53",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                  "typeString": "function (bytes memory) pure returns (bytes32)"
                }
              },
              "id": 6892,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "674:46:53",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "functionSelector": "8452a196",
            "id": 6896,
            "mutability": "constant",
            "name": "EIP712_RESTAKE_TYPE",
            "nameLocation": "750:19:53",
            "nodeType": "VariableDeclaration",
            "scope": 7109,
            "src": "727:107:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 6894,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "727:6:53",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "52657374616b652875696e743936207374616b6549642c75696e743936206e65775461726765742c62797465733332207369676e6174757265496429",
              "id": 6895,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "772:62:53",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_bb9b64599fa76f4728043c93b078fcb8c0c29091e825002a4b379689ddd8c67c",
                "typeString": "literal_string \"Restake(uint96 stakeId,uint96 newTarget,bytes32 signatureId)\""
              },
              "value": "Restake(uint96 stakeId,uint96 newTarget,bytes32 signatureId)"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 6904,
            "mutability": "constant",
            "name": "EIP712_RESTAKE_TYPE_HASH",
            "nameLocation": "865:24:53",
            "nodeType": "VariableDeclaration",
            "scope": 7109,
            "src": "840:100:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 6897,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "840:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "arguments": [
                {
                  "arguments": [
                    {
                      "id": 6901,
                      "name": "EIP712_RESTAKE_TYPE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6896,
                      "src": "919:19:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    }
                  ],
                  "expression": {
                    "argumentTypes": [
                      {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    ],
                    "expression": {
                      "id": 6899,
                      "name": "abi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -1,
                      "src": "902:3:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_abi",
                        "typeString": "abi"
                      }
                    },
                    "id": 6900,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "906:12:53",
                    "memberName": "encodePacked",
                    "nodeType": "MemberAccess",
                    "src": "902:16:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                      "typeString": "function () pure returns (bytes memory)"
                    }
                  },
                  "id": 6902,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "functionCall",
                  "lValueRequested": false,
                  "nameLocations": [],
                  "names": [],
                  "nodeType": "FunctionCall",
                  "src": "902:37:53",
                  "tryCall": false,
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes memory"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes memory"
                  }
                ],
                "id": 6898,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": -8,
                "src": "892:9:53",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                  "typeString": "function (bytes memory) pure returns (bytes32)"
                }
              },
              "id": 6903,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "892:48:53",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 6908,
            "mutability": "mutable",
            "name": "_signatureIsUsed",
            "nameLocation": "1002:16:53",
            "nodeType": "VariableDeclaration",
            "scope": 7109,
            "src": "948:70:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 6907,
              "keyName": "signatureHash",
              "keyNameLocation": "964:13:53",
              "keyType": {
                "id": 6905,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "956:7:53",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "948:45:53",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueName": "isUsed",
              "valueNameLocation": "986:6:53",
              "valueType": {
                "id": 6906,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "981:4:53",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 6915,
              "nodeType": "Block",
              "src": "1151:3:53",
              "statements": []
            },
            "id": 6916,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6911,
                    "name": "EIP712_DOMAIN_NAME",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6879,
                    "src": "1055:18:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "id": 6912,
                    "name": "EIP712_DOMAIN_VERSION",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6882,
                    "src": "1075:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 6913,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 6910,
                  "name": "EIP712",
                  "nameLocations": [
                    "1048:6:53"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 14283,
                  "src": "1048:6:53"
                },
                "nodeType": "ModifierInvocation",
                "src": "1048:49:53"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6909,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1037:2:53"
            },
            "returnParameters": {
              "id": 6914,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1151:0:53"
            },
            "scope": 7109,
            "src": "1026:128:53",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6951,
              "nodeType": "Block",
              "src": "1425:189:53",
              "statements": [
                {
                  "assignments": [
                    6931
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6931,
                      "mutability": "mutable",
                      "name": "digest",
                      "nameLocation": "1443:6:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 6951,
                      "src": "1435:14:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6930,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1435:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6937,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6933,
                        "name": "target",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6921,
                        "src": "1467:6:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        }
                      },
                      {
                        "id": 6934,
                        "name": "dipAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6923,
                        "src": "1475:9:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6935,
                        "name": "signatureId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6925,
                        "src": "1486:11:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6932,
                      "name": "getStakeDigest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7020,
                      "src": "1452:14:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_NftId_$3353_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (NftId,uint256,bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 6936,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1452:46:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1435:63:53"
                },
                {
                  "assignments": [
                    6939
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6939,
                      "mutability": "mutable",
                      "name": "signer",
                      "nameLocation": "1516:6:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 6951,
                      "src": "1508:14:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6938,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1508:7:53",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6944,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6941,
                        "name": "digest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6931,
                        "src": "1535:6:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6942,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6927,
                        "src": "1543:9:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 6940,
                      "name": "getSigner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7068,
                      "src": "1525:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_address_$",
                        "typeString": "function (bytes32,bytes calldata) pure returns (address)"
                      }
                    },
                    "id": 6943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1525:28:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1508:45:53"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6946,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6918,
                        "src": "1582:5:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6947,
                        "name": "signer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6939,
                        "src": "1589:6:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6948,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6927,
                        "src": "1597:9:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 6945,
                      "name": "_processSignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7108,
                      "src": "1564:17:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address,bytes calldata)"
                      }
                    },
                    "id": 6949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1564:43:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6950,
                  "nodeType": "ExpressionStatement",
                  "src": "1564:43:53"
                }
              ]
            },
            "functionSelector": "e94a62ea",
            "id": 6952,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "processStakeSignature",
            "nameLocation": "1170:21:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6928,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6918,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "1209:5:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6952,
                  "src": "1201:13:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6917,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1201:7:53",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6921,
                  "mutability": "mutable",
                  "name": "target",
                  "nameLocation": "1230:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6952,
                  "src": "1224:12:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 6920,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6919,
                      "name": "NftId",
                      "nameLocations": [
                        "1224:5:53"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1224:5:53"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1224:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6923,
                  "mutability": "mutable",
                  "name": "dipAmount",
                  "nameLocation": "1254:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6952,
                  "src": "1246:17:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6922,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1246:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6925,
                  "mutability": "mutable",
                  "name": "signatureId",
                  "nameLocation": "1281:11:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6952,
                  "src": "1273:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6924,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1273:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6927,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "1387:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6952,
                  "src": "1372:24:53",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6926,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1372:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1191:211:53"
            },
            "returnParameters": {
              "id": 6929,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1425:0:53"
            },
            "scope": 7109,
            "src": "1161:453:53",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 6988,
              "nodeType": "Block",
              "src": "1886:192:53",
              "statements": [
                {
                  "assignments": [
                    6968
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6968,
                      "mutability": "mutable",
                      "name": "digest",
                      "nameLocation": "1904:6:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 6988,
                      "src": "1896:14:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6967,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1896:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6974,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6970,
                        "name": "stakeId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6957,
                        "src": "1930:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        }
                      },
                      {
                        "id": 6971,
                        "name": "newTarget",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6960,
                        "src": "1939:9:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        }
                      },
                      {
                        "id": 6972,
                        "name": "signatureId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6962,
                        "src": "1950:11:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                          "typeString": "NftId"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6969,
                      "name": "getRestakeDigest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7052,
                      "src": "1913:16:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_NftId_$3353_$_t_userDefinedValueType$_NftId_$3353_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (NftId,NftId,bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 6973,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1913:49:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1896:66:53"
                },
                {
                  "assignments": [
                    6976
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6976,
                      "mutability": "mutable",
                      "name": "signer",
                      "nameLocation": "1980:6:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 6988,
                      "src": "1972:14:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6975,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1972:7:53",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6981,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6978,
                        "name": "digest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6968,
                        "src": "1999:6:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6979,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6964,
                        "src": "2007:9:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 6977,
                      "name": "getSigner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7068,
                      "src": "1989:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_address_$",
                        "typeString": "function (bytes32,bytes calldata) pure returns (address)"
                      }
                    },
                    "id": 6980,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1989:28:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1972:45:53"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6983,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6954,
                        "src": "2046:5:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6984,
                        "name": "signer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6976,
                        "src": "2053:6:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6985,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6964,
                        "src": "2061:9:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 6982,
                      "name": "_processSignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7108,
                      "src": "2028:17:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address,bytes calldata)"
                      }
                    },
                    "id": 6986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2028:43:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6987,
                  "nodeType": "ExpressionStatement",
                  "src": "2028:43:53"
                }
              ]
            },
            "functionSelector": "559f196f",
            "id": 6989,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "processRestakeSignature",
            "nameLocation": "1630:23:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6965,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6954,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "1671:5:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "1663:13:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6953,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1663:7:53",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6957,
                  "mutability": "mutable",
                  "name": "stakeId",
                  "nameLocation": "1692:7:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "1686:13:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 6956,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6955,
                      "name": "NftId",
                      "nameLocations": [
                        "1686:5:53"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1686:5:53"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1686:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6960,
                  "mutability": "mutable",
                  "name": "newTarget",
                  "nameLocation": "1715:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "1709:15:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 6959,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6958,
                      "name": "NftId",
                      "nameLocations": [
                        "1709:5:53"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "1709:5:53"
                    },
                    "referencedDeclaration": 3353,
                    "src": "1709:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6962,
                  "mutability": "mutable",
                  "name": "signatureId",
                  "nameLocation": "1742:11:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "1734:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6961,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1734:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6964,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "1848:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 6989,
                  "src": "1833:24:53",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6963,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1833:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1653:210:53"
            },
            "returnParameters": {
              "id": 6966,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1886:0:53"
            },
            "scope": 7109,
            "src": "1621:457:53",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7019,
              "nodeType": "Block",
              "src": "2257:241:53",
              "statements": [
                {
                  "assignments": [
                    7002
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7002,
                      "mutability": "mutable",
                      "name": "structHash",
                      "nameLocation": "2275:10:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 7019,
                      "src": "2267:18:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7001,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2267:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7012,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 7006,
                            "name": "EIP712_STAKE_TYPE_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6893,
                            "src": "2339:22:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 7007,
                            "name": "target",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6992,
                            "src": "2379:6:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                              "typeString": "NftId"
                            }
                          },
                          {
                            "id": 7008,
                            "name": "dipAmount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6994,
                            "src": "2403:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "id": 7009,
                            "name": "signatureId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6996,
                            "src": "2430:11:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                              "typeString": "NftId"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "id": 7004,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2311:3:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2315:6:53",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "2311:10:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7010,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2311:131:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7003,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "2288:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7011,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2288:155:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2267:176:53"
                },
                {
                  "expression": {
                    "id": 7017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7013,
                      "name": "digest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6999,
                      "src": "2454:6:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 7015,
                          "name": "structHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7002,
                          "src": "2480:10:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 7014,
                        "name": "_hashTypedDataV4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14282,
                        "src": "2463:16:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 7016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2463:28:53",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2454:37:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7018,
                  "nodeType": "ExpressionStatement",
                  "src": "2454:37:53"
                }
              ]
            },
            "functionSelector": "a5de10b0",
            "id": 7020,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStakeDigest",
            "nameLocation": "2094:14:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6992,
                  "mutability": "mutable",
                  "name": "target",
                  "nameLocation": "2124:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7020,
                  "src": "2118:12:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 6991,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6990,
                      "name": "NftId",
                      "nameLocations": [
                        "2118:5:53"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2118:5:53"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2118:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6994,
                  "mutability": "mutable",
                  "name": "dipAmount",
                  "nameLocation": "2148:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7020,
                  "src": "2140:17:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6993,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2140:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6996,
                  "mutability": "mutable",
                  "name": "signatureId",
                  "nameLocation": "2175:11:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7020,
                  "src": "2167:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6995,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2167:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2108:84:53"
            },
            "returnParameters": {
              "id": 7000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6999,
                  "mutability": "mutable",
                  "name": "digest",
                  "nameLocation": "2245:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7020,
                  "src": "2237:14:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2237:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2236:16:53"
            },
            "scope": 7109,
            "src": "2085:413:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7051,
              "nodeType": "Block",
              "src": "2678:244:53",
              "statements": [
                {
                  "assignments": [
                    7034
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7034,
                      "mutability": "mutable",
                      "name": "structHash",
                      "nameLocation": "2696:10:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 7051,
                      "src": "2688:18:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7033,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2688:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7044,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 7038,
                            "name": "EIP712_RESTAKE_TYPE_HASH",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6904,
                            "src": "2760:24:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "id": 7039,
                            "name": "stakeId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7023,
                            "src": "2802:7:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                              "typeString": "NftId"
                            }
                          },
                          {
                            "id": 7040,
                            "name": "newTarget",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7026,
                            "src": "2827:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                              "typeString": "NftId"
                            }
                          },
                          {
                            "id": 7041,
                            "name": "signatureId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7028,
                            "src": "2854:11:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                              "typeString": "NftId"
                            },
                            {
                              "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                              "typeString": "NftId"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "id": 7036,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "2732:3:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7037,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2736:6:53",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "2732:10:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7042,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2732:134:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7035,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "2709:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2709:158:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2688:179:53"
                },
                {
                  "expression": {
                    "id": 7049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7045,
                      "name": "digest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7031,
                      "src": "2878:6:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 7047,
                          "name": "structHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7034,
                          "src": "2904:10:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 7046,
                        "name": "_hashTypedDataV4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14282,
                        "src": "2887:16:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 7048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2887:28:53",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2878:37:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7050,
                  "nodeType": "ExpressionStatement",
                  "src": "2878:37:53"
                }
              ]
            },
            "functionSelector": "2bb7bedd",
            "id": 7052,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRestakeDigest",
            "nameLocation": "2514:16:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7023,
                  "mutability": "mutable",
                  "name": "stakeId",
                  "nameLocation": "2546:7:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7052,
                  "src": "2540:13:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 7022,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7021,
                      "name": "NftId",
                      "nameLocations": [
                        "2540:5:53"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2540:5:53"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2540:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7026,
                  "mutability": "mutable",
                  "name": "newTarget",
                  "nameLocation": "2569:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7052,
                  "src": "2563:15:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                    "typeString": "NftId"
                  },
                  "typeName": {
                    "id": 7025,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7024,
                      "name": "NftId",
                      "nameLocations": [
                        "2563:5:53"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3353,
                      "src": "2563:5:53"
                    },
                    "referencedDeclaration": 3353,
                    "src": "2563:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_NftId_$3353",
                      "typeString": "NftId"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7028,
                  "mutability": "mutable",
                  "name": "signatureId",
                  "nameLocation": "2596:11:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7052,
                  "src": "2588:19:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7027,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2588:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2530:83:53"
            },
            "returnParameters": {
              "id": 7032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7031,
                  "mutability": "mutable",
                  "name": "digest",
                  "nameLocation": "2666:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7052,
                  "src": "2658:14:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7030,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2658:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2657:16:53"
            },
            "scope": 7109,
            "src": "2505:417:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7067,
              "nodeType": "Block",
              "src": "3076:56:53",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7063,
                        "name": "digest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7054,
                        "src": "3107:6:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 7064,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7056,
                        "src": "3115:9:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "expression": {
                        "id": 7061,
                        "name": "ECDSA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14129,
                        "src": "3093:5:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ECDSA_$14129_$",
                          "typeString": "type(library ECDSA)"
                        }
                      },
                      "id": 7062,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3099:7:53",
                      "memberName": "recover",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13895,
                      "src": "3093:13:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$",
                        "typeString": "function (bytes32,bytes memory) pure returns (address)"
                      }
                    },
                    "id": 7065,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3093:32:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 7060,
                  "id": 7066,
                  "nodeType": "Return",
                  "src": "3086:39:53"
                }
              ]
            },
            "functionSelector": "f7b2ec0d",
            "id": 7068,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getSigner",
            "nameLocation": "2938:9:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7057,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7054,
                  "mutability": "mutable",
                  "name": "digest",
                  "nameLocation": "2965:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7068,
                  "src": "2957:14:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7053,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2957:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7056,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "2996:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7068,
                  "src": "2981:24:53",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 7055,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2981:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2947:64:53"
            },
            "returnParameters": {
              "id": 7060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7059,
                  "mutability": "mutable",
                  "name": "signer",
                  "nameLocation": "3064:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7068,
                  "src": "3056:14:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7058,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3056:7:53",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3055:16:53"
            },
            "scope": 7109,
            "src": "2929:203:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7107,
              "nodeType": "Block",
              "src": "3274:273:53",
              "statements": [
                {
                  "assignments": [
                    7078
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7078,
                      "mutability": "mutable",
                      "name": "signatureHash",
                      "nameLocation": "3292:13:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 7107,
                      "src": "3284:21:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7077,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3284:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7085,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 7082,
                            "name": "signature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7074,
                            "src": "3329:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_calldata_ptr",
                              "typeString": "bytes calldata"
                            }
                          ],
                          "expression": {
                            "id": 7080,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "3318:3:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7081,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3322:6:53",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "3318:10:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7083,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3318:21:53",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7079,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "3308:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7084,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3308:32:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3284:56:53"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "3358:32:53",
                        "subExpression": {
                          "baseExpression": {
                            "id": 7087,
                            "name": "_signatureIsUsed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6908,
                            "src": "3359:16:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                              "typeString": "mapping(bytes32 => bool)"
                            }
                          },
                          "id": 7089,
                          "indexExpression": {
                            "id": 7088,
                            "name": "signatureHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7078,
                            "src": "3376:13:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3359:31:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a534d482d3030313a5349474e41545552455f55534544",
                        "id": 7091,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3392:30:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_571ee048f8916091e654f137a317cec6f8243f5a00bebcb0fbf950979771e0ee",
                          "typeString": "literal_string \"ERROR:SMH-001:SIGNATURE_USED\""
                        },
                        "value": "ERROR:SMH-001:SIGNATURE_USED"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_571ee048f8916091e654f137a317cec6f8243f5a00bebcb0fbf950979771e0ee",
                          "typeString": "literal_string \"ERROR:SMH-001:SIGNATURE_USED\""
                        }
                      ],
                      "id": 7086,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "3350:7:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7092,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3350:73:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7093,
                  "nodeType": "ExpressionStatement",
                  "src": "3350:73:53"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 7097,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7095,
                          "name": "owner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7070,
                          "src": "3441:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 7096,
                          "name": "signer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7072,
                          "src": "3450:6:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3441:15:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a534d482d3030323a5349474e41545552455f494e56414c4944",
                        "id": 7098,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3458:33:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_19ea9c3c2c3f6ecc216ac82a846e83964e9b4916f63eff061c99efe3361b849c",
                          "typeString": "literal_string \"ERROR:SMH-002:SIGNATURE_INVALID\""
                        },
                        "value": "ERROR:SMH-002:SIGNATURE_INVALID"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_19ea9c3c2c3f6ecc216ac82a846e83964e9b4916f63eff061c99efe3361b849c",
                          "typeString": "literal_string \"ERROR:SMH-002:SIGNATURE_INVALID\""
                        }
                      ],
                      "id": 7094,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "3433:7:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3433:59:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7100,
                  "nodeType": "ExpressionStatement",
                  "src": "3433:59:53"
                },
                {
                  "expression": {
                    "id": 7105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 7101,
                        "name": "_signatureIsUsed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6908,
                        "src": "3502:16:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 7103,
                      "indexExpression": {
                        "id": 7102,
                        "name": "signatureHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7078,
                        "src": "3519:13:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3502:31:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 7104,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3536:4:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "3502:38:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7106,
                  "nodeType": "ExpressionStatement",
                  "src": "3502:38:53"
                }
              ]
            },
            "id": 7108,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_processSignature",
            "nameLocation": "3148:17:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7075,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7070,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "3183:5:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7108,
                  "src": "3175:13:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7069,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3175:7:53",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7072,
                  "mutability": "mutable",
                  "name": "signer",
                  "nameLocation": "3206:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7108,
                  "src": "3198:14:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7071,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3198:7:53",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7074,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "3237:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 7108,
                  "src": "3222:24:53",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 7073,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3222:5:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3165:87:53"
            },
            "returnParameters": {
              "id": 7076,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3274:0:53"
            },
            "scope": 7109,
            "src": "3139:408:53",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 7110,
        "src": "271:3282:53",
        "usedErrors": []
      }
    ],
    "src": "39:3515:53"
  },
  "bytecode": "61014060405234801561001157600080fd5b50604080518082018252600f81526e45746865726973635374616b696e6760881b6020808301918252835180850190945260018452603160f81b908401528151902060e08190527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66101008190524660a0529192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6100f68184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c052610120525061010b92505050565b60805160a05160c05160e0516101005161012051610bc761015a6000396000610567015260006105b601526000610591015260006104ea015260006105140152600061053e0152610bc76000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80639f696374116100665780639f69637414610108578063a5de10b014610110578063e94a62ea14610123578063f7b2ec0d14610136578063fd0702961461016157600080fd5b80632bb7bedd14610098578063559f196f146100be5780635cc33321146100d35780638452a19614610100575b600080fd5b6100ab6100a6366004610876565b61018f565b6040519081526020015b60405180910390f35b6100d16100cc36600461090b565b610225565b005b6100f3604051806040016040528060018152602001603160f81b81525081565b6040516100b591906109ae565b6100f3610259565b6100f3610275565b6100ab61011e3660046109e1565b610291565b6100d1610131366004610a14565b6102fd565b610149610144366004610a6e565b61030a565b6040516001600160a01b0390911681526020016100b5565b6100f36040518060400160405280600f81526020016e45746865726973635374616b696e6760881b81525081565b6000806040518060600160405280603c8152602001610b1c603c91396040516020016101bb9190610aba565b60408051601f198184030181528282528051602091820120908301526001600160601b0380881691830191909152851660608201526080810184905260a0015b60405160208183030381529060405280519060200120905061021c81610354565b95945050505050565b600061023286868661018f565b9050600061024182858561030a565b905061024f888286866103a8565b5050505050505050565b6040518060600160405280603c8152602001610b1c603c913981565b6040518060600160405280603a8152602001610b58603a913981565b6000806040518060600160405280603a8152602001610b58603a91396040516020016102bd9190610aba565b60408051601f198184030181528282528051602091820120908301526001600160601b03871690820152606081018590526080810184905260a0016101fb565b6000610232868686610291565b600061034c8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104b992505050565b949350505050565b60006103a26103616104dd565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600082826040516020016103bd929190610ad6565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060ff16156104395760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a534d482d3030313a5349474e41545552455f555345440000000060448201526064015b60405180910390fd5b836001600160a01b0316856001600160a01b03161461049a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a534d482d3030323a5349474e41545552455f494e56414c4944006044820152606401610430565b6000908152602081905260409020805460ff1916600117905550505050565b60008060006104c88585610604565b915091506104d581610649565b509392505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561053657507f000000000000000000000000000000000000000000000000000000000000000046145b1561056057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080825160410361063a5760208301516040840151606085015160001a61062e87828585610796565b94509450505050610642565b506000905060025b9250929050565b600081600481111561065d5761065d610b05565b036106655750565b600181600481111561067957610679610b05565b036106c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610430565b60028160048111156106da576106da610b05565b036107275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610430565b600381600481111561073b5761073b610b05565b036107935760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610430565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156107cd5750600090506003610851565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610821573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661084a57600060019250925050610851565b9150600090505b94509492505050565b80356001600160601b038116811461087157600080fd5b919050565b60008060006060848603121561088b57600080fd5b6108948461085a565b92506108a26020850161085a565b9150604084013590509250925092565b80356001600160a01b038116811461087157600080fd5b60008083601f8401126108db57600080fd5b50813567ffffffffffffffff8111156108f357600080fd5b60208301915083602082850101111561064257600080fd5b60008060008060008060a0878903121561092457600080fd5b61092d876108b2565b955061093b6020880161085a565b94506109496040880161085a565b935060608701359250608087013567ffffffffffffffff81111561096c57600080fd5b61097889828a016108c9565b979a9699509497509295939492505050565b60005b838110156109a557818101518382015260200161098d565b50506000910152565b60208152600082518060208401526109cd81604085016020870161098a565b601f01601f19169190910160400192915050565b6000806000606084860312156109f657600080fd5b6109ff8461085a565b95602085013595506040909401359392505050565b60008060008060008060a08789031215610a2d57600080fd5b610a36876108b2565b9550610a446020880161085a565b94506040870135935060608701359250608087013567ffffffffffffffff81111561096c57600080fd5b600080600060408486031215610a8357600080fd5b83359250602084013567ffffffffffffffff811115610aa157600080fd5b610aad868287016108c9565b9497909650939450505050565b60008251610acc81846020870161098a565b9190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052602160045260246000fdfe52657374616b652875696e743936207374616b6549642c75696e743936206e65775461726765742c62797465733332207369676e61747572654964295374616b652875696e743936207461726765742c75696e7432353620646970416d6f756e742c62797465733332207369676e6174757265496429a2646970667358221220835d35a7b483d657c0594fb493834a8d35d1bd95c06189aba98080c93ab87d1f64736f6c63430008130033",
  "bytecodeSha1": "8cdaf5133733e49d7f953c64e0584d3bd4efa4c5",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.19+commit.7dd6d404"
  },
  "contractName": "StakingMessageHelper",
  "coverageMap": {
    "branches": {
      "25": {},
      "26": {
        "ECDSA._throwError": {
          "24": [
            638,
            667,
            false
          ],
          "25": [
            734,
            772,
            false
          ],
          "26": [
            843,
            887,
            false
          ],
          "27": [
            965,
            1004,
            false
          ]
        },
        "ECDSA.tryRecover": {
          "23": [
            2263,
            2285,
            false
          ],
          "28": [
            6106,
            6185,
            false
          ],
          "29": [
            6412,
            6432,
            false
          ]
        }
      },
      "27": {
        "EIP712._domainSeparatorV4": {
          "30": [
            3228,
            3257,
            false
          ],
          "31": [
            3261,
            3294,
            false
          ]
        }
      },
      "30": {},
      "34": {},
      "53": {
        "StakingMessageHelper._processSignature": {
          "21": [
            3358,
            3390,
            true
          ],
          "22": [
            3441,
            3456,
            true
          ]
        }
      }
    },
    "statements": {
      "25": {},
      "26": {
        "ECDSA._throwError": {
          "15": [
            788,
            822
          ],
          "16": [
            903,
            944
          ],
          "17": [
            1020,
            1064
          ]
        },
        "ECDSA.recover": {
          "8": [
            3837,
            3855
          ],
          "9": [
            3865,
            3881
          ]
        },
        "ECDSA.toTypedDataHash": {
          "4": [
            8453,
            8528
          ]
        },
        "ECDSA.tryRecover": {
          "13": [
            2739,
            2771
          ],
          "14": [
            2802,
            2858
          ],
          "18": [
            6201,
            6252
          ],
          "19": [
            6448,
            6498
          ],
          "20": [
            6519,
            6556
          ]
        }
      },
      "27": {
        "EIP712._buildDomainSeparator": {
          "11": [
            3625,
            3716
          ]
        },
        "EIP712._domainSeparatorV4": {
          "10": [
            3310,
            3341
          ],
          "12": [
            3372,
            3443
          ]
        },
        "EIP712._hashTypedDataV4": {
          "3": [
            4444,
            4506
          ]
        }
      },
      "30": {},
      "34": {},
      "53": {
        "StakingMessageHelper._processSignature": {
          "5": [
            3350,
            3423
          ],
          "6": [
            3433,
            3492
          ],
          "7": [
            3502,
            3540
          ]
        },
        "StakingMessageHelper.getRestakeDigest": {
          "0": [
            2878,
            2915
          ]
        },
        "StakingMessageHelper.getSigner": {
          "2": [
            3086,
            3125
          ]
        },
        "StakingMessageHelper.processRestakeSignature": {
          "1": [
            2028,
            2071
          ]
        }
      }
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.8.2/ECDSA",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/EIP712",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/Math",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/Strings"
  ],
  "deployedBytecode": "608060405234801561001057600080fd5b50600436106100935760003560e01c80639f696374116100665780639f69637414610108578063a5de10b014610110578063e94a62ea14610123578063f7b2ec0d14610136578063fd0702961461016157600080fd5b80632bb7bedd14610098578063559f196f146100be5780635cc33321146100d35780638452a19614610100575b600080fd5b6100ab6100a6366004610876565b61018f565b6040519081526020015b60405180910390f35b6100d16100cc36600461090b565b610225565b005b6100f3604051806040016040528060018152602001603160f81b81525081565b6040516100b591906109ae565b6100f3610259565b6100f3610275565b6100ab61011e3660046109e1565b610291565b6100d1610131366004610a14565b6102fd565b610149610144366004610a6e565b61030a565b6040516001600160a01b0390911681526020016100b5565b6100f36040518060400160405280600f81526020016e45746865726973635374616b696e6760881b81525081565b6000806040518060600160405280603c8152602001610b1c603c91396040516020016101bb9190610aba565b60408051601f198184030181528282528051602091820120908301526001600160601b0380881691830191909152851660608201526080810184905260a0015b60405160208183030381529060405280519060200120905061021c81610354565b95945050505050565b600061023286868661018f565b9050600061024182858561030a565b905061024f888286866103a8565b5050505050505050565b6040518060600160405280603c8152602001610b1c603c913981565b6040518060600160405280603a8152602001610b58603a913981565b6000806040518060600160405280603a8152602001610b58603a91396040516020016102bd9190610aba565b60408051601f198184030181528282528051602091820120908301526001600160601b03871690820152606081018590526080810184905260a0016101fb565b6000610232868686610291565b600061034c8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104b992505050565b949350505050565b60006103a26103616104dd565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b92915050565b600082826040516020016103bd929190610ad6565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060ff16156104395760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a534d482d3030313a5349474e41545552455f555345440000000060448201526064015b60405180910390fd5b836001600160a01b0316856001600160a01b03161461049a5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a534d482d3030323a5349474e41545552455f494e56414c4944006044820152606401610430565b6000908152602081905260409020805460ff1916600117905550505050565b60008060006104c88585610604565b915091506104d581610649565b509392505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561053657507f000000000000000000000000000000000000000000000000000000000000000046145b1561056057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080825160410361063a5760208301516040840151606085015160001a61062e87828585610796565b94509450505050610642565b506000905060025b9250929050565b600081600481111561065d5761065d610b05565b036106655750565b600181600481111561067957610679610b05565b036106c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610430565b60028160048111156106da576106da610b05565b036107275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610430565b600381600481111561073b5761073b610b05565b036107935760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610430565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156107cd5750600090506003610851565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610821573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661084a57600060019250925050610851565b9150600090505b94509492505050565b80356001600160601b038116811461087157600080fd5b919050565b60008060006060848603121561088b57600080fd5b6108948461085a565b92506108a26020850161085a565b9150604084013590509250925092565b80356001600160a01b038116811461087157600080fd5b60008083601f8401126108db57600080fd5b50813567ffffffffffffffff8111156108f357600080fd5b60208301915083602082850101111561064257600080fd5b60008060008060008060a0878903121561092457600080fd5b61092d876108b2565b955061093b6020880161085a565b94506109496040880161085a565b935060608701359250608087013567ffffffffffffffff81111561096c57600080fd5b61097889828a016108c9565b979a9699509497509295939492505050565b60005b838110156109a557818101518382015260200161098d565b50506000910152565b60208152600082518060208401526109cd81604085016020870161098a565b601f01601f19169190910160400192915050565b6000806000606084860312156109f657600080fd5b6109ff8461085a565b95602085013595506040909401359392505050565b60008060008060008060a08789031215610a2d57600080fd5b610a36876108b2565b9550610a446020880161085a565b94506040870135935060608701359250608087013567ffffffffffffffff81111561096c57600080fd5b600080600060408486031215610a8357600080fd5b83359250602084013567ffffffffffffffff811115610aa157600080fd5b610aad868287016108c9565b9497909650939450505050565b60008251610acc81846020870161098a565b9190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052602160045260246000fdfe52657374616b652875696e743936207374616b6549642c75696e743936206e65775461726765742c62797465733332207369676e61747572654964295374616b652875696e743936207461726765742c75696e7432353620646970416d6f756e742c62797465733332207369676e6174757265496429a2646970667358221220835d35a7b483d657c0594fb493834a8d35d1bd95c06189aba98080c93ab87d1f64736f6c63430008130033",
  "deployedSourceMap": "271:3282:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2505:417;;;;;;:::i;:::-;;:::i;:::-;;;787:25:67;;;775:2;760:18;2505:417:53;;;;;;;;1621:457;;;;;;:::i;:::-;;:::i;:::-;;389:50;;;;;;;;;;;;;;;-1:-1:-1;;;389:50:53;;;;;;;;;;;;:::i;727:107::-;;;:::i;515:103::-;;;:::i;2085:413::-;;;;;;:::i;:::-;;:::i;1161:453::-;;;;;;:::i;:::-;;:::i;2929:203::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4568:32:67;;;4550:51;;4538:2;4523:18;2929:203:53;4404::67;322:61:53;;;;;;;;;;;;;;;-1:-1:-1;;;322:61:53;;;;;2505:417;2658:14;2688:18;919:19;;;;;;;;;;;;;;;;;902:37;;;;;;;;:::i;:::-;;;;-1:-1:-1;;902:37:53;;;;;;;;;892:48;;902:37;892:48;;;;2732:134;;;5187:25:67;-1:-1:-1;;;;;5293:15:67;;;5273:18;;;5266:43;;;;5345:15;;5325:18;;;5318:43;5377:18;;;5370:34;;;5159:19;;2732:134:53;;;;;;;;;;;;;2709:158;;;;;;2688:179;;2887:28;2904:10;2887:16;:28::i;:::-;2878:37;2505:417;-1:-1:-1;;;;;2505:417:53:o;1621:457::-;1896:14;1913:49;1930:7;1939:9;1950:11;1913:16;:49::i;:::-;1896:66;;1972:14;1989:28;1999:6;2007:9;;1989;:28::i;:::-;1972:45;;2028:43;2046:5;2053:6;2061:9;;2028:17;:43::i;:::-;1886:192;;1621:457;;;;;;:::o;727:107::-;;;;;;;;;;;;;;;;;;;:::o;515:103::-;;;;;;;;;;;;;;;;;;;:::o;2085:413::-;2237:14;2267:18;701:17;;;;;;;;;;;;;;;;;684:35;;;;;;;;:::i;:::-;;;;-1:-1:-1;;684:35:53;;;;;;;;;674:46;;684:35;674:46;;;;2311:131;;;5671:25:67;-1:-1:-1;;;;;5732:39:67;;5712:18;;;5705:67;5788:18;;;5781:34;;;5831:18;;;5824:34;;;5643:19;;2311:131:53;5415:449:67;1161:453:53;1435:14;1452:46;1467:6;1475:9;1486:11;1452:14;:46::i;2929:203::-;3056:14;3093:32;3107:6;3115:9;;3093:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3093:13:53;;-1:-1:-1;;;3093:32:53:i;:::-;3086:39;2929:203;-1:-1:-1;;;;2929:203:53:o;4348:165:27:-;4425:7;4451:55;4473:20;:18;:20::i;:::-;4495:10;8470:57:26;;-1:-1:-1;;;8470:57:26;;;7237:27:67;7280:11;;;7273:27;;;7316:12;;;7309:28;;;8434:7:26;;7353:12:67;;8470:57:26;;;;;;;;;;;;8460:68;;;;;;8453:75;;8341:194;;;;;4451:55:27;4444:62;4348:165;-1:-1:-1;;4348:165:27:o;3139:408:53:-;3284:21;3329:9;;3318:21;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3318:21:53;;;;;;;;;3308:32;;3318:21;3308:32;;;;3359:16;:31;;;;;;;;;;3308:32;;-1:-1:-1;3359:31:53;;3358:32;3350:73;;;;-1:-1:-1;;;3350:73:53;;6464:2:67;3350:73:53;;;6446:21:67;6503:2;6483:18;;;6476:30;6542;6522:18;;;6515:58;6590:18;;3350:73:53;;;;;;;;;3450:6;-1:-1:-1;;;;;3441:15:53;:5;-1:-1:-1;;;;;3441:15:53;;3433:59;;;;-1:-1:-1;;;3433:59:53;;6821:2:67;3433:59:53;;;6803:21:67;6860:2;6840:18;;;6833:30;6899:33;6879:18;;;6872:61;6950:18;;3433:59:53;6619:355:67;3433:59:53;3502:16;:31;;;;;;;;;;:38;;-1:-1:-1;;3502:38:53;3536:4;3502:38;;;-1:-1:-1;;;;3139:408:53:o;3661:227:26:-;3739:7;3759:17;3778:18;3800:27;3811:4;3817:9;3800:10;:27::i;:::-;3758:69;;;;3837:18;3849:5;3837:11;:18::i;:::-;-1:-1:-1;3872:9:26;3661:227;-1:-1:-1;;;3661:227:26:o;3152:308:27:-;3205:7;3236:4;-1:-1:-1;;;;;3245:12:27;3228:29;;:66;;;;;3278:16;3261:13;:33;3228:66;3224:230;;;-1:-1:-1;3317:24:27;;3152:308::o;3224:230::-;-1:-1:-1;3642:73:27;;;3401:10;3642:73;;;;8883:25:67;;;;3413:12:27;8924:18:67;;;8917:34;3427:15:27;8967:18:67;;;8960:34;3686:13:27;9010:18:67;;;9003:34;3709:4:27;9053:19:67;;;;9046:61;;;;3642:73:27;;;;;;;;;;8855:19:67;;;;3642:73:27;;;3632:84;;;;;;3152:308::o;2145:730:26:-;2226:7;2235:12;2263:9;:16;2283:2;2263:22;2259:610;;2599:4;2584:20;;2578:27;2648:4;2633:20;;2627:27;2705:4;2690:20;;2684:27;2301:9;2676:36;2746:25;2757:4;2676:36;2578:27;2627;2746:10;:25::i;:::-;2739:32;;;;;;;;;2259:610;-1:-1:-1;2818:1:26;;-1:-1:-1;2822:35:26;2259:610;2145:730;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:26;;7710:2:67;788:34:26;;;7692:21:67;7749:2;7729:18;;;7722:30;7788:26;7768:18;;;7761:54;7832:18;;788:34:26;7508:348:67;730:345:26;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:26;;8063:2:67;903:41:26;;;8045:21:67;8102:2;8082:18;;;8075:30;8141:33;8121:18;;;8114:61;8192:18;;903:41:26;7861:355:67;839:236:26;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:26;;8423:2:67;1020:44:26;;;8405:21:67;8462:2;8442:18;;;8435:30;8501:34;8481:18;;;8474:62;-1:-1:-1;;;8552:18:67;;;8545:32;8594:19;;1020:44:26;8221:398:67;961:114:26;570:511;:::o;5069:1494::-;5195:7;;6119:66;6106:79;;6102:161;;;-1:-1:-1;6217:1:26;;-1:-1:-1;6221:30:26;6201:51;;6102:161;6374:24;;;6357:14;6374:24;;;;;;;;;9345:25:67;;;9418:4;9406:17;;9386:18;;;9379:45;;;;9440:18;;;9433:34;;;9483:18;;;9476:34;;;6374:24:26;;9317:19:67;;6374:24:26;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6374:24:26;;-1:-1:-1;;6374:24:26;;;-1:-1:-1;;;;;;;6412:20:26;;6408:101;;6464:1;6468:29;6448:50;;;;;;;6408:101;6527:6;-1:-1:-1;6535:20:26;;-1:-1:-1;5069:1494:26;;;;;;;;:::o;14:199:67:-;101:20;;-1:-1:-1;;;;;150:38:67;;140:49;;130:77;;203:1;200;193:12;130:77;14:199;;;:::o;218:418::-;347:6;355;363;416:2;404:9;395:7;391:23;387:32;384:52;;;432:1;429;422:12;384:52;455:48;493:9;455:48;:::i;:::-;445:58;;522:57;575:2;564:9;560:18;522:57;:::i;:::-;512:67;;626:2;615:9;611:18;598:32;588:42;;218:418;;;;;:::o;823:173::-;891:20;;-1:-1:-1;;;;;940:31:67;;930:42;;920:70;;986:1;983;976:12;1001:347;1052:8;1062:6;1116:3;1109:4;1101:6;1097:17;1093:27;1083:55;;1134:1;1131;1124:12;1083:55;-1:-1:-1;1157:20:67;;1200:18;1189:30;;1186:50;;;1232:1;1229;1222:12;1186:50;1269:4;1261:6;1257:17;1245:29;;1321:3;1314:4;1305:6;1297;1293:19;1289:30;1286:39;1283:59;;;1338:1;1335;1328:12;1353:791;1511:6;1519;1527;1535;1543;1551;1604:3;1592:9;1583:7;1579:23;1575:33;1572:53;;;1621:1;1618;1611:12;1572:53;1644:29;1663:9;1644:29;:::i;:::-;1634:39;;1692:57;1745:2;1734:9;1730:18;1692:57;:::i;:::-;1682:67;;1768:57;1821:2;1810:9;1806:18;1768:57;:::i;:::-;1758:67;;1872:2;1861:9;1857:18;1844:32;1834:42;;1927:3;1916:9;1912:19;1899:33;1955:18;1947:6;1944:30;1941:50;;;1987:1;1984;1977:12;1941:50;2026:58;2076:7;2067:6;2056:9;2052:22;2026:58;:::i;:::-;1353:791;;;;-1:-1:-1;1353:791:67;;-1:-1:-1;1353:791:67;;2103:8;;1353:791;-1:-1:-1;;;1353:791:67:o;2149:250::-;2234:1;2244:113;2258:6;2255:1;2252:13;2244:113;;;2334:11;;;2328:18;2315:11;;;2308:39;2280:2;2273:10;2244:113;;;-1:-1:-1;;2391:1:67;2373:16;;2366:27;2149:250::o;2404:396::-;2553:2;2542:9;2535:21;2516:4;2585:6;2579:13;2628:6;2623:2;2612:9;2608:18;2601:34;2644:79;2716:6;2711:2;2700:9;2696:18;2691:2;2683:6;2679:15;2644:79;:::i;:::-;2784:2;2763:15;-1:-1:-1;;2759:29:67;2744:45;;;;2791:2;2740:54;;2404:396;-1:-1:-1;;2404:396:67:o;2805:367::-;2908:6;2916;2924;2977:2;2965:9;2956:7;2952:23;2948:32;2945:52;;;2993:1;2990;2983:12;2945:52;3016:48;3054:9;3016:48;:::i;:::-;3006:58;3111:2;3096:18;;3083:32;;-1:-1:-1;3162:2:67;3147:18;;;3134:32;;2805:367;-1:-1:-1;;;2805:367:67:o;3177:740::-;3309:6;3317;3325;3333;3341;3349;3402:3;3390:9;3381:7;3377:23;3373:33;3370:53;;;3419:1;3416;3409:12;3370:53;3442:29;3461:9;3442:29;:::i;:::-;3432:39;;3490:57;3543:2;3532:9;3528:18;3490:57;:::i;:::-;3480:67;;3594:2;3583:9;3579:18;3566:32;3556:42;;3645:2;3634:9;3630:18;3617:32;3607:42;;3700:3;3689:9;3685:19;3672:33;3728:18;3720:6;3717:30;3714:50;;;3760:1;3757;3750:12;3922:477;4001:6;4009;4017;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4122:9;4109:23;4099:33;;4183:2;4172:9;4168:18;4155:32;4210:18;4202:6;4199:30;4196:50;;;4242:1;4239;4232:12;4196:50;4281:58;4331:7;4322:6;4311:9;4307:22;4281:58;:::i;:::-;3922:477;;4358:8;;-1:-1:-1;4255:84:67;;-1:-1:-1;;;;3922:477:67:o;4612:289::-;4743:3;4781:6;4775:13;4797:66;4856:6;4851:3;4844:4;4836:6;4832:17;4797:66;:::i;:::-;4879:16;;;;;4612:289;-1:-1:-1;;4612:289:67:o;5869:388::-;6026:2;6015:9;6008:21;6065:6;6060:2;6049:9;6045:18;6038:34;6122:6;6114;6109:2;6098:9;6094:18;6081:48;6178:1;6149:22;;;6173:2;6145:31;;;6138:42;;;;6241:2;6220:15;;;-1:-1:-1;;6216:29:67;6201:45;6197:54;;5869:388;-1:-1:-1;5869:388:67:o;7376:127::-;7437:10;7432:3;7428:20;7425:1;7418:31;7468:4;7465:1;7458:15;7492:4;7489:1;7482:15",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    271,
    3553
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9F696374 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x9F696374 EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0xA5DE10B0 EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0xE94A62EA EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0xF7B2EC0D EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0xFD070296 EQ PUSH2 0x161 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2BB7BEDD EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x559F196F EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x5CC33321 EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0x8452A196 EQ PUSH2 0x100 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0xA6 CALLDATASIZE PUSH1 0x4 PUSH2 0x876 JUMP JUMPDEST PUSH2 0x18F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD1 PUSH2 0xCC CALLDATASIZE PUSH1 0x4 PUSH2 0x90B JUMP JUMPDEST PUSH2 0x225 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x9AE JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x259 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x275 JUMP JUMPDEST PUSH2 0xAB PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x9E1 JUMP JUMPDEST PUSH2 0x291 JUMP JUMPDEST PUSH2 0xD1 PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0xA14 JUMP JUMPDEST PUSH2 0x2FD JUMP JUMPDEST PUSH2 0x149 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0xA6E JUMP JUMPDEST PUSH2 0x30A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB5 JUMP JUMPDEST PUSH2 0xF3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x45746865726973635374616B696E67 PUSH1 0x88 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1C PUSH1 0x3C SWAP2 CODECOPY PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1BB SWAP2 SWAP1 PUSH2 0xABA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 SWAP1 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP9 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x21C DUP2 PUSH2 0x354 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x232 DUP7 DUP7 DUP7 PUSH2 0x18F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x241 DUP3 DUP6 DUP6 PUSH2 0x30A JUMP JUMPDEST SWAP1 POP PUSH2 0x24F DUP9 DUP3 DUP7 DUP7 PUSH2 0x3A8 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1C PUSH1 0x3C SWAP2 CODECOPY DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB58 PUSH1 0x3A SWAP2 CODECOPY DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3A DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB58 PUSH1 0x3A SWAP2 CODECOPY PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0xABA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 SWAP1 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP8 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH2 0x1FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x232 DUP7 DUP7 DUP7 PUSH2 0x291 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34C DUP5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x4B9 SWAP3 POP POP POP JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A2 PUSH2 0x361 PUSH2 0x4DD JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3BD SWAP3 SWAP2 SWAP1 PUSH2 0xAD6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE SWAP3 DUP4 SWAP1 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x439 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A534D482D3030313A5349474E41545552455F5553454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x49A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A534D482D3030323A5349474E41545552455F494E56414C494400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x430 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x4C8 DUP6 DUP6 PUSH2 0x604 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x4D5 DUP2 PUSH2 0x649 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x536 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x560 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0x63A JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x62E DUP8 DUP3 DUP6 DUP6 PUSH2 0x796 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x642 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x65D JUMPI PUSH2 0x65D PUSH2 0xB05 JUMP JUMPDEST SUB PUSH2 0x665 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x679 JUMPI PUSH2 0x679 PUSH2 0xB05 JUMP JUMPDEST SUB PUSH2 0x6C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x430 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x6DA JUMPI PUSH2 0x6DA PUSH2 0xB05 JUMP JUMPDEST SUB PUSH2 0x727 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x430 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x73B JUMPI PUSH2 0x73B PUSH2 0xB05 JUMP JUMPDEST SUB PUSH2 0x793 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x430 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x7CD JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x851 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x821 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x84A JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x851 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x88B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x894 DUP5 PUSH2 0x85A JUMP JUMPDEST SWAP3 POP PUSH2 0x8A2 PUSH1 0x20 DUP6 ADD PUSH2 0x85A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x8DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x642 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x924 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x92D DUP8 PUSH2 0x8B2 JUMP JUMPDEST SWAP6 POP PUSH2 0x93B PUSH1 0x20 DUP9 ADD PUSH2 0x85A JUMP JUMPDEST SWAP5 POP PUSH2 0x949 PUSH1 0x40 DUP9 ADD PUSH2 0x85A JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x96C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x978 DUP10 DUP3 DUP11 ADD PUSH2 0x8C9 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9A5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x98D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x9CD DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x98A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x9F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9FF DUP5 PUSH2 0x85A JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xA2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA36 DUP8 PUSH2 0x8B2 JUMP JUMPDEST SWAP6 POP PUSH2 0xA44 PUSH1 0x20 DUP9 ADD PUSH2 0x85A JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x96C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xA83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAAD DUP7 DUP3 DUP8 ADD PUSH2 0x8C9 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xACC DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x98A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x40 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x40 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID MSTORE PUSH6 0x7374616B6528 PUSH22 0x696E743936207374616B6549642C75696E743936206E PUSH6 0x775461726765 PUSH21 0x2C62797465733332207369676E6174757265496429 MSTORE8 PUSH21 0x616B652875696E743936207461726765742C75696E PUSH21 0x32353620646970416D6F756E742C62797465733332 KECCAK256 PUSH20 0x69676E6174757265496429A26469706673582212 KECCAK256 DUP4 0x5D CALLDATALOAD 0xA7 0xB4 DUP4 0xD6 JUMPI 0xC0 MSIZE 0x4F 0xB4 SWAP4 DUP4 0x4A DUP14 CALLDATALOAD 0xD1 0xBD SWAP6 0xC0 PUSH2 0x89AB 0xA9 DUP1 DUP1 0xC9 GASPRICE 0xB8 PUSH30 0x1F64736F6C63430008130033000000000000000000000000000000000000 ",
  "pcMap": {
    "0": {
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "5": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "CALLVALUE",
      "path": "53"
    },
    "6": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "7": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "ISZERO",
      "path": "53"
    },
    "8": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x10"
    },
    "11": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "12": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "14": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "15": {
      "dev": "Cannot send ether to nonpayable function",
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "REVERT",
      "path": "53"
    },
    "16": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "17": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "POP",
      "path": "53"
    },
    "18": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "20": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "CALLDATASIZE",
      "path": "53"
    },
    "21": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "LT",
      "path": "53"
    },
    "22": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x93"
    },
    "25": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "26": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "28": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "CALLDATALOAD",
      "path": "53"
    },
    "29": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0xE0"
    },
    "31": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "SHR",
      "path": "53"
    },
    "32": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "33": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0x9F696374"
    },
    "38": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "GT",
      "path": "53"
    },
    "39": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x66"
    },
    "42": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "43": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "44": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0x9F696374"
    },
    "49": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "50": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x108"
    },
    "53": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "54": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "55": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0xA5DE10B0"
    },
    "60": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "61": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x110"
    },
    "64": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "65": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "66": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0xE94A62EA"
    },
    "71": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "72": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x123"
    },
    "75": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "76": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "77": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0xF7B2EC0D"
    },
    "82": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "83": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x136"
    },
    "86": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "87": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "88": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0xFD070296"
    },
    "93": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "94": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x161"
    },
    "97": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "98": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "100": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "101": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "REVERT",
      "path": "53"
    },
    "102": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "103": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "104": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0x2BB7BEDD"
    },
    "109": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "110": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x98"
    },
    "113": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "114": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "115": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0x559F196F"
    },
    "120": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "121": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xBE"
    },
    "124": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "125": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "126": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0x5CC33321"
    },
    "131": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "132": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xD3"
    },
    "135": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "136": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "137": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH4",
      "path": "53",
      "value": "0x8452A196"
    },
    "142": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "EQ",
      "path": "53"
    },
    "143": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x100"
    },
    "146": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "147": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "148": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "150": {
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "DUP1",
      "path": "53"
    },
    "151": {
      "first_revert": true,
      "fn": null,
      "offset": [
        271,
        3553
      ],
      "op": "REVERT",
      "path": "53"
    },
    "152": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "153": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xAB"
    },
    "156": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xA6"
    },
    "159": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "CALLDATASIZE",
      "path": "53"
    },
    "160": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "162": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x876"
    },
    "165": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "jump": "i",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMP",
      "path": "53"
    },
    "166": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "167": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x18F"
    },
    "170": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "jump": "i",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMP",
      "path": "53"
    },
    "171": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "172": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "174": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "175": {
      "op": "SWAP1"
    },
    "176": {
      "op": "DUP2"
    },
    "177": {
      "op": "MSTORE"
    },
    "178": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "180": {
      "op": "ADD"
    },
    "181": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "182": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "184": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "185": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "DUP1",
      "path": "53"
    },
    "186": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "187": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "SUB",
      "path": "53"
    },
    "188": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "189": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "RETURN",
      "path": "53"
    },
    "190": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "191": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xD1"
    },
    "194": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xCC"
    },
    "197": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "CALLDATASIZE",
      "path": "53"
    },
    "198": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "200": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x90B"
    },
    "203": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        1621,
        2078
      ],
      "op": "JUMP",
      "path": "53"
    },
    "204": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "205": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x225"
    },
    "208": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        1621,
        2078
      ],
      "op": "JUMP",
      "path": "53"
    },
    "209": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "210": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "STOP",
      "path": "53"
    },
    "211": {
      "offset": [
        389,
        439
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "212": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xF3"
    },
    "215": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "217": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "218": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "DUP1",
      "path": "53"
    },
    "219": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "221": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "ADD",
      "path": "53"
    },
    "222": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "224": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "225": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "DUP1",
      "path": "53"
    },
    "226": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x1"
    },
    "228": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "DUP2",
      "path": "53"
    },
    "229": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "230": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "232": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "ADD",
      "path": "53"
    },
    "233": {
      "op": "PUSH1",
      "value": "0x31"
    },
    "235": {
      "op": "PUSH1",
      "value": "0xF8"
    },
    "237": {
      "op": "SHL"
    },
    "238": {
      "offset": [
        389,
        439
      ],
      "op": "DUP2",
      "path": "53"
    },
    "239": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "240": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "POP",
      "path": "53"
    },
    "241": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "DUP2",
      "path": "53"
    },
    "242": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "JUMP",
      "path": "53"
    },
    "243": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "244": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "246": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "247": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xB5"
    },
    "250": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "251": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "252": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        389,
        439
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x9AE"
    },
    "255": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        389,
        439
      ],
      "op": "JUMP",
      "path": "53"
    },
    "256": {
      "offset": [
        727,
        834
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "257": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xF3"
    },
    "260": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x259"
    },
    "263": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        727,
        834
      ],
      "op": "JUMP",
      "path": "53"
    },
    "264": {
      "offset": [
        515,
        618
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "265": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xF3"
    },
    "268": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x275"
    },
    "271": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        515,
        618
      ],
      "op": "JUMP",
      "path": "53"
    },
    "272": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "273": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xAB"
    },
    "276": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x11E"
    },
    "279": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "CALLDATASIZE",
      "path": "53"
    },
    "280": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "282": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x9E1"
    },
    "285": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "jump": "i",
      "offset": [
        2085,
        2498
      ],
      "op": "JUMP",
      "path": "53"
    },
    "286": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "287": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x291"
    },
    "290": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "jump": "i",
      "offset": [
        2085,
        2498
      ],
      "op": "JUMP",
      "path": "53"
    },
    "291": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "292": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xD1"
    },
    "295": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x131"
    },
    "298": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "CALLDATASIZE",
      "path": "53"
    },
    "299": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "301": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xA14"
    },
    "304": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "jump": "i",
      "offset": [
        1161,
        1614
      ],
      "op": "JUMP",
      "path": "53"
    },
    "305": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "306": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x2FD"
    },
    "309": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "jump": "i",
      "offset": [
        1161,
        1614
      ],
      "op": "JUMP",
      "path": "53"
    },
    "310": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "311": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x149"
    },
    "314": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x144"
    },
    "317": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "CALLDATASIZE",
      "path": "53"
    },
    "318": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "320": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xA6E"
    },
    "323": {
      "fn": "StakingMessageHelper.getSigner",
      "jump": "i",
      "offset": [
        2929,
        3132
      ],
      "op": "JUMP",
      "path": "53"
    },
    "324": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "325": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x30A"
    },
    "328": {
      "fn": "StakingMessageHelper.getSigner",
      "jump": "i",
      "offset": [
        2929,
        3132
      ],
      "op": "JUMP",
      "path": "53"
    },
    "329": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "330": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "332": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "333": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "335": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "337": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "339": {
      "op": "SHL"
    },
    "340": {
      "op": "SUB"
    },
    "341": {
      "op": "SWAP1"
    },
    "342": {
      "op": "SWAP2"
    },
    "343": {
      "op": "AND"
    },
    "344": {
      "op": "DUP2"
    },
    "345": {
      "op": "MSTORE"
    },
    "346": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "348": {
      "op": "ADD"
    },
    "349": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xB5"
    },
    "352": {
      "op": "JUMP"
    },
    "353": {
      "offset": [
        322,
        383
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "354": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xF3"
    },
    "357": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "359": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "360": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "DUP1",
      "path": "53"
    },
    "361": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "363": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "ADD",
      "path": "53"
    },
    "364": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "366": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "367": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "DUP1",
      "path": "53"
    },
    "368": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0xF"
    },
    "370": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "DUP2",
      "path": "53"
    },
    "371": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "372": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "374": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "ADD",
      "path": "53"
    },
    "375": {
      "op": "PUSH15",
      "value": "0x45746865726973635374616B696E67"
    },
    "391": {
      "op": "PUSH1",
      "value": "0x88"
    },
    "393": {
      "op": "SHL"
    },
    "394": {
      "offset": [
        322,
        383
      ],
      "op": "DUP2",
      "path": "53"
    },
    "395": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "396": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "POP",
      "path": "53"
    },
    "397": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "DUP2",
      "path": "53"
    },
    "398": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        322,
        383
      ],
      "op": "JUMP",
      "path": "53"
    },
    "399": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "400": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2658,
        2672
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "402": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2688,
        2706
      ],
      "op": "DUP1",
      "path": "53"
    },
    "403": {
      "offset": [
        919,
        938
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "405": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "406": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "DUP1",
      "path": "53"
    },
    "407": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x60"
    },
    "409": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "ADD",
      "path": "53"
    },
    "410": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "412": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "413": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "DUP1",
      "path": "53"
    },
    "414": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3C"
    },
    "416": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "DUP2",
      "path": "53"
    },
    "417": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "418": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "420": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "ADD",
      "path": "53"
    },
    "421": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xB1C"
    },
    "424": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3C"
    },
    "426": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "427": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        919,
        938
      ],
      "op": "CODECOPY",
      "path": "53"
    },
    "428": {
      "offset": [
        902,
        939
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "430": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "431": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "433": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "ADD",
      "path": "53"
    },
    "434": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x1BB"
    },
    "437": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "438": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "439": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xABA"
    },
    "442": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "jump": "i",
      "offset": [
        902,
        939
      ],
      "op": "JUMP",
      "path": "53"
    },
    "443": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "444": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "446": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "DUP1",
      "path": "53"
    },
    "447": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "448": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "450": {
      "op": "NOT"
    },
    "451": {
      "offset": [
        902,
        939
      ],
      "op": "DUP2",
      "path": "53"
    },
    "452": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "DUP5",
      "path": "53"
    },
    "453": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "SUB",
      "path": "53"
    },
    "454": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "ADD",
      "path": "53"
    },
    "455": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "DUP2",
      "path": "53"
    },
    "456": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "457": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "DUP3",
      "path": "53"
    },
    "458": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "DUP3",
      "path": "53"
    },
    "459": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        902,
        939
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "460": {
      "offset": [
        892,
        940
      ],
      "op": "DUP1",
      "path": "53"
    },
    "461": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        892,
        940
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "462": {
      "offset": [
        902,
        939
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "464": {
      "offset": [
        892,
        940
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "465": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        892,
        940
      ],
      "op": "DUP3",
      "path": "53"
    },
    "466": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        892,
        940
      ],
      "op": "ADD",
      "path": "53"
    },
    "467": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        892,
        940
      ],
      "op": "KECCAK256",
      "path": "53"
    },
    "468": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "469": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "DUP4",
      "path": "53"
    },
    "470": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "ADD",
      "path": "53"
    },
    "471": {
      "op": "MSTORE"
    },
    "472": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "474": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "476": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "478": {
      "op": "SHL"
    },
    "479": {
      "op": "SUB"
    },
    "480": {
      "op": "DUP1"
    },
    "481": {
      "op": "DUP9"
    },
    "482": {
      "op": "AND"
    },
    "483": {
      "op": "SWAP2"
    },
    "484": {
      "op": "DUP4"
    },
    "485": {
      "op": "ADD"
    },
    "486": {
      "op": "SWAP2"
    },
    "487": {
      "op": "SWAP1"
    },
    "488": {
      "op": "SWAP2"
    },
    "489": {
      "op": "MSTORE"
    },
    "490": {
      "op": "DUP6"
    },
    "491": {
      "op": "AND"
    },
    "492": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "494": {
      "op": "DUP3"
    },
    "495": {
      "op": "ADD"
    },
    "496": {
      "op": "MSTORE"
    },
    "497": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "499": {
      "op": "DUP2"
    },
    "500": {
      "op": "ADD"
    },
    "501": {
      "op": "DUP5"
    },
    "502": {
      "op": "SWAP1"
    },
    "503": {
      "op": "MSTORE"
    },
    "504": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "506": {
      "op": "ADD"
    },
    "507": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "508": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "510": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "511": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "513": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "DUP2",
      "path": "53"
    },
    "514": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "DUP4",
      "path": "53"
    },
    "515": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "SUB",
      "path": "53"
    },
    "516": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "SUB",
      "path": "53"
    },
    "517": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "DUP2",
      "path": "53"
    },
    "518": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "519": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "520": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "522": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2732,
        2866
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "523": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2709,
        2867
      ],
      "op": "DUP1",
      "path": "53"
    },
    "524": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2709,
        2867
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "525": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2709,
        2867
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "526": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2709,
        2867
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "528": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2709,
        2867
      ],
      "op": "ADD",
      "path": "53"
    },
    "529": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2709,
        2867
      ],
      "op": "KECCAK256",
      "path": "53"
    },
    "530": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2688,
        2867
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "531": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2688,
        2867
      ],
      "op": "POP",
      "path": "53"
    },
    "532": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2887,
        2915
      ],
      "op": "PUSH2",
      "path": "53",
      "statement": 0,
      "value": "0x21C"
    },
    "535": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2904,
        2914
      ],
      "op": "DUP2",
      "path": "53"
    },
    "536": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2887,
        2903
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x354"
    },
    "539": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "jump": "i",
      "offset": [
        2887,
        2915
      ],
      "op": "JUMP",
      "path": "53"
    },
    "540": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2887,
        2915
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "541": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2878,
        2915
      ],
      "op": "SWAP6",
      "path": "53"
    },
    "542": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "offset": [
        2505,
        2922
      ],
      "op": "SWAP5",
      "path": "53"
    },
    "543": {
      "op": "POP"
    },
    "544": {
      "op": "POP"
    },
    "545": {
      "op": "POP"
    },
    "546": {
      "op": "POP"
    },
    "547": {
      "op": "POP"
    },
    "548": {
      "fn": "StakingMessageHelper.getRestakeDigest",
      "jump": "o",
      "offset": [
        2505,
        2922
      ],
      "op": "JUMP",
      "path": "53"
    },
    "549": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "550": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1896,
        1910
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "552": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1913,
        1962
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x232"
    },
    "555": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1930,
        1937
      ],
      "op": "DUP7",
      "path": "53"
    },
    "556": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1939,
        1948
      ],
      "op": "DUP7",
      "path": "53"
    },
    "557": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1950,
        1961
      ],
      "op": "DUP7",
      "path": "53"
    },
    "558": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1913,
        1929
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x18F"
    },
    "561": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        1913,
        1962
      ],
      "op": "JUMP",
      "path": "53"
    },
    "562": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1913,
        1962
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "563": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1896,
        1962
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "564": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1896,
        1962
      ],
      "op": "POP",
      "path": "53"
    },
    "565": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1972,
        1986
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "567": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1989,
        2017
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x241"
    },
    "570": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1999,
        2005
      ],
      "op": "DUP3",
      "path": "53"
    },
    "571": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2007,
        2016
      ],
      "op": "DUP6",
      "path": "53"
    },
    "572": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2007,
        2016
      ],
      "op": "DUP6",
      "path": "53"
    },
    "573": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1989,
        1998
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x30A"
    },
    "576": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        1989,
        2017
      ],
      "op": "JUMP",
      "path": "53"
    },
    "577": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1989,
        2017
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "578": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1972,
        2017
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "579": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1972,
        2017
      ],
      "op": "POP",
      "path": "53"
    },
    "580": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2028,
        2071
      ],
      "op": "PUSH2",
      "path": "53",
      "statement": 1,
      "value": "0x24F"
    },
    "583": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2046,
        2051
      ],
      "op": "DUP9",
      "path": "53"
    },
    "584": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2053,
        2059
      ],
      "op": "DUP3",
      "path": "53"
    },
    "585": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2061,
        2070
      ],
      "op": "DUP7",
      "path": "53"
    },
    "586": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2061,
        2070
      ],
      "op": "DUP7",
      "path": "53"
    },
    "587": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2028,
        2045
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x3A8"
    },
    "590": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "i",
      "offset": [
        2028,
        2071
      ],
      "op": "JUMP",
      "path": "53"
    },
    "591": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        2028,
        2071
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "592": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1886,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "593": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1886,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "594": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "595": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "596": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "597": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "598": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "599": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        1621,
        2078
      ],
      "op": "POP",
      "path": "53"
    },
    "600": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "o",
      "offset": [
        1621,
        2078
      ],
      "op": "JUMP",
      "path": "53"
    },
    "601": {
      "offset": [
        727,
        834
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "602": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "604": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "605": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "DUP1",
      "path": "53"
    },
    "606": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x60"
    },
    "608": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "ADD",
      "path": "53"
    },
    "609": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "611": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "612": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "DUP1",
      "path": "53"
    },
    "613": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3C"
    },
    "615": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "DUP2",
      "path": "53"
    },
    "616": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "617": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "619": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "ADD",
      "path": "53"
    },
    "620": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xB1C"
    },
    "623": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3C"
    },
    "625": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "626": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "CODECOPY",
      "path": "53"
    },
    "627": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        727,
        834
      ],
      "op": "DUP2",
      "path": "53"
    },
    "628": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "o",
      "offset": [
        727,
        834
      ],
      "op": "JUMP",
      "path": "53"
    },
    "629": {
      "offset": [
        515,
        618
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "630": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "632": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "633": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "DUP1",
      "path": "53"
    },
    "634": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x60"
    },
    "636": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "ADD",
      "path": "53"
    },
    "637": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "639": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "640": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "DUP1",
      "path": "53"
    },
    "641": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3A"
    },
    "643": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "DUP2",
      "path": "53"
    },
    "644": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "645": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "647": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "ADD",
      "path": "53"
    },
    "648": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xB58"
    },
    "651": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3A"
    },
    "653": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "654": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "CODECOPY",
      "path": "53"
    },
    "655": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "offset": [
        515,
        618
      ],
      "op": "DUP2",
      "path": "53"
    },
    "656": {
      "fn": "StakingMessageHelper.processRestakeSignature",
      "jump": "o",
      "offset": [
        515,
        618
      ],
      "op": "JUMP",
      "path": "53"
    },
    "657": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2085,
        2498
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "658": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2237,
        2251
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "660": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2267,
        2285
      ],
      "op": "DUP1",
      "path": "53"
    },
    "661": {
      "offset": [
        701,
        718
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "663": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "664": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "DUP1",
      "path": "53"
    },
    "665": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x60"
    },
    "667": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "ADD",
      "path": "53"
    },
    "668": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "670": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "671": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "DUP1",
      "path": "53"
    },
    "672": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3A"
    },
    "674": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "DUP2",
      "path": "53"
    },
    "675": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "676": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "678": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "ADD",
      "path": "53"
    },
    "679": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xB58"
    },
    "682": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x3A"
    },
    "684": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "685": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        701,
        718
      ],
      "op": "CODECOPY",
      "path": "53"
    },
    "686": {
      "offset": [
        684,
        719
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "688": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "689": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "691": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "ADD",
      "path": "53"
    },
    "692": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x2BD"
    },
    "695": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "696": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "697": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xABA"
    },
    "700": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "jump": "i",
      "offset": [
        684,
        719
      ],
      "op": "JUMP",
      "path": "53"
    },
    "701": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "702": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "704": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "DUP1",
      "path": "53"
    },
    "705": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "706": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "708": {
      "op": "NOT"
    },
    "709": {
      "offset": [
        684,
        719
      ],
      "op": "DUP2",
      "path": "53"
    },
    "710": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "DUP5",
      "path": "53"
    },
    "711": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "SUB",
      "path": "53"
    },
    "712": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "ADD",
      "path": "53"
    },
    "713": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "DUP2",
      "path": "53"
    },
    "714": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "715": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "DUP3",
      "path": "53"
    },
    "716": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "DUP3",
      "path": "53"
    },
    "717": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        684,
        719
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "718": {
      "offset": [
        674,
        720
      ],
      "op": "DUP1",
      "path": "53"
    },
    "719": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        674,
        720
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "720": {
      "offset": [
        684,
        719
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "722": {
      "offset": [
        674,
        720
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "723": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        674,
        720
      ],
      "op": "DUP3",
      "path": "53"
    },
    "724": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        674,
        720
      ],
      "op": "ADD",
      "path": "53"
    },
    "725": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        674,
        720
      ],
      "op": "KECCAK256",
      "path": "53"
    },
    "726": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2311,
        2442
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "727": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2311,
        2442
      ],
      "op": "DUP4",
      "path": "53"
    },
    "728": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2311,
        2442
      ],
      "op": "ADD",
      "path": "53"
    },
    "729": {
      "op": "MSTORE"
    },
    "730": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "732": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "734": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "736": {
      "op": "SHL"
    },
    "737": {
      "op": "SUB"
    },
    "738": {
      "op": "DUP8"
    },
    "739": {
      "op": "AND"
    },
    "740": {
      "op": "SWAP1"
    },
    "741": {
      "op": "DUP3"
    },
    "742": {
      "op": "ADD"
    },
    "743": {
      "op": "MSTORE"
    },
    "744": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "746": {
      "op": "DUP2"
    },
    "747": {
      "op": "ADD"
    },
    "748": {
      "op": "DUP6"
    },
    "749": {
      "op": "SWAP1"
    },
    "750": {
      "op": "MSTORE"
    },
    "751": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "753": {
      "op": "DUP2"
    },
    "754": {
      "op": "ADD"
    },
    "755": {
      "op": "DUP5"
    },
    "756": {
      "op": "SWAP1"
    },
    "757": {
      "op": "MSTORE"
    },
    "758": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "760": {
      "op": "ADD"
    },
    "761": {
      "fn": "StakingMessageHelper.getStakeDigest",
      "offset": [
        2311,
        2442
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x1FB"
    },
    "764": {
      "op": "JUMP"
    },
    "765": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1161,
        1614
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "766": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1435,
        1449
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "768": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1452,
        1498
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x232"
    },
    "771": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1467,
        1473
      ],
      "op": "DUP7",
      "path": "53"
    },
    "772": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1475,
        1484
      ],
      "op": "DUP7",
      "path": "53"
    },
    "773": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1486,
        1497
      ],
      "op": "DUP7",
      "path": "53"
    },
    "774": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "offset": [
        1452,
        1466
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x291"
    },
    "777": {
      "fn": "StakingMessageHelper.processStakeSignature",
      "jump": "i",
      "offset": [
        1452,
        1498
      ],
      "op": "JUMP",
      "path": "53"
    },
    "778": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "779": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3056,
        3070
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "781": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH2",
      "path": "53",
      "statement": 2,
      "value": "0x34C"
    },
    "784": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3107,
        3113
      ],
      "op": "DUP5",
      "path": "53"
    },
    "785": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3115,
        3124
      ],
      "op": "DUP5",
      "path": "53"
    },
    "786": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3115,
        3124
      ],
      "op": "DUP5",
      "path": "53"
    },
    "787": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP1",
      "path": "53"
    },
    "788": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP1",
      "path": "53"
    },
    "789": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x1F"
    },
    "791": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "ADD",
      "path": "53"
    },
    "792": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "794": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP1",
      "path": "53"
    },
    "795": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "796": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DIV",
      "path": "53"
    },
    "797": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "MUL",
      "path": "53"
    },
    "798": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "800": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "ADD",
      "path": "53"
    },
    "801": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "803": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "804": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "805": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP2",
      "path": "53"
    },
    "806": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "ADD",
      "path": "53"
    },
    "807": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "809": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "810": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP1",
      "path": "53"
    },
    "811": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP4",
      "path": "53"
    },
    "812": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP3",
      "path": "53"
    },
    "813": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "814": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "815": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP2",
      "path": "53"
    },
    "816": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP2",
      "path": "53"
    },
    "817": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "818": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "820": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "ADD",
      "path": "53"
    },
    "821": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP4",
      "path": "53"
    },
    "822": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP4",
      "path": "53"
    },
    "823": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP1",
      "path": "53"
    },
    "824": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP3",
      "path": "53"
    },
    "825": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "DUP5",
      "path": "53"
    },
    "826": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "CALLDATACOPY",
      "path": "53"
    },
    "827": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "829": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP3",
      "path": "53"
    },
    "830": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "ADD",
      "path": "53"
    },
    "831": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "832": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "833": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "834": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "835": {
      "op": "POP"
    },
    "836": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3106
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x4B9"
    },
    "839": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3106
      ],
      "op": "SWAP3",
      "path": "53"
    },
    "840": {
      "op": "POP"
    },
    "841": {
      "op": "POP"
    },
    "842": {
      "op": "POP"
    },
    "843": {
      "fn": "StakingMessageHelper.getSigner",
      "jump": "i",
      "offset": [
        3093,
        3125
      ],
      "op": "JUMP",
      "path": "53"
    },
    "844": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3093,
        3125
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "845": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        3086,
        3125
      ],
      "op": "SWAP5",
      "path": "53"
    },
    "846": {
      "fn": "StakingMessageHelper.getSigner",
      "offset": [
        2929,
        3132
      ],
      "op": "SWAP4",
      "path": "53"
    },
    "847": {
      "op": "POP"
    },
    "848": {
      "op": "POP"
    },
    "849": {
      "op": "POP"
    },
    "850": {
      "op": "POP"
    },
    "851": {
      "fn": "StakingMessageHelper.getSigner",
      "jump": "o",
      "offset": [
        2929,
        3132
      ],
      "op": "JUMP",
      "path": "53"
    },
    "852": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4348,
        4513
      ],
      "op": "JUMPDEST",
      "path": "27"
    },
    "853": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4425,
        4432
      ],
      "op": "PUSH1",
      "path": "27",
      "value": "0x0"
    },
    "855": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4451,
        4506
      ],
      "op": "PUSH2",
      "path": "27",
      "statement": 3,
      "value": "0x3A2"
    },
    "858": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4473,
        4493
      ],
      "op": "PUSH2",
      "path": "27",
      "value": "0x361"
    },
    "861": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4473,
        4491
      ],
      "op": "PUSH2",
      "path": "27",
      "value": "0x4DD"
    },
    "864": {
      "fn": "EIP712._hashTypedDataV4",
      "jump": "i",
      "offset": [
        4473,
        4493
      ],
      "op": "JUMP",
      "path": "27"
    },
    "865": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4473,
        4493
      ],
      "op": "JUMPDEST",
      "path": "27"
    },
    "866": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4495,
        4505
      ],
      "op": "DUP4",
      "path": "27"
    },
    "867": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "PUSH1",
      "path": "26",
      "statement": 4,
      "value": "0x40"
    },
    "869": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "870": {
      "op": "PUSH2",
      "value": "0x1901"
    },
    "873": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "875": {
      "op": "SHL"
    },
    "876": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x20"
    },
    "878": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "DUP3",
      "path": "26"
    },
    "879": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "ADD",
      "path": "26"
    },
    "880": {
      "op": "MSTORE"
    },
    "881": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "883": {
      "op": "DUP2"
    },
    "884": {
      "op": "ADD"
    },
    "885": {
      "op": "DUP4"
    },
    "886": {
      "op": "SWAP1"
    },
    "887": {
      "op": "MSTORE"
    },
    "888": {
      "op": "PUSH1",
      "value": "0x42"
    },
    "890": {
      "op": "DUP2"
    },
    "891": {
      "op": "ADD"
    },
    "892": {
      "op": "DUP3"
    },
    "893": {
      "op": "SWAP1"
    },
    "894": {
      "op": "MSTORE"
    },
    "895": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8434,
        8441
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "897": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8434,
        8441
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "898": {
      "op": "PUSH1",
      "value": "0x62"
    },
    "900": {
      "op": "ADD"
    },
    "901": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x40"
    },
    "903": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "904": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x20"
    },
    "906": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "DUP2",
      "path": "26"
    },
    "907": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "DUP4",
      "path": "26"
    },
    "908": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "SUB",
      "path": "26"
    },
    "909": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "SUB",
      "path": "26"
    },
    "910": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "DUP2",
      "path": "26"
    },
    "911": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "MSTORE",
      "path": "26"
    },
    "912": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "913": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x40"
    },
    "915": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8470,
        8527
      ],
      "op": "MSTORE",
      "path": "26"
    },
    "916": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8460,
        8528
      ],
      "op": "DUP1",
      "path": "26"
    },
    "917": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8460,
        8528
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "918": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8460,
        8528
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "919": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8460,
        8528
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x20"
    },
    "921": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8460,
        8528
      ],
      "op": "ADD",
      "path": "26"
    },
    "922": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8460,
        8528
      ],
      "op": "KECCAK256",
      "path": "26"
    },
    "923": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8453,
        8528
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "924": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8453,
        8528
      ],
      "op": "POP",
      "path": "26"
    },
    "925": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8341,
        8535
      ],
      "op": "SWAP3",
      "path": "26"
    },
    "926": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8341,
        8535
      ],
      "op": "SWAP2",
      "path": "26"
    },
    "927": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8341,
        8535
      ],
      "op": "POP",
      "path": "26"
    },
    "928": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8341,
        8535
      ],
      "op": "POP",
      "path": "26"
    },
    "929": {
      "fn": "ECDSA.toTypedDataHash",
      "offset": [
        8341,
        8535
      ],
      "op": "JUMP",
      "path": "26"
    },
    "930": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4451,
        4506
      ],
      "op": "JUMPDEST",
      "path": "27"
    },
    "931": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4444,
        4506
      ],
      "op": "SWAP3",
      "path": "27"
    },
    "932": {
      "fn": "EIP712._hashTypedDataV4",
      "offset": [
        4348,
        4513
      ],
      "op": "SWAP2",
      "path": "27"
    },
    "933": {
      "op": "POP"
    },
    "934": {
      "op": "POP"
    },
    "935": {
      "fn": "EIP712._hashTypedDataV4",
      "jump": "o",
      "offset": [
        4348,
        4513
      ],
      "op": "JUMP",
      "path": "27"
    },
    "936": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3139,
        3547
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "937": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3284,
        3305
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "939": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3329,
        3338
      ],
      "op": "DUP3",
      "path": "53"
    },
    "940": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3329,
        3338
      ],
      "op": "DUP3",
      "path": "53"
    },
    "941": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "943": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "944": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "946": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "ADD",
      "path": "53"
    },
    "947": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x3BD"
    },
    "950": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "SWAP3",
      "path": "53"
    },
    "951": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "952": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "953": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0xAD6"
    },
    "956": {
      "fn": "StakingMessageHelper._processSignature",
      "jump": "i",
      "offset": [
        3318,
        3339
      ],
      "op": "JUMP",
      "path": "53"
    },
    "957": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "958": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "960": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "DUP1",
      "path": "53"
    },
    "961": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "962": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "964": {
      "op": "NOT"
    },
    "965": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "DUP2",
      "path": "53"
    },
    "966": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "DUP5",
      "path": "53"
    },
    "967": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "SUB",
      "path": "53"
    },
    "968": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "ADD",
      "path": "53"
    },
    "969": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "DUP2",
      "path": "53"
    },
    "970": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "971": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "972": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "DUP2",
      "path": "53"
    },
    "973": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "974": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "DUP2",
      "path": "53"
    },
    "975": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "976": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3318,
        3339
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "978": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "SWAP3",
      "path": "53"
    },
    "979": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "DUP4",
      "path": "53"
    },
    "980": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "ADD",
      "path": "53"
    },
    "981": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "KECCAK256",
      "path": "53"
    },
    "982": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3375
      ],
      "op": "PUSH1",
      "path": "53",
      "statement": 5,
      "value": "0x0"
    },
    "984": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "DUP2",
      "path": "53"
    },
    "985": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "DUP2",
      "path": "53"
    },
    "986": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "987": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "SWAP3",
      "path": "53"
    },
    "988": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "DUP4",
      "path": "53"
    },
    "989": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "990": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "991": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "992": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "KECCAK256",
      "path": "53"
    },
    "993": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "SLOAD",
      "path": "53"
    },
    "994": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "995": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3308,
        3340
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "996": {
      "op": "POP"
    },
    "997": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0xFF"
    },
    "999": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3359,
        3390
      ],
      "op": "AND",
      "path": "53"
    },
    "1000": {
      "branch": 21,
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3358,
        3390
      ],
      "op": "ISZERO",
      "path": "53"
    },
    "1001": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x439"
    },
    "1004": {
      "branch": 21,
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "1005": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "1007": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "1008": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1012": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1014": {
      "op": "SHL"
    },
    "1015": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "DUP2",
      "path": "53"
    },
    "1016": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "1017": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1019": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "1021": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "DUP3",
      "path": "53"
    },
    "1022": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "ADD",
      "path": "53"
    },
    "1023": {
      "op": "MSTORE"
    },
    "1024": {
      "op": "PUSH1",
      "value": "0x1C"
    },
    "1026": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1028": {
      "op": "DUP3"
    },
    "1029": {
      "op": "ADD"
    },
    "1030": {
      "op": "MSTORE"
    },
    "1031": {
      "op": "PUSH32",
      "value": "0x4552524F523A534D482D3030313A5349474E41545552455F5553454400000000"
    },
    "1064": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1066": {
      "op": "DUP3"
    },
    "1067": {
      "op": "ADD"
    },
    "1068": {
      "op": "MSTORE"
    },
    "1069": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1071": {
      "op": "ADD"
    },
    "1072": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "1073": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "1075": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "1076": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "DUP1",
      "path": "53"
    },
    "1077": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "SWAP2",
      "path": "53"
    },
    "1078": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "SUB",
      "path": "53"
    },
    "1079": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "1080": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "53"
    },
    "1081": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3350,
        3423
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "1082": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3450,
        3456
      ],
      "op": "DUP4",
      "path": "53",
      "statement": 6
    },
    "1083": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1085": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1087": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1089": {
      "op": "SHL"
    },
    "1090": {
      "op": "SUB"
    },
    "1091": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3441,
        3456
      ],
      "op": "AND",
      "path": "53"
    },
    "1092": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3441,
        3446
      ],
      "op": "DUP6",
      "path": "53"
    },
    "1093": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1095": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1097": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1099": {
      "op": "SHL"
    },
    "1100": {
      "op": "SUB"
    },
    "1101": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3441,
        3456
      ],
      "op": "AND",
      "path": "53"
    },
    "1102": {
      "branch": 22,
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3441,
        3456
      ],
      "op": "EQ",
      "path": "53"
    },
    "1103": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x49A"
    },
    "1106": {
      "branch": 22,
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "JUMPI",
      "path": "53"
    },
    "1107": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "1109": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "MLOAD",
      "path": "53"
    },
    "1110": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1114": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1116": {
      "op": "SHL"
    },
    "1117": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "DUP2",
      "path": "53"
    },
    "1118": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "1119": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1121": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x4"
    },
    "1123": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "DUP3",
      "path": "53"
    },
    "1124": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "ADD",
      "path": "53"
    },
    "1125": {
      "op": "MSTORE"
    },
    "1126": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1128": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1130": {
      "op": "DUP3"
    },
    "1131": {
      "op": "ADD"
    },
    "1132": {
      "op": "MSTORE"
    },
    "1133": {
      "op": "PUSH32",
      "value": "0x4552524F523A534D482D3030323A5349474E41545552455F494E56414C494400"
    },
    "1166": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1168": {
      "op": "DUP3"
    },
    "1169": {
      "op": "ADD"
    },
    "1170": {
      "op": "MSTORE"
    },
    "1171": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1173": {
      "op": "ADD"
    },
    "1174": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "PUSH2",
      "path": "53",
      "value": "0x430"
    },
    "1177": {
      "op": "JUMP"
    },
    "1178": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3433,
        3492
      ],
      "op": "JUMPDEST",
      "path": "53"
    },
    "1179": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3518
      ],
      "op": "PUSH1",
      "path": "53",
      "statement": 7,
      "value": "0x0"
    },
    "1181": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "1182": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "DUP2",
      "path": "53"
    },
    "1183": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "1184": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x20"
    },
    "1186": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "DUP2",
      "path": "53"
    },
    "1187": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "1188": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "1189": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "1191": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "1192": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3533
      ],
      "op": "KECCAK256",
      "path": "53"
    },
    "1193": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3540
      ],
      "op": "DUP1",
      "path": "53"
    },
    "1194": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3540
      ],
      "op": "SLOAD",
      "path": "53"
    },
    "1195": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "1197": {
      "op": "NOT"
    },
    "1198": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3540
      ],
      "op": "AND",
      "path": "53"
    },
    "1199": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3536,
        3540
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x1"
    },
    "1201": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3540
      ],
      "op": "OR",
      "path": "53"
    },
    "1202": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3540
      ],
      "op": "SWAP1",
      "path": "53"
    },
    "1203": {
      "fn": "StakingMessageHelper._processSignature",
      "offset": [
        3502,
        3540
      ],
      "op": "SSTORE",
      "path": "53"
    },
    "1204": {
      "op": "POP"
    },
    "1205": {
      "op": "POP"
    },
    "1206": {
      "op": "POP"
    },
    "1207": {
      "op": "POP"
    },
    "1208": {
      "fn": "StakingMessageHelper._processSignature",
      "jump": "o",
      "offset": [
        3139,
        3547
      ],
      "op": "JUMP",
      "path": "53"
    },
    "1209": {
      "fn": "ECDSA.recover",
      "offset": [
        3661,
        3888
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1210": {
      "fn": "ECDSA.recover",
      "offset": [
        3739,
        3746
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "1212": {
      "fn": "ECDSA.recover",
      "offset": [
        3759,
        3776
      ],
      "op": "DUP1",
      "path": "26"
    },
    "1213": {
      "fn": "ECDSA.recover",
      "offset": [
        3778,
        3796
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "1215": {
      "fn": "ECDSA.recover",
      "offset": [
        3800,
        3827
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x4C8"
    },
    "1218": {
      "fn": "ECDSA.recover",
      "offset": [
        3811,
        3815
      ],
      "op": "DUP6",
      "path": "26"
    },
    "1219": {
      "fn": "ECDSA.recover",
      "offset": [
        3817,
        3826
      ],
      "op": "DUP6",
      "path": "26"
    },
    "1220": {
      "fn": "ECDSA.recover",
      "offset": [
        3800,
        3810
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x604"
    },
    "1223": {
      "fn": "ECDSA.recover",
      "jump": "i",
      "offset": [
        3800,
        3827
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1224": {
      "fn": "ECDSA.recover",
      "offset": [
        3800,
        3827
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1225": {
      "fn": "ECDSA.recover",
      "offset": [
        3758,
        3827
      ],
      "op": "SWAP2",
      "path": "26"
    },
    "1226": {
      "fn": "ECDSA.recover",
      "offset": [
        3758,
        3827
      ],
      "op": "POP",
      "path": "26"
    },
    "1227": {
      "fn": "ECDSA.recover",
      "offset": [
        3758,
        3827
      ],
      "op": "SWAP2",
      "path": "26"
    },
    "1228": {
      "fn": "ECDSA.recover",
      "offset": [
        3758,
        3827
      ],
      "op": "POP",
      "path": "26"
    },
    "1229": {
      "fn": "ECDSA.recover",
      "offset": [
        3837,
        3855
      ],
      "op": "PUSH2",
      "path": "26",
      "statement": 8,
      "value": "0x4D5"
    },
    "1232": {
      "fn": "ECDSA.recover",
      "offset": [
        3849,
        3854
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1233": {
      "fn": "ECDSA.recover",
      "offset": [
        3837,
        3848
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x649"
    },
    "1236": {
      "fn": "ECDSA.recover",
      "jump": "i",
      "offset": [
        3837,
        3855
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1237": {
      "fn": "ECDSA.recover",
      "offset": [
        3837,
        3855
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1238": {
      "op": "POP"
    },
    "1239": {
      "fn": "ECDSA.recover",
      "offset": [
        3872,
        3881
      ],
      "op": "SWAP4",
      "path": "26",
      "statement": 9
    },
    "1240": {
      "fn": "ECDSA.recover",
      "offset": [
        3661,
        3888
      ],
      "op": "SWAP3",
      "path": "26"
    },
    "1241": {
      "op": "POP"
    },
    "1242": {
      "op": "POP"
    },
    "1243": {
      "op": "POP"
    },
    "1244": {
      "fn": "ECDSA.recover",
      "jump": "o",
      "offset": [
        3661,
        3888
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1245": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3152,
        3460
      ],
      "op": "JUMPDEST",
      "path": "27"
    },
    "1246": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3205,
        3212
      ],
      "op": "PUSH1",
      "path": "27",
      "value": "0x0"
    },
    "1248": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3236,
        3240
      ],
      "op": "ADDRESS",
      "path": "27"
    },
    "1249": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1251": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "1253": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1255": {
      "op": "SHL"
    },
    "1256": {
      "op": "SUB"
    },
    "1257": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3245,
        3257
      ],
      "op": "PUSH32",
      "path": "27",
      "value": "0x0"
    },
    "1290": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3257
      ],
      "op": "AND",
      "path": "27"
    },
    "1291": {
      "branch": 30,
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3257
      ],
      "op": "EQ",
      "path": "27"
    },
    "1292": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3294
      ],
      "op": "DUP1",
      "path": "27"
    },
    "1293": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3294
      ],
      "op": "ISZERO",
      "path": "27"
    },
    "1294": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3294
      ],
      "op": "PUSH2",
      "path": "27",
      "value": "0x536"
    },
    "1297": {
      "branch": 30,
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3294
      ],
      "op": "JUMPI",
      "path": "27"
    },
    "1298": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3294
      ],
      "op": "POP",
      "path": "27"
    },
    "1299": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3278,
        3294
      ],
      "op": "PUSH32",
      "path": "27",
      "value": "0x0"
    },
    "1332": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3261,
        3274
      ],
      "op": "CHAINID",
      "path": "27"
    },
    "1333": {
      "branch": 31,
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3261,
        3294
      ],
      "op": "EQ",
      "path": "27"
    },
    "1334": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3228,
        3294
      ],
      "op": "JUMPDEST",
      "path": "27"
    },
    "1335": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3224,
        3454
      ],
      "op": "ISZERO",
      "path": "27"
    },
    "1336": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3224,
        3454
      ],
      "op": "PUSH2",
      "path": "27",
      "value": "0x560"
    },
    "1339": {
      "branch": 31,
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3224,
        3454
      ],
      "op": "JUMPI",
      "path": "27"
    },
    "1340": {
      "op": "POP"
    },
    "1341": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3317,
        3341
      ],
      "op": "PUSH32",
      "path": "27",
      "statement": 10,
      "value": "0x0"
    },
    "1374": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3317,
        3341
      ],
      "op": "SWAP1",
      "path": "27"
    },
    "1375": {
      "fn": "EIP712._domainSeparatorV4",
      "jump": "o",
      "offset": [
        3152,
        3460
      ],
      "op": "JUMP",
      "path": "27"
    },
    "1376": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3224,
        3454
      ],
      "op": "JUMPDEST",
      "path": "27"
    },
    "1377": {
      "op": "POP"
    },
    "1378": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "PUSH1",
      "path": "27",
      "statement": 11,
      "value": "0x40"
    },
    "1380": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "DUP1",
      "path": "27"
    },
    "1381": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "MLOAD",
      "path": "27"
    },
    "1382": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3401,
        3411
      ],
      "op": "PUSH32",
      "path": "27",
      "statement": 12,
      "value": "0x0"
    },
    "1415": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "PUSH1",
      "path": "27",
      "value": "0x20"
    },
    "1417": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "DUP1",
      "path": "27"
    },
    "1418": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "DUP4",
      "path": "27"
    },
    "1419": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "ADD",
      "path": "27"
    },
    "1420": {
      "op": "SWAP2"
    },
    "1421": {
      "op": "SWAP1"
    },
    "1422": {
      "op": "SWAP2"
    },
    "1423": {
      "op": "MSTORE"
    },
    "1424": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3413,
        3425
      ],
      "op": "PUSH32",
      "path": "27",
      "value": "0x0"
    },
    "1457": {
      "op": "DUP3"
    },
    "1458": {
      "op": "DUP5"
    },
    "1459": {
      "op": "ADD"
    },
    "1460": {
      "op": "MSTORE"
    },
    "1461": {
      "fn": "EIP712._domainSeparatorV4",
      "offset": [
        3427,
        3442
      ],
      "op": "PUSH32",
      "path": "27",
      "value": "0x0"
    },
    "1494": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "1496": {
      "op": "DUP4"
    },
    "1497": {
      "op": "ADD"
    },
    "1498": {
      "op": "MSTORE"
    },
    "1499": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3686,
        3699
      ],
      "op": "CHAINID",
      "path": "27"
    },
    "1500": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "1502": {
      "op": "DUP4"
    },
    "1503": {
      "op": "ADD"
    },
    "1504": {
      "op": "MSTORE"
    },
    "1505": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3709,
        3713
      ],
      "op": "ADDRESS",
      "path": "27"
    },
    "1506": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "1508": {
      "op": "DUP1"
    },
    "1509": {
      "op": "DUP5"
    },
    "1510": {
      "op": "ADD"
    },
    "1511": {
      "op": "SWAP2"
    },
    "1512": {
      "op": "SWAP1"
    },
    "1513": {
      "op": "SWAP2"
    },
    "1514": {
      "op": "MSTORE"
    },
    "1515": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "DUP4",
      "path": "27"
    },
    "1516": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "MLOAD",
      "path": "27"
    },
    "1517": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "DUP1",
      "path": "27"
    },
    "1518": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "DUP5",
      "path": "27"
    },
    "1519": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "SUB",
      "path": "27"
    },
    "1520": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "SWAP1",
      "path": "27"
    },
    "1521": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "SWAP2",
      "path": "27"
    },
    "1522": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "ADD",
      "path": "27"
    },
    "1523": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "DUP2",
      "path": "27"
    },
    "1524": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "MSTORE",
      "path": "27"
    },
    "1525": {
      "op": "PUSH1",
      "value": "0xC0"
    },
    "1527": {
      "op": "SWAP1"
    },
    "1528": {
      "op": "SWAP3"
    },
    "1529": {
      "op": "ADD"
    },
    "1530": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "SWAP1",
      "path": "27"
    },
    "1531": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "SWAP3",
      "path": "27"
    },
    "1532": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3642,
        3715
      ],
      "op": "MSTORE",
      "path": "27"
    },
    "1533": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3632,
        3716
      ],
      "op": "DUP1",
      "path": "27"
    },
    "1534": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3632,
        3716
      ],
      "op": "MLOAD",
      "path": "27"
    },
    "1535": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3632,
        3716
      ],
      "op": "SWAP2",
      "path": "27"
    },
    "1536": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3632,
        3716
      ],
      "op": "ADD",
      "path": "27"
    },
    "1537": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3632,
        3716
      ],
      "op": "KECCAK256",
      "path": "27"
    },
    "1538": {
      "fn": "EIP712._buildDomainSeparator",
      "offset": [
        3632,
        3716
      ],
      "op": "SWAP1",
      "path": "27"
    },
    "1539": {
      "fn": "EIP712._domainSeparatorV4",
      "jump": "o",
      "offset": [
        3152,
        3460
      ],
      "op": "JUMP",
      "path": "27"
    },
    "1540": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2145,
        2875
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1541": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2226,
        2233
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "1543": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2235,
        2247
      ],
      "op": "DUP1",
      "path": "26"
    },
    "1544": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2263,
        2272
      ],
      "op": "DUP3",
      "path": "26"
    },
    "1545": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2263,
        2279
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "1546": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2283,
        2285
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x41"
    },
    "1548": {
      "branch": 23,
      "fn": "ECDSA.tryRecover",
      "offset": [
        2263,
        2285
      ],
      "op": "SUB",
      "path": "26"
    },
    "1549": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2259,
        2869
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x63A"
    },
    "1552": {
      "branch": 23,
      "fn": "ECDSA.tryRecover",
      "offset": [
        2259,
        2869
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1553": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2599,
        2603
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x20"
    },
    "1555": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2584,
        2604
      ],
      "op": "DUP4",
      "path": "26"
    },
    "1556": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2584,
        2604
      ],
      "op": "ADD",
      "path": "26"
    },
    "1557": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2578,
        2605
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "1558": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2648,
        2652
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x40"
    },
    "1560": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2633,
        2653
      ],
      "op": "DUP5",
      "path": "26"
    },
    "1561": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2633,
        2653
      ],
      "op": "ADD",
      "path": "26"
    },
    "1562": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2627,
        2654
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "1563": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2705,
        2709
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x60"
    },
    "1565": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2690,
        2710
      ],
      "op": "DUP6",
      "path": "26"
    },
    "1566": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2690,
        2710
      ],
      "op": "ADD",
      "path": "26"
    },
    "1567": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2684,
        2711
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "1568": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2301,
        2310
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "1570": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2676,
        2712
      ],
      "op": "BYTE",
      "path": "26"
    },
    "1571": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2746,
        2771
      ],
      "op": "PUSH2",
      "path": "26",
      "statement": 13,
      "value": "0x62E"
    },
    "1574": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2757,
        2761
      ],
      "op": "DUP8",
      "path": "26"
    },
    "1575": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2676,
        2712
      ],
      "op": "DUP3",
      "path": "26"
    },
    "1576": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2578,
        2605
      ],
      "op": "DUP6",
      "path": "26"
    },
    "1577": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2627,
        2654
      ],
      "op": "DUP6",
      "path": "26"
    },
    "1578": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2746,
        2756
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x796"
    },
    "1581": {
      "fn": "ECDSA.tryRecover",
      "jump": "i",
      "offset": [
        2746,
        2771
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1582": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2746,
        2771
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1583": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "SWAP5",
      "path": "26"
    },
    "1584": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "POP",
      "path": "26"
    },
    "1585": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "SWAP5",
      "path": "26"
    },
    "1586": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "POP",
      "path": "26"
    },
    "1587": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "POP",
      "path": "26"
    },
    "1588": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "POP",
      "path": "26"
    },
    "1589": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "POP",
      "path": "26"
    },
    "1590": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x642"
    },
    "1593": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2739,
        2771
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1594": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2259,
        2869
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1595": {
      "op": "POP"
    },
    "1596": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2818,
        2819
      ],
      "op": "PUSH1",
      "path": "26",
      "statement": 14,
      "value": "0x0"
    },
    "1598": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2818,
        2819
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "1599": {
      "op": "POP"
    },
    "1600": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2822,
        2857
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x2"
    },
    "1602": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2259,
        2869
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1603": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2145,
        2875
      ],
      "op": "SWAP3",
      "path": "26"
    },
    "1604": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2145,
        2875
      ],
      "op": "POP",
      "path": "26"
    },
    "1605": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2145,
        2875
      ],
      "op": "SWAP3",
      "path": "26"
    },
    "1606": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2145,
        2875
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "1607": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        2145,
        2875
      ],
      "op": "POP",
      "path": "26"
    },
    "1608": {
      "fn": "ECDSA.tryRecover",
      "jump": "o",
      "offset": [
        2145,
        2875
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1609": {
      "fn": "ECDSA._throwError",
      "offset": [
        570,
        1081
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1610": {
      "fn": "ECDSA._throwError",
      "offset": [
        647,
        667
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "1612": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        643
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1613": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x4"
    },
    "1615": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1616": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "GT",
      "path": "26"
    },
    "1617": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "ISZERO",
      "path": "26"
    },
    "1618": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x65D"
    },
    "1621": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1622": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x65D"
    },
    "1625": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0xB05"
    },
    "1628": {
      "fn": "ECDSA._throwError",
      "jump": "i",
      "offset": [
        638,
        667
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1629": {
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1630": {
      "branch": 24,
      "fn": "ECDSA._throwError",
      "offset": [
        638,
        667
      ],
      "op": "SUB",
      "path": "26"
    },
    "1631": {
      "fn": "ECDSA._throwError",
      "offset": [
        634,
        1075
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x665"
    },
    "1634": {
      "branch": 24,
      "fn": "ECDSA._throwError",
      "offset": [
        634,
        1075
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1635": {
      "fn": "ECDSA._throwError",
      "offset": [
        570,
        1081
      ],
      "op": "POP",
      "path": "26"
    },
    "1636": {
      "fn": "ECDSA._throwError",
      "jump": "o",
      "offset": [
        570,
        1081
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1637": {
      "fn": "ECDSA._throwError",
      "offset": [
        634,
        1075
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1638": {
      "fn": "ECDSA._throwError",
      "offset": [
        743,
        772
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x1"
    },
    "1640": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        739
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1641": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x4"
    },
    "1643": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1644": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "GT",
      "path": "26"
    },
    "1645": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "ISZERO",
      "path": "26"
    },
    "1646": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x679"
    },
    "1649": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1650": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x679"
    },
    "1653": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0xB05"
    },
    "1656": {
      "fn": "ECDSA._throwError",
      "jump": "i",
      "offset": [
        734,
        772
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1657": {
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1658": {
      "branch": 25,
      "fn": "ECDSA._throwError",
      "offset": [
        734,
        772
      ],
      "op": "SUB",
      "path": "26"
    },
    "1659": {
      "fn": "ECDSA._throwError",
      "offset": [
        730,
        1075
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x6C6"
    },
    "1662": {
      "branch": 25,
      "fn": "ECDSA._throwError",
      "offset": [
        730,
        1075
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1663": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "PUSH1",
      "path": "26",
      "statement": 15,
      "value": "0x40"
    },
    "1665": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "1666": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1670": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1672": {
      "op": "SHL"
    },
    "1673": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1674": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "MSTORE",
      "path": "26"
    },
    "1675": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1677": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x4"
    },
    "1679": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "DUP3",
      "path": "26"
    },
    "1680": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "ADD",
      "path": "26"
    },
    "1681": {
      "op": "MSTORE"
    },
    "1682": {
      "op": "PUSH1",
      "value": "0x18"
    },
    "1684": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1686": {
      "op": "DUP3"
    },
    "1687": {
      "op": "ADD"
    },
    "1688": {
      "op": "MSTORE"
    },
    "1689": {
      "op": "PUSH32",
      "value": "0x45434453413A20696E76616C6964207369676E61747572650000000000000000"
    },
    "1722": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1724": {
      "op": "DUP3"
    },
    "1725": {
      "op": "ADD"
    },
    "1726": {
      "op": "MSTORE"
    },
    "1727": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1729": {
      "op": "ADD"
    },
    "1730": {
      "fn": "ECDSA._throwError",
      "offset": [
        788,
        822
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x430"
    },
    "1733": {
      "op": "JUMP"
    },
    "1734": {
      "fn": "ECDSA._throwError",
      "offset": [
        730,
        1075
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1735": {
      "fn": "ECDSA._throwError",
      "offset": [
        852,
        887
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x2"
    },
    "1737": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        848
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1738": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x4"
    },
    "1740": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1741": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "GT",
      "path": "26"
    },
    "1742": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "ISZERO",
      "path": "26"
    },
    "1743": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x6DA"
    },
    "1746": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1747": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x6DA"
    },
    "1750": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0xB05"
    },
    "1753": {
      "fn": "ECDSA._throwError",
      "jump": "i",
      "offset": [
        843,
        887
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1754": {
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1755": {
      "branch": 26,
      "fn": "ECDSA._throwError",
      "offset": [
        843,
        887
      ],
      "op": "SUB",
      "path": "26"
    },
    "1756": {
      "fn": "ECDSA._throwError",
      "offset": [
        839,
        1075
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x727"
    },
    "1759": {
      "branch": 26,
      "fn": "ECDSA._throwError",
      "offset": [
        839,
        1075
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1760": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "PUSH1",
      "path": "26",
      "statement": 16,
      "value": "0x40"
    },
    "1762": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "1763": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1767": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1769": {
      "op": "SHL"
    },
    "1770": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1771": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "MSTORE",
      "path": "26"
    },
    "1772": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1774": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x4"
    },
    "1776": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "DUP3",
      "path": "26"
    },
    "1777": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "ADD",
      "path": "26"
    },
    "1778": {
      "op": "MSTORE"
    },
    "1779": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "1781": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1783": {
      "op": "DUP3"
    },
    "1784": {
      "op": "ADD"
    },
    "1785": {
      "op": "MSTORE"
    },
    "1786": {
      "op": "PUSH32",
      "value": "0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800"
    },
    "1819": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1821": {
      "op": "DUP3"
    },
    "1822": {
      "op": "ADD"
    },
    "1823": {
      "op": "MSTORE"
    },
    "1824": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1826": {
      "op": "ADD"
    },
    "1827": {
      "fn": "ECDSA._throwError",
      "offset": [
        903,
        944
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x430"
    },
    "1830": {
      "op": "JUMP"
    },
    "1831": {
      "fn": "ECDSA._throwError",
      "offset": [
        839,
        1075
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1832": {
      "fn": "ECDSA._throwError",
      "offset": [
        974,
        1004
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x3"
    },
    "1834": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        970
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1835": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x4"
    },
    "1837": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1838": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "GT",
      "path": "26"
    },
    "1839": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "ISZERO",
      "path": "26"
    },
    "1840": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x73B"
    },
    "1843": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1844": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x73B"
    },
    "1847": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0xB05"
    },
    "1850": {
      "fn": "ECDSA._throwError",
      "jump": "i",
      "offset": [
        965,
        1004
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1851": {
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1852": {
      "branch": 27,
      "fn": "ECDSA._throwError",
      "offset": [
        965,
        1004
      ],
      "op": "SUB",
      "path": "26"
    },
    "1853": {
      "fn": "ECDSA._throwError",
      "offset": [
        961,
        1075
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x793"
    },
    "1856": {
      "branch": 27,
      "fn": "ECDSA._throwError",
      "offset": [
        961,
        1075
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1857": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "PUSH1",
      "path": "26",
      "statement": 17,
      "value": "0x40"
    },
    "1859": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "1860": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "1864": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "1866": {
      "op": "SHL"
    },
    "1867": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "DUP2",
      "path": "26"
    },
    "1868": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "MSTORE",
      "path": "26"
    },
    "1869": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "1871": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x4"
    },
    "1873": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "DUP3",
      "path": "26"
    },
    "1874": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "ADD",
      "path": "26"
    },
    "1875": {
      "op": "MSTORE"
    },
    "1876": {
      "op": "PUSH1",
      "value": "0x22"
    },
    "1878": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "1880": {
      "op": "DUP3"
    },
    "1881": {
      "op": "ADD"
    },
    "1882": {
      "op": "MSTORE"
    },
    "1883": {
      "op": "PUSH32",
      "value": "0x45434453413A20696E76616C6964207369676E6174757265202773272076616C"
    },
    "1916": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "1918": {
      "op": "DUP3"
    },
    "1919": {
      "op": "ADD"
    },
    "1920": {
      "op": "MSTORE"
    },
    "1921": {
      "op": "PUSH2",
      "value": "0x7565"
    },
    "1924": {
      "op": "PUSH1",
      "value": "0xF0"
    },
    "1926": {
      "op": "SHL"
    },
    "1927": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "1929": {
      "op": "DUP3"
    },
    "1930": {
      "op": "ADD"
    },
    "1931": {
      "op": "MSTORE"
    },
    "1932": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "1934": {
      "op": "ADD"
    },
    "1935": {
      "fn": "ECDSA._throwError",
      "offset": [
        1020,
        1064
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x430"
    },
    "1938": {
      "op": "JUMP"
    },
    "1939": {
      "fn": "ECDSA._throwError",
      "offset": [
        961,
        1075
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1940": {
      "fn": "ECDSA._throwError",
      "offset": [
        570,
        1081
      ],
      "op": "POP",
      "path": "26"
    },
    "1941": {
      "fn": "ECDSA._throwError",
      "jump": "o",
      "offset": [
        570,
        1081
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1942": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1943": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5195,
        5202
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "1945": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5195,
        5202
      ],
      "op": "DUP1",
      "path": "26"
    },
    "1946": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6119,
        6185
      ],
      "op": "PUSH32",
      "path": "26",
      "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"
    },
    "1979": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6106,
        6185
      ],
      "op": "DUP4",
      "path": "26"
    },
    "1980": {
      "branch": 28,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6106,
        6185
      ],
      "op": "GT",
      "path": "26"
    },
    "1981": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6102,
        6263
      ],
      "op": "ISZERO",
      "path": "26"
    },
    "1982": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6102,
        6263
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x7CD"
    },
    "1985": {
      "branch": 28,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6102,
        6263
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "1986": {
      "op": "POP"
    },
    "1987": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6217,
        6218
      ],
      "op": "PUSH1",
      "path": "26",
      "statement": 18,
      "value": "0x0"
    },
    "1989": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6217,
        6218
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "1990": {
      "op": "POP"
    },
    "1991": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6221,
        6251
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x3"
    },
    "1993": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6201,
        6252
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x851"
    },
    "1996": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6201,
        6252
      ],
      "op": "JUMP",
      "path": "26"
    },
    "1997": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6102,
        6263
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "1998": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x40"
    },
    "2000": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP1",
      "path": "26"
    },
    "2001": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "2002": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6357,
        6371
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "2004": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP1",
      "path": "26"
    },
    "2005": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP3",
      "path": "26"
    },
    "2006": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "MSTORE",
      "path": "26"
    },
    "2007": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x20"
    },
    "2009": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP3",
      "path": "26"
    },
    "2010": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "ADD",
      "path": "26"
    },
    "2011": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP1",
      "path": "26"
    },
    "2012": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP5",
      "path": "26"
    },
    "2013": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "MSTORE",
      "path": "26"
    },
    "2014": {
      "op": "DUP10"
    },
    "2015": {
      "op": "SWAP1"
    },
    "2016": {
      "op": "MSTORE"
    },
    "2017": {
      "op": "PUSH1",
      "value": "0xFF"
    },
    "2019": {
      "op": "DUP9"
    },
    "2020": {
      "op": "AND"
    },
    "2021": {
      "op": "SWAP3"
    },
    "2022": {
      "op": "DUP3"
    },
    "2023": {
      "op": "ADD"
    },
    "2024": {
      "op": "SWAP3"
    },
    "2025": {
      "op": "SWAP1"
    },
    "2026": {
      "op": "SWAP3"
    },
    "2027": {
      "op": "MSTORE"
    },
    "2028": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2030": {
      "op": "DUP2"
    },
    "2031": {
      "op": "ADD"
    },
    "2032": {
      "op": "DUP7"
    },
    "2033": {
      "op": "SWAP1"
    },
    "2034": {
      "op": "MSTORE"
    },
    "2035": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "2037": {
      "op": "DUP2"
    },
    "2038": {
      "op": "ADD"
    },
    "2039": {
      "op": "DUP6"
    },
    "2040": {
      "op": "SWAP1"
    },
    "2041": {
      "op": "MSTORE"
    },
    "2042": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x1"
    },
    "2044": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "2045": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2047": {
      "op": "ADD"
    },
    "2048": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x20"
    },
    "2050": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x40"
    },
    "2052": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "2053": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x20"
    },
    "2055": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP2",
      "path": "26"
    },
    "2056": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "SUB",
      "path": "26"
    },
    "2057": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "2058": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP1",
      "path": "26"
    },
    "2059": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP5",
      "path": "26"
    },
    "2060": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "SUB",
      "path": "26"
    },
    "2061": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "2062": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP6",
      "path": "26"
    },
    "2063": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "GAS",
      "path": "26"
    },
    "2064": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "STATICCALL",
      "path": "26"
    },
    "2065": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "ISZERO",
      "path": "26"
    },
    "2066": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP1",
      "path": "26"
    },
    "2067": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "ISZERO",
      "path": "26"
    },
    "2068": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x821"
    },
    "2071": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "2072": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "RETURNDATASIZE",
      "path": "26"
    },
    "2073": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "2075": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "DUP1",
      "path": "26"
    },
    "2076": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "RETURNDATACOPY",
      "path": "26"
    },
    "2077": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "RETURNDATASIZE",
      "path": "26"
    },
    "2078": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "2080": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "REVERT",
      "path": "26"
    },
    "2081": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "2082": {
      "op": "POP"
    },
    "2083": {
      "op": "POP"
    },
    "2084": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x40"
    },
    "2086": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "2087": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2089": {
      "op": "NOT"
    },
    "2090": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "ADD",
      "path": "26"
    },
    "2091": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "MLOAD",
      "path": "26"
    },
    "2092": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6374,
        6398
      ],
      "op": "SWAP2",
      "path": "26"
    },
    "2093": {
      "op": "POP"
    },
    "2094": {
      "op": "POP"
    },
    "2095": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2097": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2099": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2101": {
      "op": "SHL"
    },
    "2102": {
      "op": "SUB"
    },
    "2103": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6412,
        6432
      ],
      "op": "DUP2",
      "path": "26"
    },
    "2104": {
      "branch": 29,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6412,
        6432
      ],
      "op": "AND",
      "path": "26"
    },
    "2105": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6408,
        6509
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x84A"
    },
    "2108": {
      "branch": 29,
      "fn": "ECDSA.tryRecover",
      "offset": [
        6408,
        6509
      ],
      "op": "JUMPI",
      "path": "26"
    },
    "2109": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6464,
        6465
      ],
      "op": "PUSH1",
      "path": "26",
      "statement": 19,
      "value": "0x0"
    },
    "2111": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6468,
        6497
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x1"
    },
    "2113": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6448,
        6498
      ],
      "op": "SWAP3",
      "path": "26"
    },
    "2114": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6448,
        6498
      ],
      "op": "POP",
      "path": "26"
    },
    "2115": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6448,
        6498
      ],
      "op": "SWAP3",
      "path": "26"
    },
    "2116": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6448,
        6498
      ],
      "op": "POP",
      "path": "26"
    },
    "2117": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6448,
        6498
      ],
      "op": "POP",
      "path": "26"
    },
    "2118": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6448,
        6498
      ],
      "op": "PUSH2",
      "path": "26",
      "value": "0x851"
    },
    "2121": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6448,
        6498
      ],
      "op": "JUMP",
      "path": "26"
    },
    "2122": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6408,
        6509
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "2123": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6527,
        6533
      ],
      "op": "SWAP2",
      "path": "26",
      "statement": 20
    },
    "2124": {
      "op": "POP"
    },
    "2125": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6535,
        6555
      ],
      "op": "PUSH1",
      "path": "26",
      "value": "0x0"
    },
    "2127": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        6535,
        6555
      ],
      "op": "SWAP1",
      "path": "26"
    },
    "2128": {
      "op": "POP"
    },
    "2129": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "JUMPDEST",
      "path": "26"
    },
    "2130": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "SWAP5",
      "path": "26"
    },
    "2131": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "POP",
      "path": "26"
    },
    "2132": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "SWAP5",
      "path": "26"
    },
    "2133": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "SWAP3",
      "path": "26"
    },
    "2134": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "POP",
      "path": "26"
    },
    "2135": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "POP",
      "path": "26"
    },
    "2136": {
      "fn": "ECDSA.tryRecover",
      "offset": [
        5069,
        6563
      ],
      "op": "POP",
      "path": "26"
    },
    "2137": {
      "fn": "ECDSA.tryRecover",
      "jump": "o",
      "offset": [
        5069,
        6563
      ],
      "op": "JUMP",
      "path": "26"
    },
    "2138": {
      "op": "JUMPDEST"
    },
    "2139": {
      "op": "DUP1"
    },
    "2140": {
      "op": "CALLDATALOAD"
    },
    "2141": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2143": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2145": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2147": {
      "op": "SHL"
    },
    "2148": {
      "op": "SUB"
    },
    "2149": {
      "op": "DUP2"
    },
    "2150": {
      "op": "AND"
    },
    "2151": {
      "op": "DUP2"
    },
    "2152": {
      "op": "EQ"
    },
    "2153": {
      "op": "PUSH2",
      "value": "0x871"
    },
    "2156": {
      "op": "JUMPI"
    },
    "2157": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2159": {
      "op": "DUP1"
    },
    "2160": {
      "op": "REVERT"
    },
    "2161": {
      "op": "JUMPDEST"
    },
    "2162": {
      "op": "SWAP2"
    },
    "2163": {
      "op": "SWAP1"
    },
    "2164": {
      "op": "POP"
    },
    "2165": {
      "jump": "o",
      "op": "JUMP"
    },
    "2166": {
      "op": "JUMPDEST"
    },
    "2167": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2169": {
      "op": "DUP1"
    },
    "2170": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2172": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2174": {
      "op": "DUP5"
    },
    "2175": {
      "op": "DUP7"
    },
    "2176": {
      "op": "SUB"
    },
    "2177": {
      "op": "SLT"
    },
    "2178": {
      "op": "ISZERO"
    },
    "2179": {
      "op": "PUSH2",
      "value": "0x88B"
    },
    "2182": {
      "op": "JUMPI"
    },
    "2183": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2185": {
      "op": "DUP1"
    },
    "2186": {
      "op": "REVERT"
    },
    "2187": {
      "op": "JUMPDEST"
    },
    "2188": {
      "op": "PUSH2",
      "value": "0x894"
    },
    "2191": {
      "op": "DUP5"
    },
    "2192": {
      "op": "PUSH2",
      "value": "0x85A"
    },
    "2195": {
      "jump": "i",
      "op": "JUMP"
    },
    "2196": {
      "op": "JUMPDEST"
    },
    "2197": {
      "op": "SWAP3"
    },
    "2198": {
      "op": "POP"
    },
    "2199": {
      "op": "PUSH2",
      "value": "0x8A2"
    },
    "2202": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2204": {
      "op": "DUP6"
    },
    "2205": {
      "op": "ADD"
    },
    "2206": {
      "op": "PUSH2",
      "value": "0x85A"
    },
    "2209": {
      "jump": "i",
      "op": "JUMP"
    },
    "2210": {
      "op": "JUMPDEST"
    },
    "2211": {
      "op": "SWAP2"
    },
    "2212": {
      "op": "POP"
    },
    "2213": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2215": {
      "op": "DUP5"
    },
    "2216": {
      "op": "ADD"
    },
    "2217": {
      "op": "CALLDATALOAD"
    },
    "2218": {
      "op": "SWAP1"
    },
    "2219": {
      "op": "POP"
    },
    "2220": {
      "op": "SWAP3"
    },
    "2221": {
      "op": "POP"
    },
    "2222": {
      "op": "SWAP3"
    },
    "2223": {
      "op": "POP"
    },
    "2224": {
      "op": "SWAP3"
    },
    "2225": {
      "jump": "o",
      "op": "JUMP"
    },
    "2226": {
      "op": "JUMPDEST"
    },
    "2227": {
      "op": "DUP1"
    },
    "2228": {
      "op": "CALLDATALOAD"
    },
    "2229": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2231": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "2233": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2235": {
      "op": "SHL"
    },
    "2236": {
      "op": "SUB"
    },
    "2237": {
      "op": "DUP2"
    },
    "2238": {
      "op": "AND"
    },
    "2239": {
      "op": "DUP2"
    },
    "2240": {
      "op": "EQ"
    },
    "2241": {
      "op": "PUSH2",
      "value": "0x871"
    },
    "2244": {
      "op": "JUMPI"
    },
    "2245": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2247": {
      "op": "DUP1"
    },
    "2248": {
      "op": "REVERT"
    },
    "2249": {
      "op": "JUMPDEST"
    },
    "2250": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2252": {
      "op": "DUP1"
    },
    "2253": {
      "op": "DUP4"
    },
    "2254": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2256": {
      "op": "DUP5"
    },
    "2257": {
      "op": "ADD"
    },
    "2258": {
      "op": "SLT"
    },
    "2259": {
      "op": "PUSH2",
      "value": "0x8DB"
    },
    "2262": {
      "op": "JUMPI"
    },
    "2263": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2265": {
      "op": "DUP1"
    },
    "2266": {
      "op": "REVERT"
    },
    "2267": {
      "op": "JUMPDEST"
    },
    "2268": {
      "op": "POP"
    },
    "2269": {
      "op": "DUP2"
    },
    "2270": {
      "op": "CALLDATALOAD"
    },
    "2271": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2280": {
      "op": "DUP2"
    },
    "2281": {
      "op": "GT"
    },
    "2282": {
      "op": "ISZERO"
    },
    "2283": {
      "op": "PUSH2",
      "value": "0x8F3"
    },
    "2286": {
      "op": "JUMPI"
    },
    "2287": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2289": {
      "op": "DUP1"
    },
    "2290": {
      "op": "REVERT"
    },
    "2291": {
      "op": "JUMPDEST"
    },
    "2292": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2294": {
      "op": "DUP4"
    },
    "2295": {
      "op": "ADD"
    },
    "2296": {
      "op": "SWAP2"
    },
    "2297": {
      "op": "POP"
    },
    "2298": {
      "op": "DUP4"
    },
    "2299": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2301": {
      "op": "DUP3"
    },
    "2302": {
      "op": "DUP6"
    },
    "2303": {
      "op": "ADD"
    },
    "2304": {
      "op": "ADD"
    },
    "2305": {
      "op": "GT"
    },
    "2306": {
      "op": "ISZERO"
    },
    "2307": {
      "op": "PUSH2",
      "value": "0x642"
    },
    "2310": {
      "op": "JUMPI"
    },
    "2311": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2313": {
      "op": "DUP1"
    },
    "2314": {
      "op": "REVERT"
    },
    "2315": {
      "op": "JUMPDEST"
    },
    "2316": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2318": {
      "op": "DUP1"
    },
    "2319": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2321": {
      "op": "DUP1"
    },
    "2322": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2324": {
      "op": "DUP1"
    },
    "2325": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2327": {
      "op": "DUP8"
    },
    "2328": {
      "op": "DUP10"
    },
    "2329": {
      "op": "SUB"
    },
    "2330": {
      "op": "SLT"
    },
    "2331": {
      "op": "ISZERO"
    },
    "2332": {
      "op": "PUSH2",
      "value": "0x924"
    },
    "2335": {
      "op": "JUMPI"
    },
    "2336": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2338": {
      "op": "DUP1"
    },
    "2339": {
      "op": "REVERT"
    },
    "2340": {
      "op": "JUMPDEST"
    },
    "2341": {
      "op": "PUSH2",
      "value": "0x92D"
    },
    "2344": {
      "op": "DUP8"
    },
    "2345": {
      "op": "PUSH2",
      "value": "0x8B2"
    },
    "2348": {
      "jump": "i",
      "op": "JUMP"
    },
    "2349": {
      "op": "JUMPDEST"
    },
    "2350": {
      "op": "SWAP6"
    },
    "2351": {
      "op": "POP"
    },
    "2352": {
      "op": "PUSH2",
      "value": "0x93B"
    },
    "2355": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2357": {
      "op": "DUP9"
    },
    "2358": {
      "op": "ADD"
    },
    "2359": {
      "op": "PUSH2",
      "value": "0x85A"
    },
    "2362": {
      "jump": "i",
      "op": "JUMP"
    },
    "2363": {
      "op": "JUMPDEST"
    },
    "2364": {
      "op": "SWAP5"
    },
    "2365": {
      "op": "POP"
    },
    "2366": {
      "op": "PUSH2",
      "value": "0x949"
    },
    "2369": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2371": {
      "op": "DUP9"
    },
    "2372": {
      "op": "ADD"
    },
    "2373": {
      "op": "PUSH2",
      "value": "0x85A"
    },
    "2376": {
      "jump": "i",
      "op": "JUMP"
    },
    "2377": {
      "op": "JUMPDEST"
    },
    "2378": {
      "op": "SWAP4"
    },
    "2379": {
      "op": "POP"
    },
    "2380": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2382": {
      "op": "DUP8"
    },
    "2383": {
      "op": "ADD"
    },
    "2384": {
      "op": "CALLDATALOAD"
    },
    "2385": {
      "op": "SWAP3"
    },
    "2386": {
      "op": "POP"
    },
    "2387": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "2389": {
      "op": "DUP8"
    },
    "2390": {
      "op": "ADD"
    },
    "2391": {
      "op": "CALLDATALOAD"
    },
    "2392": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2401": {
      "op": "DUP2"
    },
    "2402": {
      "op": "GT"
    },
    "2403": {
      "op": "ISZERO"
    },
    "2404": {
      "op": "PUSH2",
      "value": "0x96C"
    },
    "2407": {
      "op": "JUMPI"
    },
    "2408": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2410": {
      "op": "DUP1"
    },
    "2411": {
      "op": "REVERT"
    },
    "2412": {
      "op": "JUMPDEST"
    },
    "2413": {
      "op": "PUSH2",
      "value": "0x978"
    },
    "2416": {
      "op": "DUP10"
    },
    "2417": {
      "op": "DUP3"
    },
    "2418": {
      "op": "DUP11"
    },
    "2419": {
      "op": "ADD"
    },
    "2420": {
      "op": "PUSH2",
      "value": "0x8C9"
    },
    "2423": {
      "jump": "i",
      "op": "JUMP"
    },
    "2424": {
      "op": "JUMPDEST"
    },
    "2425": {
      "op": "SWAP8"
    },
    "2426": {
      "op": "SWAP11"
    },
    "2427": {
      "op": "SWAP7"
    },
    "2428": {
      "op": "SWAP10"
    },
    "2429": {
      "op": "POP"
    },
    "2430": {
      "op": "SWAP5"
    },
    "2431": {
      "op": "SWAP8"
    },
    "2432": {
      "op": "POP"
    },
    "2433": {
      "op": "SWAP3"
    },
    "2434": {
      "op": "SWAP6"
    },
    "2435": {
      "op": "SWAP4"
    },
    "2436": {
      "op": "SWAP5"
    },
    "2437": {
      "op": "SWAP3"
    },
    "2438": {
      "op": "POP"
    },
    "2439": {
      "op": "POP"
    },
    "2440": {
      "op": "POP"
    },
    "2441": {
      "jump": "o",
      "op": "JUMP"
    },
    "2442": {
      "op": "JUMPDEST"
    },
    "2443": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2445": {
      "op": "JUMPDEST"
    },
    "2446": {
      "op": "DUP4"
    },
    "2447": {
      "op": "DUP2"
    },
    "2448": {
      "op": "LT"
    },
    "2449": {
      "op": "ISZERO"
    },
    "2450": {
      "op": "PUSH2",
      "value": "0x9A5"
    },
    "2453": {
      "op": "JUMPI"
    },
    "2454": {
      "op": "DUP2"
    },
    "2455": {
      "op": "DUP2"
    },
    "2456": {
      "op": "ADD"
    },
    "2457": {
      "op": "MLOAD"
    },
    "2458": {
      "op": "DUP4"
    },
    "2459": {
      "op": "DUP3"
    },
    "2460": {
      "op": "ADD"
    },
    "2461": {
      "op": "MSTORE"
    },
    "2462": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2464": {
      "op": "ADD"
    },
    "2465": {
      "op": "PUSH2",
      "value": "0x98D"
    },
    "2468": {
      "op": "JUMP"
    },
    "2469": {
      "op": "JUMPDEST"
    },
    "2470": {
      "op": "POP"
    },
    "2471": {
      "op": "POP"
    },
    "2472": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2474": {
      "op": "SWAP2"
    },
    "2475": {
      "op": "ADD"
    },
    "2476": {
      "op": "MSTORE"
    },
    "2477": {
      "jump": "o",
      "op": "JUMP"
    },
    "2478": {
      "op": "JUMPDEST"
    },
    "2479": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2481": {
      "op": "DUP2"
    },
    "2482": {
      "op": "MSTORE"
    },
    "2483": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2485": {
      "op": "DUP3"
    },
    "2486": {
      "op": "MLOAD"
    },
    "2487": {
      "op": "DUP1"
    },
    "2488": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2490": {
      "op": "DUP5"
    },
    "2491": {
      "op": "ADD"
    },
    "2492": {
      "op": "MSTORE"
    },
    "2493": {
      "op": "PUSH2",
      "value": "0x9CD"
    },
    "2496": {
      "op": "DUP2"
    },
    "2497": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2499": {
      "op": "DUP6"
    },
    "2500": {
      "op": "ADD"
    },
    "2501": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2503": {
      "op": "DUP8"
    },
    "2504": {
      "op": "ADD"
    },
    "2505": {
      "op": "PUSH2",
      "value": "0x98A"
    },
    "2508": {
      "jump": "i",
      "op": "JUMP"
    },
    "2509": {
      "op": "JUMPDEST"
    },
    "2510": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2512": {
      "op": "ADD"
    },
    "2513": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2515": {
      "op": "NOT"
    },
    "2516": {
      "op": "AND"
    },
    "2517": {
      "op": "SWAP2"
    },
    "2518": {
      "op": "SWAP1"
    },
    "2519": {
      "op": "SWAP2"
    },
    "2520": {
      "op": "ADD"
    },
    "2521": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2523": {
      "op": "ADD"
    },
    "2524": {
      "op": "SWAP3"
    },
    "2525": {
      "op": "SWAP2"
    },
    "2526": {
      "op": "POP"
    },
    "2527": {
      "op": "POP"
    },
    "2528": {
      "jump": "o",
      "op": "JUMP"
    },
    "2529": {
      "op": "JUMPDEST"
    },
    "2530": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2532": {
      "op": "DUP1"
    },
    "2533": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2535": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2537": {
      "op": "DUP5"
    },
    "2538": {
      "op": "DUP7"
    },
    "2539": {
      "op": "SUB"
    },
    "2540": {
      "op": "SLT"
    },
    "2541": {
      "op": "ISZERO"
    },
    "2542": {
      "op": "PUSH2",
      "value": "0x9F6"
    },
    "2545": {
      "op": "JUMPI"
    },
    "2546": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2548": {
      "op": "DUP1"
    },
    "2549": {
      "op": "REVERT"
    },
    "2550": {
      "op": "JUMPDEST"
    },
    "2551": {
      "op": "PUSH2",
      "value": "0x9FF"
    },
    "2554": {
      "op": "DUP5"
    },
    "2555": {
      "op": "PUSH2",
      "value": "0x85A"
    },
    "2558": {
      "jump": "i",
      "op": "JUMP"
    },
    "2559": {
      "op": "JUMPDEST"
    },
    "2560": {
      "op": "SWAP6"
    },
    "2561": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2563": {
      "op": "DUP6"
    },
    "2564": {
      "op": "ADD"
    },
    "2565": {
      "op": "CALLDATALOAD"
    },
    "2566": {
      "op": "SWAP6"
    },
    "2567": {
      "op": "POP"
    },
    "2568": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2570": {
      "op": "SWAP1"
    },
    "2571": {
      "op": "SWAP5"
    },
    "2572": {
      "op": "ADD"
    },
    "2573": {
      "op": "CALLDATALOAD"
    },
    "2574": {
      "op": "SWAP4"
    },
    "2575": {
      "op": "SWAP3"
    },
    "2576": {
      "op": "POP"
    },
    "2577": {
      "op": "POP"
    },
    "2578": {
      "op": "POP"
    },
    "2579": {
      "jump": "o",
      "op": "JUMP"
    },
    "2580": {
      "op": "JUMPDEST"
    },
    "2581": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2583": {
      "op": "DUP1"
    },
    "2584": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2586": {
      "op": "DUP1"
    },
    "2587": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2589": {
      "op": "DUP1"
    },
    "2590": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "2592": {
      "op": "DUP8"
    },
    "2593": {
      "op": "DUP10"
    },
    "2594": {
      "op": "SUB"
    },
    "2595": {
      "op": "SLT"
    },
    "2596": {
      "op": "ISZERO"
    },
    "2597": {
      "op": "PUSH2",
      "value": "0xA2D"
    },
    "2600": {
      "op": "JUMPI"
    },
    "2601": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2603": {
      "op": "DUP1"
    },
    "2604": {
      "op": "REVERT"
    },
    "2605": {
      "op": "JUMPDEST"
    },
    "2606": {
      "op": "PUSH2",
      "value": "0xA36"
    },
    "2609": {
      "op": "DUP8"
    },
    "2610": {
      "op": "PUSH2",
      "value": "0x8B2"
    },
    "2613": {
      "jump": "i",
      "op": "JUMP"
    },
    "2614": {
      "op": "JUMPDEST"
    },
    "2615": {
      "op": "SWAP6"
    },
    "2616": {
      "op": "POP"
    },
    "2617": {
      "op": "PUSH2",
      "value": "0xA44"
    },
    "2620": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2622": {
      "op": "DUP9"
    },
    "2623": {
      "op": "ADD"
    },
    "2624": {
      "op": "PUSH2",
      "value": "0x85A"
    },
    "2627": {
      "jump": "i",
      "op": "JUMP"
    },
    "2628": {
      "op": "JUMPDEST"
    },
    "2629": {
      "op": "SWAP5"
    },
    "2630": {
      "op": "POP"
    },
    "2631": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2633": {
      "op": "DUP8"
    },
    "2634": {
      "op": "ADD"
    },
    "2635": {
      "op": "CALLDATALOAD"
    },
    "2636": {
      "op": "SWAP4"
    },
    "2637": {
      "op": "POP"
    },
    "2638": {
      "op": "PUSH1",
      "value": "0x60"
    },
    "2640": {
      "op": "DUP8"
    },
    "2641": {
      "op": "ADD"
    },
    "2642": {
      "op": "CALLDATALOAD"
    },
    "2643": {
      "op": "SWAP3"
    },
    "2644": {
      "op": "POP"
    },
    "2645": {
      "op": "PUSH1",
      "value": "0x80"
    },
    "2647": {
      "op": "DUP8"
    },
    "2648": {
      "op": "ADD"
    },
    "2649": {
      "op": "CALLDATALOAD"
    },
    "2650": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2659": {
      "op": "DUP2"
    },
    "2660": {
      "op": "GT"
    },
    "2661": {
      "op": "ISZERO"
    },
    "2662": {
      "op": "PUSH2",
      "value": "0x96C"
    },
    "2665": {
      "op": "JUMPI"
    },
    "2666": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2668": {
      "op": "DUP1"
    },
    "2669": {
      "op": "REVERT"
    },
    "2670": {
      "op": "JUMPDEST"
    },
    "2671": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2673": {
      "op": "DUP1"
    },
    "2674": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2676": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2678": {
      "op": "DUP5"
    },
    "2679": {
      "op": "DUP7"
    },
    "2680": {
      "op": "SUB"
    },
    "2681": {
      "op": "SLT"
    },
    "2682": {
      "op": "ISZERO"
    },
    "2683": {
      "op": "PUSH2",
      "value": "0xA83"
    },
    "2686": {
      "op": "JUMPI"
    },
    "2687": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2689": {
      "op": "DUP1"
    },
    "2690": {
      "op": "REVERT"
    },
    "2691": {
      "op": "JUMPDEST"
    },
    "2692": {
      "op": "DUP4"
    },
    "2693": {
      "op": "CALLDATALOAD"
    },
    "2694": {
      "op": "SWAP3"
    },
    "2695": {
      "op": "POP"
    },
    "2696": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2698": {
      "op": "DUP5"
    },
    "2699": {
      "op": "ADD"
    },
    "2700": {
      "op": "CALLDATALOAD"
    },
    "2701": {
      "op": "PUSH8",
      "value": "0xFFFFFFFFFFFFFFFF"
    },
    "2710": {
      "op": "DUP2"
    },
    "2711": {
      "op": "GT"
    },
    "2712": {
      "op": "ISZERO"
    },
    "2713": {
      "op": "PUSH2",
      "value": "0xAA1"
    },
    "2716": {
      "op": "JUMPI"
    },
    "2717": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2719": {
      "op": "DUP1"
    },
    "2720": {
      "op": "REVERT"
    },
    "2721": {
      "op": "JUMPDEST"
    },
    "2722": {
      "op": "PUSH2",
      "value": "0xAAD"
    },
    "2725": {
      "op": "DUP7"
    },
    "2726": {
      "op": "DUP3"
    },
    "2727": {
      "op": "DUP8"
    },
    "2728": {
      "op": "ADD"
    },
    "2729": {
      "op": "PUSH2",
      "value": "0x8C9"
    },
    "2732": {
      "jump": "i",
      "op": "JUMP"
    },
    "2733": {
      "op": "JUMPDEST"
    },
    "2734": {
      "op": "SWAP5"
    },
    "2735": {
      "op": "SWAP8"
    },
    "2736": {
      "op": "SWAP1"
    },
    "2737": {
      "op": "SWAP7"
    },
    "2738": {
      "op": "POP"
    },
    "2739": {
      "op": "SWAP4"
    },
    "2740": {
      "op": "SWAP5"
    },
    "2741": {
      "op": "POP"
    },
    "2742": {
      "op": "POP"
    },
    "2743": {
      "op": "POP"
    },
    "2744": {
      "op": "POP"
    },
    "2745": {
      "jump": "o",
      "op": "JUMP"
    },
    "2746": {
      "op": "JUMPDEST"
    },
    "2747": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2749": {
      "op": "DUP3"
    },
    "2750": {
      "op": "MLOAD"
    },
    "2751": {
      "op": "PUSH2",
      "value": "0xACC"
    },
    "2754": {
      "op": "DUP2"
    },
    "2755": {
      "op": "DUP5"
    },
    "2756": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2758": {
      "op": "DUP8"
    },
    "2759": {
      "op": "ADD"
    },
    "2760": {
      "op": "PUSH2",
      "value": "0x98A"
    },
    "2763": {
      "jump": "i",
      "op": "JUMP"
    },
    "2764": {
      "op": "JUMPDEST"
    },
    "2765": {
      "op": "SWAP2"
    },
    "2766": {
      "op": "SWAP1"
    },
    "2767": {
      "op": "SWAP2"
    },
    "2768": {
      "op": "ADD"
    },
    "2769": {
      "op": "SWAP3"
    },
    "2770": {
      "op": "SWAP2"
    },
    "2771": {
      "op": "POP"
    },
    "2772": {
      "op": "POP"
    },
    "2773": {
      "jump": "o",
      "op": "JUMP"
    },
    "2774": {
      "op": "JUMPDEST"
    },
    "2775": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2777": {
      "op": "DUP2"
    },
    "2778": {
      "op": "MSTORE"
    },
    "2779": {
      "op": "DUP2"
    },
    "2780": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "2782": {
      "op": "DUP3"
    },
    "2783": {
      "op": "ADD"
    },
    "2784": {
      "op": "MSTORE"
    },
    "2785": {
      "op": "DUP2"
    },
    "2786": {
      "op": "DUP4"
    },
    "2787": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2789": {
      "op": "DUP4"
    },
    "2790": {
      "op": "ADD"
    },
    "2791": {
      "op": "CALLDATACOPY"
    },
    "2792": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2794": {
      "op": "DUP2"
    },
    "2795": {
      "op": "DUP4"
    },
    "2796": {
      "op": "ADD"
    },
    "2797": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "2799": {
      "op": "SWAP1"
    },
    "2800": {
      "op": "DUP2"
    },
    "2801": {
      "op": "ADD"
    },
    "2802": {
      "op": "SWAP2"
    },
    "2803": {
      "op": "SWAP1"
    },
    "2804": {
      "op": "SWAP2"
    },
    "2805": {
      "op": "MSTORE"
    },
    "2806": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2808": {
      "op": "SWAP1"
    },
    "2809": {
      "op": "SWAP3"
    },
    "2810": {
      "op": "ADD"
    },
    "2811": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "2813": {
      "op": "NOT"
    },
    "2814": {
      "op": "AND"
    },
    "2815": {
      "op": "ADD"
    },
    "2816": {
      "op": "ADD"
    },
    "2817": {
      "op": "SWAP2"
    },
    "2818": {
      "op": "SWAP1"
    },
    "2819": {
      "op": "POP"
    },
    "2820": {
      "jump": "o",
      "op": "JUMP"
    },
    "2821": {
      "op": "JUMPDEST"
    },
    "2822": {
      "op": "PUSH4",
      "value": "0x4E487B71"
    },
    "2827": {
      "op": "PUSH1",
      "value": "0xE0"
    },
    "2829": {
      "op": "SHL"
    },
    "2830": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2832": {
      "op": "MSTORE"
    },
    "2833": {
      "op": "PUSH1",
      "value": "0x21"
    },
    "2835": {
      "op": "PUSH1",
      "value": "0x4"
    },
    "2837": {
      "op": "MSTORE"
    },
    "2838": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "2840": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "2842": {
      "op": "REVERT"
    }
  },
  "sha1": "dca752a90433b495f019e4f0c19a8f87b90a0b27",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.19;\n\nimport {ECDSA} from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport {EIP712} from \"@openzeppelin/contracts/utils/cryptography/EIP712.sol\";\n\nimport {NftId} from \"../registry/IChainNft.sol\";\n\n\ncontract StakingMessageHelper is \n    EIP712\n{\n    string public constant EIP712_DOMAIN_NAME = \"EtheriscStaking\";\n    string public constant EIP712_DOMAIN_VERSION = \"1\";\n\n    // hint: user defined data typs don't work here, NftId -> uint96\n    string public constant EIP712_STAKE_TYPE = \"Stake(uint96 target,uint256 dipAmount,bytes32 signatureId)\";\n    bytes32 private constant EIP712_STAKE_TYPE_HASH = keccak256(abi.encodePacked(EIP712_STAKE_TYPE));\n\n    string public constant EIP712_RESTAKE_TYPE = \"Restake(uint96 stakeId,uint96 newTarget,bytes32 signatureId)\";\n    bytes32 private constant EIP712_RESTAKE_TYPE_HASH = keccak256(abi.encodePacked(EIP712_RESTAKE_TYPE));\n\n\n    mapping(bytes32 signatureHash => bool isUsed) private _signatureIsUsed;\n\n\n    constructor()\n        EIP712(EIP712_DOMAIN_NAME, EIP712_DOMAIN_VERSION)\n    // solhint-disable-next-line no-empty-blocks\n    { }\n\n\n    function processStakeSignature(\n        address owner,\n        NftId target,\n        uint256 dipAmount,\n        bytes32 signatureId, // ensures unique signatures even when all other attributes are equal\n        bytes calldata signature\n    )\n        external \n    {\n        bytes32 digest = getStakeDigest(target, dipAmount, signatureId);\n        address signer = getSigner(digest, signature);\n\n        _processSignature(owner, signer ,signature);\n    }\n\n\n    function processRestakeSignature(\n        address owner,\n        NftId stakeId,\n        NftId newTarget,\n        bytes32 signatureId, // ensures unique signatures even when all other attributes are equal\n        bytes calldata signature\n    )\n        external \n    {\n        bytes32 digest = getRestakeDigest(stakeId, newTarget, signatureId);\n        address signer = getSigner(digest, signature);\n\n        _processSignature(owner, signer ,signature);\n    }\n\n\n    function getStakeDigest(\n        NftId target,\n        uint256 dipAmount,\n        bytes32 signatureId\n    )\n        public\n        view\n        returns(bytes32 digest)\n    {\n        bytes32 structHash = keccak256(\n            abi.encode(\n                EIP712_STAKE_TYPE_HASH,\n                target,\n                dipAmount,\n                signatureId));\n\n        digest = _hashTypedDataV4(structHash);\n    }\n\n\n    function getRestakeDigest(\n        NftId stakeId,\n        NftId newTarget,\n        bytes32 signatureId\n    )\n        public\n        view\n        returns(bytes32 digest)\n    {\n        bytes32 structHash = keccak256(\n            abi.encode(\n                EIP712_RESTAKE_TYPE_HASH,\n                stakeId,\n                newTarget,\n                signatureId));\n\n        digest = _hashTypedDataV4(structHash);\n    }\n\n\n    function getSigner(\n        bytes32 digest,\n        bytes calldata signature\n    )\n        public\n        pure\n        returns(address signer)\n    {\n        return ECDSA.recover(digest, signature);\n    }\n\n\n    function _processSignature(\n        address owner,\n        address signer,\n        bytes calldata signature\n    )\n        internal\n    {\n        bytes32 signatureHash = keccak256(abi.encode(signature));\n        require(!_signatureIsUsed[signatureHash], \"ERROR:SMH-001:SIGNATURE_USED\");\n        require(owner == signer, \"ERROR:SMH-002:SIGNATURE_INVALID\");\n        _signatureIsUsed[signatureHash] = true;\n    }    \n}\n",
  "sourceMap": "271:3282:53:-:0;;;1026:128;;;;;;;;;-1:-1:-1;1055:18:53;;;;;;;;;;;-1:-1:-1;;;1055:18:53;;;;;;;1075:21;;;;;;;;;;;-1:-1:-1;;;1075:21:53;;;;2550:22:27;;;;2787:25;;;;2606;2822:31;;;;2882:13;2863:32;;1055:18:53;;1075:21;2660:117:27;2932:58;2660:117;2550:22;2606:25;3642:73;;;;;;273:25:67;;;314:18;;;307:34;;;357:18;;;350:34;;;3686:13:27;400:18:67;;;393:34;3709:4:27;443:19:67;;;436:61;3606:7:27;;245:19:67;;3642:73:27;;;;;;;;;;;;3632:84;;;;;;3625:91;;3466:257;;;;;;2932:58;2905:85;;3023:4;3000:28;;3038:21;;-1:-1:-1;271:3282:53;;-1:-1:-1;;;271:3282:53;14:489:67;271:3282:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "sourcePath": "contracts/staking/StakingMessageHelper.sol",
  "type": "contract"
}