{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c74e457bb2240f25b94336b8ef8afc2a4b43f93903d4081cb19c428cb73b342464736f6c63430008180033","sourceMap":"189:35787:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;189:35787:14;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c74e457bb2240f25b94336b8ef8afc2a4b43f93903d4081cb19c428cb73b342464736f6c63430008180033","sourceMap":"189:35787:14:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Bytes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Utility functions for bytes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/Bytes.sol\":\"Bytes\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@latticexyz/store/src/Bytes.sol":"Bytes"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/Bytes.sol","id":7244,"exportedSymbols":{"Bytes":[7243]},"nodeType":"SourceUnit","src":"32:35945:14","nodes":[{"id":6439,"nodeType":"PragmaDirective","src":"32:25:14","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":7243,"nodeType":"ContractDefinition","src":"189:35787:14","nodes":[{"id":6454,"nodeType":"FunctionDefinition","src":"760:164:14","nodes":[],"body":{"id":6453,"nodeType":"Block","src":"852:72:14","nodes":[],"statements":[{"AST":{"nativeSrc":"867:35:14","nodeType":"YulBlock","src":"867:35:14","statements":[{"expression":{"arguments":[{"name":"input","nativeSrc":"882:5:14","nodeType":"YulIdentifier","src":"882:5:14"},{"name":"length","nativeSrc":"889:6:14","nodeType":"YulIdentifier","src":"889:6:14"}],"functionName":{"name":"mstore","nativeSrc":"875:6:14","nodeType":"YulIdentifier","src":"875:6:14"},"nativeSrc":"875:21:14","nodeType":"YulFunctionCall","src":"875:21:14"},"nativeSrc":"875:21:14","nodeType":"YulExpressionStatement","src":"875:21:14"}]},"evmVersion":"paris","externalReferences":[{"declaration":6443,"isOffset":false,"isSlot":false,"src":"882:5:14","valueSize":1},{"declaration":6445,"isOffset":false,"isSlot":false,"src":"889:6:14","valueSize":1}],"id":6450,"nodeType":"InlineAssembly","src":"858:44:14"},{"expression":{"id":6451,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6443,"src":"914:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6449,"id":6452,"nodeType":"Return","src":"907:12:14"}]},"documentation":{"id":6441,"nodeType":"StructuredDocumentation","src":"385:372:14","text":" @dev Sets the length of a bytes blob in memory.\n This function does not resize the memory allocation; it only changes the length\n field, which affects operations that access the length property.\n @param input The bytes blob to modify.\n @param length The new length to set.\n @return Reference to the input bytes blob with modified length."},"implemented":true,"kind":"function","modifiers":[],"name":"setLength","nameLocation":"769:9:14","parameters":{"id":6446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6443,"mutability":"mutable","name":"input","nameLocation":"792:5:14","nodeType":"VariableDeclaration","scope":6454,"src":"779:18:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6442,"name":"bytes","nodeType":"ElementaryTypeName","src":"779:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6445,"mutability":"mutable","name":"length","nameLocation":"807:6:14","nodeType":"VariableDeclaration","scope":6454,"src":"799:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6444,"name":"uint256","nodeType":"ElementaryTypeName","src":"799:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"778:36:14"},"returnParameters":{"id":6449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6454,"src":"838:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6447,"name":"bytes","nodeType":"ElementaryTypeName","src":"838:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"837:14:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6474,"nodeType":"FunctionDefinition","src":"1563:492:14","nodes":[],"body":{"id":6473,"nodeType":"Block","src":"1672:383:14","nodes":[],"statements":[{"assignments":[6467],"declarations":[{"constant":false,"id":6467,"mutability":"mutable","name":"mask","nameLocation":"1685:4:14","nodeType":"VariableDeclaration","scope":6473,"src":"1678:11:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6466,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1678:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":6469,"initialValue":{"hexValue":"30786666666666666666","id":6468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1692:10:14","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"nodeType":"VariableDeclarationStatement","src":"1678:24:14"},{"AST":{"nativeSrc":"1717:316:14","nodeType":"YulBlock","src":"1717:316:14","statements":[{"nativeSrc":"1725:48:14","nodeType":"YulVariableDeclaration","src":"1725:48:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"input","nativeSrc":"1752:5:14","nodeType":"YulIdentifier","src":"1752:5:14"},{"kind":"number","nativeSrc":"1759:4:14","nodeType":"YulLiteral","src":"1759:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1748:3:14","nodeType":"YulIdentifier","src":"1748:3:14"},"nativeSrc":"1748:16:14","nodeType":"YulFunctionCall","src":"1748:16:14"},{"name":"index","nativeSrc":"1766:5:14","nodeType":"YulIdentifier","src":"1766:5:14"}],"functionName":{"name":"add","nativeSrc":"1744:3:14","nodeType":"YulIdentifier","src":"1744:3:14"},"nativeSrc":"1744:28:14","nodeType":"YulFunctionCall","src":"1744:28:14"}],"functionName":{"name":"mload","nativeSrc":"1738:5:14","nodeType":"YulIdentifier","src":"1738:5:14"},"nativeSrc":"1738:35:14","nodeType":"YulFunctionCall","src":"1738:35:14"},"variables":[{"name":"value","nativeSrc":"1729:5:14","nodeType":"YulTypedName","src":"1729:5:14","type":""}]},{"nativeSrc":"1827:30:14","nodeType":"YulAssignment","src":"1827:30:14","value":{"arguments":[{"name":"value","nativeSrc":"1840:5:14","nodeType":"YulIdentifier","src":"1840:5:14"},{"arguments":[{"name":"mask","nativeSrc":"1851:4:14","nodeType":"YulIdentifier","src":"1851:4:14"}],"functionName":{"name":"not","nativeSrc":"1847:3:14","nodeType":"YulIdentifier","src":"1847:3:14"},"nativeSrc":"1847:9:14","nodeType":"YulFunctionCall","src":"1847:9:14"}],"functionName":{"name":"and","nativeSrc":"1836:3:14","nodeType":"YulIdentifier","src":"1836:3:14"},"nativeSrc":"1836:21:14","nodeType":"YulFunctionCall","src":"1836:21:14"},"variableNames":[{"name":"value","nativeSrc":"1827:5:14","nodeType":"YulIdentifier","src":"1827:5:14"}]},{"nativeSrc":"1894:29:14","nodeType":"YulAssignment","src":"1894:29:14","value":{"arguments":[{"name":"value","nativeSrc":"1906:5:14","nodeType":"YulIdentifier","src":"1906:5:14"},{"name":"overwrite","nativeSrc":"1913:9:14","nodeType":"YulIdentifier","src":"1913:9:14"}],"functionName":{"name":"or","nativeSrc":"1903:2:14","nodeType":"YulIdentifier","src":"1903:2:14"},"nativeSrc":"1903:20:14","nodeType":"YulFunctionCall","src":"1903:20:14"},"variableNames":[{"name":"value","nativeSrc":"1894:5:14","nodeType":"YulIdentifier","src":"1894:5:14"}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"input","nativeSrc":"1976:5:14","nodeType":"YulIdentifier","src":"1976:5:14"},{"kind":"number","nativeSrc":"1983:4:14","nodeType":"YulLiteral","src":"1983:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1972:3:14","nodeType":"YulIdentifier","src":"1972:3:14"},"nativeSrc":"1972:16:14","nodeType":"YulFunctionCall","src":"1972:16:14"},{"name":"index","nativeSrc":"1990:5:14","nodeType":"YulIdentifier","src":"1990:5:14"}],"functionName":{"name":"add","nativeSrc":"1968:3:14","nodeType":"YulIdentifier","src":"1968:3:14"},"nativeSrc":"1968:28:14","nodeType":"YulFunctionCall","src":"1968:28:14"},{"name":"value","nativeSrc":"1998:5:14","nodeType":"YulIdentifier","src":"1998:5:14"}],"functionName":{"name":"mstore","nativeSrc":"1961:6:14","nodeType":"YulIdentifier","src":"1961:6:14"},"nativeSrc":"1961:43:14","nodeType":"YulFunctionCall","src":"1961:43:14"},"nativeSrc":"1961:43:14","nodeType":"YulExpressionStatement","src":"1961:43:14"}]},"evmVersion":"paris","externalReferences":[{"declaration":6459,"isOffset":false,"isSlot":false,"src":"1766:5:14","valueSize":1},{"declaration":6459,"isOffset":false,"isSlot":false,"src":"1990:5:14","valueSize":1},{"declaration":6457,"isOffset":false,"isSlot":false,"src":"1752:5:14","valueSize":1},{"declaration":6457,"isOffset":false,"isSlot":false,"src":"1976:5:14","valueSize":1},{"declaration":6467,"isOffset":false,"isSlot":false,"src":"1851:4:14","valueSize":1},{"declaration":6461,"isOffset":false,"isSlot":false,"src":"1913:9:14","valueSize":1}],"id":6470,"nodeType":"InlineAssembly","src":"1708:325:14"},{"expression":{"id":6471,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6457,"src":"2045:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6465,"id":6472,"nodeType":"Return","src":"2038:12:14"}]},"documentation":{"id":6455,"nodeType":"StructuredDocumentation","src":"1104:456:14","text":" @dev Sets a specific 4-byte sequence in a bytes blob at a given index.\n @param input The bytes blob in which a specific 4-byte sequence is to be altered.\n @param index The position within the bytes blob to start altering the 4-byte sequence. Index starts from the left.\n @param overwrite The new 4-byte value to be set at the specified index.\n @return The modified bytes blob with the new 4-byte value at the specified index."},"implemented":true,"kind":"function","modifiers":[],"name":"setBytes4","nameLocation":"1572:9:14","parameters":{"id":6462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6457,"mutability":"mutable","name":"input","nameLocation":"1595:5:14","nodeType":"VariableDeclaration","scope":6474,"src":"1582:18:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6456,"name":"bytes","nodeType":"ElementaryTypeName","src":"1582:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6459,"mutability":"mutable","name":"index","nameLocation":"1610:5:14","nodeType":"VariableDeclaration","scope":6474,"src":"1602:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6461,"mutability":"mutable","name":"overwrite","nameLocation":"1624:9:14","nodeType":"VariableDeclaration","scope":6474,"src":"1617:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6460,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1617:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1581:53:14"},"returnParameters":{"id":6465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6474,"src":"1658:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6463,"name":"bytes","nodeType":"ElementaryTypeName","src":"1658:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1657:14:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6486,"nodeType":"FunctionDefinition","src":"2612:168:14","nodes":[],"body":{"id":6485,"nodeType":"Block","src":"2703:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"2718:58:14","nodeType":"YulBlock","src":"2718:58:14","statements":[{"nativeSrc":"2726:44:14","nodeType":"YulAssignment","src":"2726:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"2750:4:14","nodeType":"YulIdentifier","src":"2750:4:14"},{"kind":"number","nativeSrc":"2756:4:14","nodeType":"YulLiteral","src":"2756:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2746:3:14","nodeType":"YulIdentifier","src":"2746:3:14"},"nativeSrc":"2746:15:14","nodeType":"YulFunctionCall","src":"2746:15:14"},{"name":"start","nativeSrc":"2763:5:14","nodeType":"YulIdentifier","src":"2763:5:14"}],"functionName":{"name":"add","nativeSrc":"2742:3:14","nodeType":"YulIdentifier","src":"2742:3:14"},"nativeSrc":"2742:27:14","nodeType":"YulFunctionCall","src":"2742:27:14"}],"functionName":{"name":"mload","nativeSrc":"2736:5:14","nodeType":"YulIdentifier","src":"2736:5:14"},"nativeSrc":"2736:34:14","nodeType":"YulFunctionCall","src":"2736:34:14"},"variableNames":[{"name":"output","nativeSrc":"2726:6:14","nodeType":"YulIdentifier","src":"2726:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6477,"isOffset":false,"isSlot":false,"src":"2750:4:14","valueSize":1},{"declaration":6482,"isOffset":false,"isSlot":false,"src":"2726:6:14","valueSize":1},{"declaration":6479,"isOffset":false,"isSlot":false,"src":"2763:5:14","valueSize":1}],"id":6484,"nodeType":"InlineAssembly","src":"2709:67:14"}]},"documentation":{"id":6475,"nodeType":"StructuredDocumentation","src":"2274:335:14","text":" @dev Extracts a single byte from a bytes blob starting at a specific position.\n @param data The bytes blob from which a byte is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes1 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes1","nameLocation":"2621:9:14","parameters":{"id":6480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6477,"mutability":"mutable","name":"data","nameLocation":"2644:4:14","nodeType":"VariableDeclaration","scope":6486,"src":"2631:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6476,"name":"bytes","nodeType":"ElementaryTypeName","src":"2631:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6479,"mutability":"mutable","name":"start","nameLocation":"2658:5:14","nodeType":"VariableDeclaration","scope":6486,"src":"2650:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6478,"name":"uint256","nodeType":"ElementaryTypeName","src":"2650:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2630:34:14"},"returnParameters":{"id":6483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6482,"mutability":"mutable","name":"output","nameLocation":"2695:6:14","nodeType":"VariableDeclaration","scope":6486,"src":"2688:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":6481,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2688:6:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"2687:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6498,"nodeType":"FunctionDefinition","src":"3134:153:14","nodes":[],"body":{"id":6497,"nodeType":"Block","src":"3220:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"3235:48:14","nodeType":"YulBlock","src":"3235:48:14","statements":[{"nativeSrc":"3243:34:14","nodeType":"YulAssignment","src":"3243:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3261:1:14","nodeType":"YulLiteral","src":"3261:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"3264:5:14","nodeType":"YulIdentifier","src":"3264:5:14"}],"functionName":{"name":"mul","nativeSrc":"3257:3:14","nodeType":"YulIdentifier","src":"3257:3:14"},"nativeSrc":"3257:13:14","nodeType":"YulFunctionCall","src":"3257:13:14"},{"name":"data","nativeSrc":"3272:4:14","nodeType":"YulIdentifier","src":"3272:4:14"}],"functionName":{"name":"shl","nativeSrc":"3253:3:14","nodeType":"YulIdentifier","src":"3253:3:14"},"nativeSrc":"3253:24:14","nodeType":"YulFunctionCall","src":"3253:24:14"},"variableNames":[{"name":"output","nativeSrc":"3243:6:14","nodeType":"YulIdentifier","src":"3243:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6489,"isOffset":false,"isSlot":false,"src":"3272:4:14","valueSize":1},{"declaration":6494,"isOffset":false,"isSlot":false,"src":"3243:6:14","valueSize":1},{"declaration":6491,"isOffset":false,"isSlot":false,"src":"3264:5:14","valueSize":1}],"id":6496,"nodeType":"InlineAssembly","src":"3226:57:14"}]},"documentation":{"id":6487,"nodeType":"StructuredDocumentation","src":"2784:347:14","text":" @dev Extracts a single byte from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a byte is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes1 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes1","nameLocation":"3143:9:14","parameters":{"id":6492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6489,"mutability":"mutable","name":"data","nameLocation":"3161:4:14","nodeType":"VariableDeclaration","scope":6498,"src":"3153:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3153:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6491,"mutability":"mutable","name":"start","nameLocation":"3175:5:14","nodeType":"VariableDeclaration","scope":6498,"src":"3167:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6490,"name":"uint256","nodeType":"ElementaryTypeName","src":"3167:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3152:29:14"},"returnParameters":{"id":6495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6494,"mutability":"mutable","name":"output","nameLocation":"3212:6:14","nodeType":"VariableDeclaration","scope":6498,"src":"3205:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":6493,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3205:6:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"3204:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6510,"nodeType":"FunctionDefinition","src":"3644:168:14","nodes":[],"body":{"id":6509,"nodeType":"Block","src":"3735:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"3750:58:14","nodeType":"YulBlock","src":"3750:58:14","statements":[{"nativeSrc":"3758:44:14","nodeType":"YulAssignment","src":"3758:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"3782:4:14","nodeType":"YulIdentifier","src":"3782:4:14"},{"kind":"number","nativeSrc":"3788:4:14","nodeType":"YulLiteral","src":"3788:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3778:3:14","nodeType":"YulIdentifier","src":"3778:3:14"},"nativeSrc":"3778:15:14","nodeType":"YulFunctionCall","src":"3778:15:14"},{"name":"start","nativeSrc":"3795:5:14","nodeType":"YulIdentifier","src":"3795:5:14"}],"functionName":{"name":"add","nativeSrc":"3774:3:14","nodeType":"YulIdentifier","src":"3774:3:14"},"nativeSrc":"3774:27:14","nodeType":"YulFunctionCall","src":"3774:27:14"}],"functionName":{"name":"mload","nativeSrc":"3768:5:14","nodeType":"YulIdentifier","src":"3768:5:14"},"nativeSrc":"3768:34:14","nodeType":"YulFunctionCall","src":"3768:34:14"},"variableNames":[{"name":"output","nativeSrc":"3758:6:14","nodeType":"YulIdentifier","src":"3758:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6501,"isOffset":false,"isSlot":false,"src":"3782:4:14","valueSize":1},{"declaration":6506,"isOffset":false,"isSlot":false,"src":"3758:6:14","valueSize":1},{"declaration":6503,"isOffset":false,"isSlot":false,"src":"3795:5:14","valueSize":1}],"id":6508,"nodeType":"InlineAssembly","src":"3741:67:14"}]},"documentation":{"id":6499,"nodeType":"StructuredDocumentation","src":"3291:350:14","text":" @dev Extracts a 2-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 2-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes2 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes2","nameLocation":"3653:9:14","parameters":{"id":6504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6501,"mutability":"mutable","name":"data","nameLocation":"3676:4:14","nodeType":"VariableDeclaration","scope":6510,"src":"3663:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6500,"name":"bytes","nodeType":"ElementaryTypeName","src":"3663:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6503,"mutability":"mutable","name":"start","nameLocation":"3690:5:14","nodeType":"VariableDeclaration","scope":6510,"src":"3682:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6502,"name":"uint256","nodeType":"ElementaryTypeName","src":"3682:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3662:34:14"},"returnParameters":{"id":6507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6506,"mutability":"mutable","name":"output","nameLocation":"3727:6:14","nodeType":"VariableDeclaration","scope":6510,"src":"3720:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":6505,"name":"bytes2","nodeType":"ElementaryTypeName","src":"3720:6:14","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"3719:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6522,"nodeType":"FunctionDefinition","src":"4181:153:14","nodes":[],"body":{"id":6521,"nodeType":"Block","src":"4267:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"4282:48:14","nodeType":"YulBlock","src":"4282:48:14","statements":[{"nativeSrc":"4290:34:14","nodeType":"YulAssignment","src":"4290:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4308:1:14","nodeType":"YulLiteral","src":"4308:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"4311:5:14","nodeType":"YulIdentifier","src":"4311:5:14"}],"functionName":{"name":"mul","nativeSrc":"4304:3:14","nodeType":"YulIdentifier","src":"4304:3:14"},"nativeSrc":"4304:13:14","nodeType":"YulFunctionCall","src":"4304:13:14"},{"name":"data","nativeSrc":"4319:4:14","nodeType":"YulIdentifier","src":"4319:4:14"}],"functionName":{"name":"shl","nativeSrc":"4300:3:14","nodeType":"YulIdentifier","src":"4300:3:14"},"nativeSrc":"4300:24:14","nodeType":"YulFunctionCall","src":"4300:24:14"},"variableNames":[{"name":"output","nativeSrc":"4290:6:14","nodeType":"YulIdentifier","src":"4290:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6513,"isOffset":false,"isSlot":false,"src":"4319:4:14","valueSize":1},{"declaration":6518,"isOffset":false,"isSlot":false,"src":"4290:6:14","valueSize":1},{"declaration":6515,"isOffset":false,"isSlot":false,"src":"4311:5:14","valueSize":1}],"id":6520,"nodeType":"InlineAssembly","src":"4273:57:14"}]},"documentation":{"id":6511,"nodeType":"StructuredDocumentation","src":"3816:362:14","text":" @dev Extracts a 2-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 2-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes2 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes2","nameLocation":"4190:9:14","parameters":{"id":6516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6513,"mutability":"mutable","name":"data","nameLocation":"4208:4:14","nodeType":"VariableDeclaration","scope":6522,"src":"4200:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4200:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6515,"mutability":"mutable","name":"start","nameLocation":"4222:5:14","nodeType":"VariableDeclaration","scope":6522,"src":"4214:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6514,"name":"uint256","nodeType":"ElementaryTypeName","src":"4214:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4199:29:14"},"returnParameters":{"id":6519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6518,"mutability":"mutable","name":"output","nameLocation":"4259:6:14","nodeType":"VariableDeclaration","scope":6522,"src":"4252:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":6517,"name":"bytes2","nodeType":"ElementaryTypeName","src":"4252:6:14","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"4251:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6534,"nodeType":"FunctionDefinition","src":"4691:168:14","nodes":[],"body":{"id":6533,"nodeType":"Block","src":"4782:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"4797:58:14","nodeType":"YulBlock","src":"4797:58:14","statements":[{"nativeSrc":"4805:44:14","nodeType":"YulAssignment","src":"4805:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"4829:4:14","nodeType":"YulIdentifier","src":"4829:4:14"},{"kind":"number","nativeSrc":"4835:4:14","nodeType":"YulLiteral","src":"4835:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4825:3:14","nodeType":"YulIdentifier","src":"4825:3:14"},"nativeSrc":"4825:15:14","nodeType":"YulFunctionCall","src":"4825:15:14"},{"name":"start","nativeSrc":"4842:5:14","nodeType":"YulIdentifier","src":"4842:5:14"}],"functionName":{"name":"add","nativeSrc":"4821:3:14","nodeType":"YulIdentifier","src":"4821:3:14"},"nativeSrc":"4821:27:14","nodeType":"YulFunctionCall","src":"4821:27:14"}],"functionName":{"name":"mload","nativeSrc":"4815:5:14","nodeType":"YulIdentifier","src":"4815:5:14"},"nativeSrc":"4815:34:14","nodeType":"YulFunctionCall","src":"4815:34:14"},"variableNames":[{"name":"output","nativeSrc":"4805:6:14","nodeType":"YulIdentifier","src":"4805:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6525,"isOffset":false,"isSlot":false,"src":"4829:4:14","valueSize":1},{"declaration":6530,"isOffset":false,"isSlot":false,"src":"4805:6:14","valueSize":1},{"declaration":6527,"isOffset":false,"isSlot":false,"src":"4842:5:14","valueSize":1}],"id":6532,"nodeType":"InlineAssembly","src":"4788:67:14"}]},"documentation":{"id":6523,"nodeType":"StructuredDocumentation","src":"4338:350:14","text":" @dev Extracts a 3-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 3-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes3 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes3","nameLocation":"4700:9:14","parameters":{"id":6528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6525,"mutability":"mutable","name":"data","nameLocation":"4723:4:14","nodeType":"VariableDeclaration","scope":6534,"src":"4710:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6524,"name":"bytes","nodeType":"ElementaryTypeName","src":"4710:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6527,"mutability":"mutable","name":"start","nameLocation":"4737:5:14","nodeType":"VariableDeclaration","scope":6534,"src":"4729:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint256","nodeType":"ElementaryTypeName","src":"4729:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4709:34:14"},"returnParameters":{"id":6531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6530,"mutability":"mutable","name":"output","nameLocation":"4774:6:14","nodeType":"VariableDeclaration","scope":6534,"src":"4767:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":6529,"name":"bytes3","nodeType":"ElementaryTypeName","src":"4767:6:14","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"4766:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6546,"nodeType":"FunctionDefinition","src":"5228:153:14","nodes":[],"body":{"id":6545,"nodeType":"Block","src":"5314:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"5329:48:14","nodeType":"YulBlock","src":"5329:48:14","statements":[{"nativeSrc":"5337:34:14","nodeType":"YulAssignment","src":"5337:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5355:1:14","nodeType":"YulLiteral","src":"5355:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"5358:5:14","nodeType":"YulIdentifier","src":"5358:5:14"}],"functionName":{"name":"mul","nativeSrc":"5351:3:14","nodeType":"YulIdentifier","src":"5351:3:14"},"nativeSrc":"5351:13:14","nodeType":"YulFunctionCall","src":"5351:13:14"},{"name":"data","nativeSrc":"5366:4:14","nodeType":"YulIdentifier","src":"5366:4:14"}],"functionName":{"name":"shl","nativeSrc":"5347:3:14","nodeType":"YulIdentifier","src":"5347:3:14"},"nativeSrc":"5347:24:14","nodeType":"YulFunctionCall","src":"5347:24:14"},"variableNames":[{"name":"output","nativeSrc":"5337:6:14","nodeType":"YulIdentifier","src":"5337:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6537,"isOffset":false,"isSlot":false,"src":"5366:4:14","valueSize":1},{"declaration":6542,"isOffset":false,"isSlot":false,"src":"5337:6:14","valueSize":1},{"declaration":6539,"isOffset":false,"isSlot":false,"src":"5358:5:14","valueSize":1}],"id":6544,"nodeType":"InlineAssembly","src":"5320:57:14"}]},"documentation":{"id":6535,"nodeType":"StructuredDocumentation","src":"4863:362:14","text":" @dev Extracts a 3-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 3-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes3 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes3","nameLocation":"5237:9:14","parameters":{"id":6540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6537,"mutability":"mutable","name":"data","nameLocation":"5255:4:14","nodeType":"VariableDeclaration","scope":6546,"src":"5247:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5247:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6539,"mutability":"mutable","name":"start","nameLocation":"5269:5:14","nodeType":"VariableDeclaration","scope":6546,"src":"5261:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6538,"name":"uint256","nodeType":"ElementaryTypeName","src":"5261:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5246:29:14"},"returnParameters":{"id":6543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6542,"mutability":"mutable","name":"output","nameLocation":"5306:6:14","nodeType":"VariableDeclaration","scope":6546,"src":"5299:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":6541,"name":"bytes3","nodeType":"ElementaryTypeName","src":"5299:6:14","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"5298:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6558,"nodeType":"FunctionDefinition","src":"5738:168:14","nodes":[],"body":{"id":6557,"nodeType":"Block","src":"5829:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"5844:58:14","nodeType":"YulBlock","src":"5844:58:14","statements":[{"nativeSrc":"5852:44:14","nodeType":"YulAssignment","src":"5852:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"5876:4:14","nodeType":"YulIdentifier","src":"5876:4:14"},{"kind":"number","nativeSrc":"5882:4:14","nodeType":"YulLiteral","src":"5882:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5872:3:14","nodeType":"YulIdentifier","src":"5872:3:14"},"nativeSrc":"5872:15:14","nodeType":"YulFunctionCall","src":"5872:15:14"},{"name":"start","nativeSrc":"5889:5:14","nodeType":"YulIdentifier","src":"5889:5:14"}],"functionName":{"name":"add","nativeSrc":"5868:3:14","nodeType":"YulIdentifier","src":"5868:3:14"},"nativeSrc":"5868:27:14","nodeType":"YulFunctionCall","src":"5868:27:14"}],"functionName":{"name":"mload","nativeSrc":"5862:5:14","nodeType":"YulIdentifier","src":"5862:5:14"},"nativeSrc":"5862:34:14","nodeType":"YulFunctionCall","src":"5862:34:14"},"variableNames":[{"name":"output","nativeSrc":"5852:6:14","nodeType":"YulIdentifier","src":"5852:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6549,"isOffset":false,"isSlot":false,"src":"5876:4:14","valueSize":1},{"declaration":6554,"isOffset":false,"isSlot":false,"src":"5852:6:14","valueSize":1},{"declaration":6551,"isOffset":false,"isSlot":false,"src":"5889:5:14","valueSize":1}],"id":6556,"nodeType":"InlineAssembly","src":"5835:67:14"}]},"documentation":{"id":6547,"nodeType":"StructuredDocumentation","src":"5385:350:14","text":" @dev Extracts a 4-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 4-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes4 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes4","nameLocation":"5747:9:14","parameters":{"id":6552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6549,"mutability":"mutable","name":"data","nameLocation":"5770:4:14","nodeType":"VariableDeclaration","scope":6558,"src":"5757:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6548,"name":"bytes","nodeType":"ElementaryTypeName","src":"5757:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6551,"mutability":"mutable","name":"start","nameLocation":"5784:5:14","nodeType":"VariableDeclaration","scope":6558,"src":"5776:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6550,"name":"uint256","nodeType":"ElementaryTypeName","src":"5776:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5756:34:14"},"returnParameters":{"id":6555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6554,"mutability":"mutable","name":"output","nameLocation":"5821:6:14","nodeType":"VariableDeclaration","scope":6558,"src":"5814:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6553,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5814:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5813:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6570,"nodeType":"FunctionDefinition","src":"6275:153:14","nodes":[],"body":{"id":6569,"nodeType":"Block","src":"6361:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"6376:48:14","nodeType":"YulBlock","src":"6376:48:14","statements":[{"nativeSrc":"6384:34:14","nodeType":"YulAssignment","src":"6384:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6402:1:14","nodeType":"YulLiteral","src":"6402:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"6405:5:14","nodeType":"YulIdentifier","src":"6405:5:14"}],"functionName":{"name":"mul","nativeSrc":"6398:3:14","nodeType":"YulIdentifier","src":"6398:3:14"},"nativeSrc":"6398:13:14","nodeType":"YulFunctionCall","src":"6398:13:14"},{"name":"data","nativeSrc":"6413:4:14","nodeType":"YulIdentifier","src":"6413:4:14"}],"functionName":{"name":"shl","nativeSrc":"6394:3:14","nodeType":"YulIdentifier","src":"6394:3:14"},"nativeSrc":"6394:24:14","nodeType":"YulFunctionCall","src":"6394:24:14"},"variableNames":[{"name":"output","nativeSrc":"6384:6:14","nodeType":"YulIdentifier","src":"6384:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6561,"isOffset":false,"isSlot":false,"src":"6413:4:14","valueSize":1},{"declaration":6566,"isOffset":false,"isSlot":false,"src":"6384:6:14","valueSize":1},{"declaration":6563,"isOffset":false,"isSlot":false,"src":"6405:5:14","valueSize":1}],"id":6568,"nodeType":"InlineAssembly","src":"6367:57:14"}]},"documentation":{"id":6559,"nodeType":"StructuredDocumentation","src":"5910:362:14","text":" @dev Extracts a 4-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 4-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes4 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes4","nameLocation":"6284:9:14","parameters":{"id":6564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6561,"mutability":"mutable","name":"data","nameLocation":"6302:4:14","nodeType":"VariableDeclaration","scope":6570,"src":"6294:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6294:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6563,"mutability":"mutable","name":"start","nameLocation":"6316:5:14","nodeType":"VariableDeclaration","scope":6570,"src":"6308:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6562,"name":"uint256","nodeType":"ElementaryTypeName","src":"6308:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6293:29:14"},"returnParameters":{"id":6567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6566,"mutability":"mutable","name":"output","nameLocation":"6353:6:14","nodeType":"VariableDeclaration","scope":6570,"src":"6346:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6565,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6346:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6345:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6582,"nodeType":"FunctionDefinition","src":"6785:168:14","nodes":[],"body":{"id":6581,"nodeType":"Block","src":"6876:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"6891:58:14","nodeType":"YulBlock","src":"6891:58:14","statements":[{"nativeSrc":"6899:44:14","nodeType":"YulAssignment","src":"6899:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"6923:4:14","nodeType":"YulIdentifier","src":"6923:4:14"},{"kind":"number","nativeSrc":"6929:4:14","nodeType":"YulLiteral","src":"6929:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6919:3:14","nodeType":"YulIdentifier","src":"6919:3:14"},"nativeSrc":"6919:15:14","nodeType":"YulFunctionCall","src":"6919:15:14"},{"name":"start","nativeSrc":"6936:5:14","nodeType":"YulIdentifier","src":"6936:5:14"}],"functionName":{"name":"add","nativeSrc":"6915:3:14","nodeType":"YulIdentifier","src":"6915:3:14"},"nativeSrc":"6915:27:14","nodeType":"YulFunctionCall","src":"6915:27:14"}],"functionName":{"name":"mload","nativeSrc":"6909:5:14","nodeType":"YulIdentifier","src":"6909:5:14"},"nativeSrc":"6909:34:14","nodeType":"YulFunctionCall","src":"6909:34:14"},"variableNames":[{"name":"output","nativeSrc":"6899:6:14","nodeType":"YulIdentifier","src":"6899:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6573,"isOffset":false,"isSlot":false,"src":"6923:4:14","valueSize":1},{"declaration":6578,"isOffset":false,"isSlot":false,"src":"6899:6:14","valueSize":1},{"declaration":6575,"isOffset":false,"isSlot":false,"src":"6936:5:14","valueSize":1}],"id":6580,"nodeType":"InlineAssembly","src":"6882:67:14"}]},"documentation":{"id":6571,"nodeType":"StructuredDocumentation","src":"6432:350:14","text":" @dev Extracts a 5-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 5-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes5 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes5","nameLocation":"6794:9:14","parameters":{"id":6576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6573,"mutability":"mutable","name":"data","nameLocation":"6817:4:14","nodeType":"VariableDeclaration","scope":6582,"src":"6804:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6572,"name":"bytes","nodeType":"ElementaryTypeName","src":"6804:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6575,"mutability":"mutable","name":"start","nameLocation":"6831:5:14","nodeType":"VariableDeclaration","scope":6582,"src":"6823:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6574,"name":"uint256","nodeType":"ElementaryTypeName","src":"6823:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6803:34:14"},"returnParameters":{"id":6579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6578,"mutability":"mutable","name":"output","nameLocation":"6868:6:14","nodeType":"VariableDeclaration","scope":6582,"src":"6861:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":6577,"name":"bytes5","nodeType":"ElementaryTypeName","src":"6861:6:14","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"6860:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6594,"nodeType":"FunctionDefinition","src":"7322:153:14","nodes":[],"body":{"id":6593,"nodeType":"Block","src":"7408:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"7423:48:14","nodeType":"YulBlock","src":"7423:48:14","statements":[{"nativeSrc":"7431:34:14","nodeType":"YulAssignment","src":"7431:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7449:1:14","nodeType":"YulLiteral","src":"7449:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"7452:5:14","nodeType":"YulIdentifier","src":"7452:5:14"}],"functionName":{"name":"mul","nativeSrc":"7445:3:14","nodeType":"YulIdentifier","src":"7445:3:14"},"nativeSrc":"7445:13:14","nodeType":"YulFunctionCall","src":"7445:13:14"},{"name":"data","nativeSrc":"7460:4:14","nodeType":"YulIdentifier","src":"7460:4:14"}],"functionName":{"name":"shl","nativeSrc":"7441:3:14","nodeType":"YulIdentifier","src":"7441:3:14"},"nativeSrc":"7441:24:14","nodeType":"YulFunctionCall","src":"7441:24:14"},"variableNames":[{"name":"output","nativeSrc":"7431:6:14","nodeType":"YulIdentifier","src":"7431:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6585,"isOffset":false,"isSlot":false,"src":"7460:4:14","valueSize":1},{"declaration":6590,"isOffset":false,"isSlot":false,"src":"7431:6:14","valueSize":1},{"declaration":6587,"isOffset":false,"isSlot":false,"src":"7452:5:14","valueSize":1}],"id":6592,"nodeType":"InlineAssembly","src":"7414:57:14"}]},"documentation":{"id":6583,"nodeType":"StructuredDocumentation","src":"6957:362:14","text":" @dev Extracts a 5-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 5-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes5 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes5","nameLocation":"7331:9:14","parameters":{"id":6588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6585,"mutability":"mutable","name":"data","nameLocation":"7349:4:14","nodeType":"VariableDeclaration","scope":6594,"src":"7341:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7341:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6587,"mutability":"mutable","name":"start","nameLocation":"7363:5:14","nodeType":"VariableDeclaration","scope":6594,"src":"7355:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6586,"name":"uint256","nodeType":"ElementaryTypeName","src":"7355:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7340:29:14"},"returnParameters":{"id":6591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6590,"mutability":"mutable","name":"output","nameLocation":"7400:6:14","nodeType":"VariableDeclaration","scope":6594,"src":"7393:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":6589,"name":"bytes5","nodeType":"ElementaryTypeName","src":"7393:6:14","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"7392:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6606,"nodeType":"FunctionDefinition","src":"7832:168:14","nodes":[],"body":{"id":6605,"nodeType":"Block","src":"7923:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"7938:58:14","nodeType":"YulBlock","src":"7938:58:14","statements":[{"nativeSrc":"7946:44:14","nodeType":"YulAssignment","src":"7946:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"7970:4:14","nodeType":"YulIdentifier","src":"7970:4:14"},{"kind":"number","nativeSrc":"7976:4:14","nodeType":"YulLiteral","src":"7976:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7966:3:14","nodeType":"YulIdentifier","src":"7966:3:14"},"nativeSrc":"7966:15:14","nodeType":"YulFunctionCall","src":"7966:15:14"},{"name":"start","nativeSrc":"7983:5:14","nodeType":"YulIdentifier","src":"7983:5:14"}],"functionName":{"name":"add","nativeSrc":"7962:3:14","nodeType":"YulIdentifier","src":"7962:3:14"},"nativeSrc":"7962:27:14","nodeType":"YulFunctionCall","src":"7962:27:14"}],"functionName":{"name":"mload","nativeSrc":"7956:5:14","nodeType":"YulIdentifier","src":"7956:5:14"},"nativeSrc":"7956:34:14","nodeType":"YulFunctionCall","src":"7956:34:14"},"variableNames":[{"name":"output","nativeSrc":"7946:6:14","nodeType":"YulIdentifier","src":"7946:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6597,"isOffset":false,"isSlot":false,"src":"7970:4:14","valueSize":1},{"declaration":6602,"isOffset":false,"isSlot":false,"src":"7946:6:14","valueSize":1},{"declaration":6599,"isOffset":false,"isSlot":false,"src":"7983:5:14","valueSize":1}],"id":6604,"nodeType":"InlineAssembly","src":"7929:67:14"}]},"documentation":{"id":6595,"nodeType":"StructuredDocumentation","src":"7479:350:14","text":" @dev Extracts a 6-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 6-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes6 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes6","nameLocation":"7841:9:14","parameters":{"id":6600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6597,"mutability":"mutable","name":"data","nameLocation":"7864:4:14","nodeType":"VariableDeclaration","scope":6606,"src":"7851:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6596,"name":"bytes","nodeType":"ElementaryTypeName","src":"7851:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6599,"mutability":"mutable","name":"start","nameLocation":"7878:5:14","nodeType":"VariableDeclaration","scope":6606,"src":"7870:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7870:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7850:34:14"},"returnParameters":{"id":6603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6602,"mutability":"mutable","name":"output","nameLocation":"7915:6:14","nodeType":"VariableDeclaration","scope":6606,"src":"7908:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":6601,"name":"bytes6","nodeType":"ElementaryTypeName","src":"7908:6:14","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"7907:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6618,"nodeType":"FunctionDefinition","src":"8369:153:14","nodes":[],"body":{"id":6617,"nodeType":"Block","src":"8455:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"8470:48:14","nodeType":"YulBlock","src":"8470:48:14","statements":[{"nativeSrc":"8478:34:14","nodeType":"YulAssignment","src":"8478:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8496:1:14","nodeType":"YulLiteral","src":"8496:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"8499:5:14","nodeType":"YulIdentifier","src":"8499:5:14"}],"functionName":{"name":"mul","nativeSrc":"8492:3:14","nodeType":"YulIdentifier","src":"8492:3:14"},"nativeSrc":"8492:13:14","nodeType":"YulFunctionCall","src":"8492:13:14"},{"name":"data","nativeSrc":"8507:4:14","nodeType":"YulIdentifier","src":"8507:4:14"}],"functionName":{"name":"shl","nativeSrc":"8488:3:14","nodeType":"YulIdentifier","src":"8488:3:14"},"nativeSrc":"8488:24:14","nodeType":"YulFunctionCall","src":"8488:24:14"},"variableNames":[{"name":"output","nativeSrc":"8478:6:14","nodeType":"YulIdentifier","src":"8478:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6609,"isOffset":false,"isSlot":false,"src":"8507:4:14","valueSize":1},{"declaration":6614,"isOffset":false,"isSlot":false,"src":"8478:6:14","valueSize":1},{"declaration":6611,"isOffset":false,"isSlot":false,"src":"8499:5:14","valueSize":1}],"id":6616,"nodeType":"InlineAssembly","src":"8461:57:14"}]},"documentation":{"id":6607,"nodeType":"StructuredDocumentation","src":"8004:362:14","text":" @dev Extracts a 6-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 6-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes6 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes6","nameLocation":"8378:9:14","parameters":{"id":6612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6609,"mutability":"mutable","name":"data","nameLocation":"8396:4:14","nodeType":"VariableDeclaration","scope":6618,"src":"8388:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8388:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6611,"mutability":"mutable","name":"start","nameLocation":"8410:5:14","nodeType":"VariableDeclaration","scope":6618,"src":"8402:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6610,"name":"uint256","nodeType":"ElementaryTypeName","src":"8402:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8387:29:14"},"returnParameters":{"id":6615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6614,"mutability":"mutable","name":"output","nameLocation":"8447:6:14","nodeType":"VariableDeclaration","scope":6618,"src":"8440:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":6613,"name":"bytes6","nodeType":"ElementaryTypeName","src":"8440:6:14","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"8439:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6630,"nodeType":"FunctionDefinition","src":"8879:168:14","nodes":[],"body":{"id":6629,"nodeType":"Block","src":"8970:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"8985:58:14","nodeType":"YulBlock","src":"8985:58:14","statements":[{"nativeSrc":"8993:44:14","nodeType":"YulAssignment","src":"8993:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"9017:4:14","nodeType":"YulIdentifier","src":"9017:4:14"},{"kind":"number","nativeSrc":"9023:4:14","nodeType":"YulLiteral","src":"9023:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9013:3:14","nodeType":"YulIdentifier","src":"9013:3:14"},"nativeSrc":"9013:15:14","nodeType":"YulFunctionCall","src":"9013:15:14"},{"name":"start","nativeSrc":"9030:5:14","nodeType":"YulIdentifier","src":"9030:5:14"}],"functionName":{"name":"add","nativeSrc":"9009:3:14","nodeType":"YulIdentifier","src":"9009:3:14"},"nativeSrc":"9009:27:14","nodeType":"YulFunctionCall","src":"9009:27:14"}],"functionName":{"name":"mload","nativeSrc":"9003:5:14","nodeType":"YulIdentifier","src":"9003:5:14"},"nativeSrc":"9003:34:14","nodeType":"YulFunctionCall","src":"9003:34:14"},"variableNames":[{"name":"output","nativeSrc":"8993:6:14","nodeType":"YulIdentifier","src":"8993:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6621,"isOffset":false,"isSlot":false,"src":"9017:4:14","valueSize":1},{"declaration":6626,"isOffset":false,"isSlot":false,"src":"8993:6:14","valueSize":1},{"declaration":6623,"isOffset":false,"isSlot":false,"src":"9030:5:14","valueSize":1}],"id":6628,"nodeType":"InlineAssembly","src":"8976:67:14"}]},"documentation":{"id":6619,"nodeType":"StructuredDocumentation","src":"8526:350:14","text":" @dev Extracts a 7-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 7-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes7 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes7","nameLocation":"8888:9:14","parameters":{"id":6624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6621,"mutability":"mutable","name":"data","nameLocation":"8911:4:14","nodeType":"VariableDeclaration","scope":6630,"src":"8898:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6620,"name":"bytes","nodeType":"ElementaryTypeName","src":"8898:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6623,"mutability":"mutable","name":"start","nameLocation":"8925:5:14","nodeType":"VariableDeclaration","scope":6630,"src":"8917:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6622,"name":"uint256","nodeType":"ElementaryTypeName","src":"8917:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8897:34:14"},"returnParameters":{"id":6627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6626,"mutability":"mutable","name":"output","nameLocation":"8962:6:14","nodeType":"VariableDeclaration","scope":6630,"src":"8955:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":6625,"name":"bytes7","nodeType":"ElementaryTypeName","src":"8955:6:14","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"8954:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6642,"nodeType":"FunctionDefinition","src":"9416:153:14","nodes":[],"body":{"id":6641,"nodeType":"Block","src":"9502:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"9517:48:14","nodeType":"YulBlock","src":"9517:48:14","statements":[{"nativeSrc":"9525:34:14","nodeType":"YulAssignment","src":"9525:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9543:1:14","nodeType":"YulLiteral","src":"9543:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"9546:5:14","nodeType":"YulIdentifier","src":"9546:5:14"}],"functionName":{"name":"mul","nativeSrc":"9539:3:14","nodeType":"YulIdentifier","src":"9539:3:14"},"nativeSrc":"9539:13:14","nodeType":"YulFunctionCall","src":"9539:13:14"},{"name":"data","nativeSrc":"9554:4:14","nodeType":"YulIdentifier","src":"9554:4:14"}],"functionName":{"name":"shl","nativeSrc":"9535:3:14","nodeType":"YulIdentifier","src":"9535:3:14"},"nativeSrc":"9535:24:14","nodeType":"YulFunctionCall","src":"9535:24:14"},"variableNames":[{"name":"output","nativeSrc":"9525:6:14","nodeType":"YulIdentifier","src":"9525:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6633,"isOffset":false,"isSlot":false,"src":"9554:4:14","valueSize":1},{"declaration":6638,"isOffset":false,"isSlot":false,"src":"9525:6:14","valueSize":1},{"declaration":6635,"isOffset":false,"isSlot":false,"src":"9546:5:14","valueSize":1}],"id":6640,"nodeType":"InlineAssembly","src":"9508:57:14"}]},"documentation":{"id":6631,"nodeType":"StructuredDocumentation","src":"9051:362:14","text":" @dev Extracts a 7-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 7-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes7 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes7","nameLocation":"9425:9:14","parameters":{"id":6636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"data","nameLocation":"9443:4:14","nodeType":"VariableDeclaration","scope":6642,"src":"9435:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9435:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6635,"mutability":"mutable","name":"start","nameLocation":"9457:5:14","nodeType":"VariableDeclaration","scope":6642,"src":"9449:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6634,"name":"uint256","nodeType":"ElementaryTypeName","src":"9449:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9434:29:14"},"returnParameters":{"id":6639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6638,"mutability":"mutable","name":"output","nameLocation":"9494:6:14","nodeType":"VariableDeclaration","scope":6642,"src":"9487:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":6637,"name":"bytes7","nodeType":"ElementaryTypeName","src":"9487:6:14","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"9486:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6654,"nodeType":"FunctionDefinition","src":"9926:168:14","nodes":[],"body":{"id":6653,"nodeType":"Block","src":"10017:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"10032:58:14","nodeType":"YulBlock","src":"10032:58:14","statements":[{"nativeSrc":"10040:44:14","nodeType":"YulAssignment","src":"10040:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"10064:4:14","nodeType":"YulIdentifier","src":"10064:4:14"},{"kind":"number","nativeSrc":"10070:4:14","nodeType":"YulLiteral","src":"10070:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10060:3:14","nodeType":"YulIdentifier","src":"10060:3:14"},"nativeSrc":"10060:15:14","nodeType":"YulFunctionCall","src":"10060:15:14"},{"name":"start","nativeSrc":"10077:5:14","nodeType":"YulIdentifier","src":"10077:5:14"}],"functionName":{"name":"add","nativeSrc":"10056:3:14","nodeType":"YulIdentifier","src":"10056:3:14"},"nativeSrc":"10056:27:14","nodeType":"YulFunctionCall","src":"10056:27:14"}],"functionName":{"name":"mload","nativeSrc":"10050:5:14","nodeType":"YulIdentifier","src":"10050:5:14"},"nativeSrc":"10050:34:14","nodeType":"YulFunctionCall","src":"10050:34:14"},"variableNames":[{"name":"output","nativeSrc":"10040:6:14","nodeType":"YulIdentifier","src":"10040:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6645,"isOffset":false,"isSlot":false,"src":"10064:4:14","valueSize":1},{"declaration":6650,"isOffset":false,"isSlot":false,"src":"10040:6:14","valueSize":1},{"declaration":6647,"isOffset":false,"isSlot":false,"src":"10077:5:14","valueSize":1}],"id":6652,"nodeType":"InlineAssembly","src":"10023:67:14"}]},"documentation":{"id":6643,"nodeType":"StructuredDocumentation","src":"9573:350:14","text":" @dev Extracts a 8-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 8-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes8 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes8","nameLocation":"9935:9:14","parameters":{"id":6648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6645,"mutability":"mutable","name":"data","nameLocation":"9958:4:14","nodeType":"VariableDeclaration","scope":6654,"src":"9945:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6644,"name":"bytes","nodeType":"ElementaryTypeName","src":"9945:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6647,"mutability":"mutable","name":"start","nameLocation":"9972:5:14","nodeType":"VariableDeclaration","scope":6654,"src":"9964:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6646,"name":"uint256","nodeType":"ElementaryTypeName","src":"9964:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9944:34:14"},"returnParameters":{"id":6651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6650,"mutability":"mutable","name":"output","nameLocation":"10009:6:14","nodeType":"VariableDeclaration","scope":6654,"src":"10002:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":6649,"name":"bytes8","nodeType":"ElementaryTypeName","src":"10002:6:14","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"10001:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6666,"nodeType":"FunctionDefinition","src":"10463:153:14","nodes":[],"body":{"id":6665,"nodeType":"Block","src":"10549:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"10564:48:14","nodeType":"YulBlock","src":"10564:48:14","statements":[{"nativeSrc":"10572:34:14","nodeType":"YulAssignment","src":"10572:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10590:1:14","nodeType":"YulLiteral","src":"10590:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"10593:5:14","nodeType":"YulIdentifier","src":"10593:5:14"}],"functionName":{"name":"mul","nativeSrc":"10586:3:14","nodeType":"YulIdentifier","src":"10586:3:14"},"nativeSrc":"10586:13:14","nodeType":"YulFunctionCall","src":"10586:13:14"},{"name":"data","nativeSrc":"10601:4:14","nodeType":"YulIdentifier","src":"10601:4:14"}],"functionName":{"name":"shl","nativeSrc":"10582:3:14","nodeType":"YulIdentifier","src":"10582:3:14"},"nativeSrc":"10582:24:14","nodeType":"YulFunctionCall","src":"10582:24:14"},"variableNames":[{"name":"output","nativeSrc":"10572:6:14","nodeType":"YulIdentifier","src":"10572:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6657,"isOffset":false,"isSlot":false,"src":"10601:4:14","valueSize":1},{"declaration":6662,"isOffset":false,"isSlot":false,"src":"10572:6:14","valueSize":1},{"declaration":6659,"isOffset":false,"isSlot":false,"src":"10593:5:14","valueSize":1}],"id":6664,"nodeType":"InlineAssembly","src":"10555:57:14"}]},"documentation":{"id":6655,"nodeType":"StructuredDocumentation","src":"10098:362:14","text":" @dev Extracts a 8-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 8-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes8 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes8","nameLocation":"10472:9:14","parameters":{"id":6660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6657,"mutability":"mutable","name":"data","nameLocation":"10490:4:14","nodeType":"VariableDeclaration","scope":6666,"src":"10482:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10482:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6659,"mutability":"mutable","name":"start","nameLocation":"10504:5:14","nodeType":"VariableDeclaration","scope":6666,"src":"10496:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6658,"name":"uint256","nodeType":"ElementaryTypeName","src":"10496:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10481:29:14"},"returnParameters":{"id":6663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6662,"mutability":"mutable","name":"output","nameLocation":"10541:6:14","nodeType":"VariableDeclaration","scope":6666,"src":"10534:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":6661,"name":"bytes8","nodeType":"ElementaryTypeName","src":"10534:6:14","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"10533:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6678,"nodeType":"FunctionDefinition","src":"10973:168:14","nodes":[],"body":{"id":6677,"nodeType":"Block","src":"11064:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"11079:58:14","nodeType":"YulBlock","src":"11079:58:14","statements":[{"nativeSrc":"11087:44:14","nodeType":"YulAssignment","src":"11087:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"11111:4:14","nodeType":"YulIdentifier","src":"11111:4:14"},{"kind":"number","nativeSrc":"11117:4:14","nodeType":"YulLiteral","src":"11117:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11107:3:14","nodeType":"YulIdentifier","src":"11107:3:14"},"nativeSrc":"11107:15:14","nodeType":"YulFunctionCall","src":"11107:15:14"},{"name":"start","nativeSrc":"11124:5:14","nodeType":"YulIdentifier","src":"11124:5:14"}],"functionName":{"name":"add","nativeSrc":"11103:3:14","nodeType":"YulIdentifier","src":"11103:3:14"},"nativeSrc":"11103:27:14","nodeType":"YulFunctionCall","src":"11103:27:14"}],"functionName":{"name":"mload","nativeSrc":"11097:5:14","nodeType":"YulIdentifier","src":"11097:5:14"},"nativeSrc":"11097:34:14","nodeType":"YulFunctionCall","src":"11097:34:14"},"variableNames":[{"name":"output","nativeSrc":"11087:6:14","nodeType":"YulIdentifier","src":"11087:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6669,"isOffset":false,"isSlot":false,"src":"11111:4:14","valueSize":1},{"declaration":6674,"isOffset":false,"isSlot":false,"src":"11087:6:14","valueSize":1},{"declaration":6671,"isOffset":false,"isSlot":false,"src":"11124:5:14","valueSize":1}],"id":6676,"nodeType":"InlineAssembly","src":"11070:67:14"}]},"documentation":{"id":6667,"nodeType":"StructuredDocumentation","src":"10620:350:14","text":" @dev Extracts a 9-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 9-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes9 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes9","nameLocation":"10982:9:14","parameters":{"id":6672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6669,"mutability":"mutable","name":"data","nameLocation":"11005:4:14","nodeType":"VariableDeclaration","scope":6678,"src":"10992:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6668,"name":"bytes","nodeType":"ElementaryTypeName","src":"10992:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6671,"mutability":"mutable","name":"start","nameLocation":"11019:5:14","nodeType":"VariableDeclaration","scope":6678,"src":"11011:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6670,"name":"uint256","nodeType":"ElementaryTypeName","src":"11011:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10991:34:14"},"returnParameters":{"id":6675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6674,"mutability":"mutable","name":"output","nameLocation":"11056:6:14","nodeType":"VariableDeclaration","scope":6678,"src":"11049:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":6673,"name":"bytes9","nodeType":"ElementaryTypeName","src":"11049:6:14","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"11048:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6690,"nodeType":"FunctionDefinition","src":"11510:153:14","nodes":[],"body":{"id":6689,"nodeType":"Block","src":"11596:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"11611:48:14","nodeType":"YulBlock","src":"11611:48:14","statements":[{"nativeSrc":"11619:34:14","nodeType":"YulAssignment","src":"11619:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11637:1:14","nodeType":"YulLiteral","src":"11637:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"11640:5:14","nodeType":"YulIdentifier","src":"11640:5:14"}],"functionName":{"name":"mul","nativeSrc":"11633:3:14","nodeType":"YulIdentifier","src":"11633:3:14"},"nativeSrc":"11633:13:14","nodeType":"YulFunctionCall","src":"11633:13:14"},{"name":"data","nativeSrc":"11648:4:14","nodeType":"YulIdentifier","src":"11648:4:14"}],"functionName":{"name":"shl","nativeSrc":"11629:3:14","nodeType":"YulIdentifier","src":"11629:3:14"},"nativeSrc":"11629:24:14","nodeType":"YulFunctionCall","src":"11629:24:14"},"variableNames":[{"name":"output","nativeSrc":"11619:6:14","nodeType":"YulIdentifier","src":"11619:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6681,"isOffset":false,"isSlot":false,"src":"11648:4:14","valueSize":1},{"declaration":6686,"isOffset":false,"isSlot":false,"src":"11619:6:14","valueSize":1},{"declaration":6683,"isOffset":false,"isSlot":false,"src":"11640:5:14","valueSize":1}],"id":6688,"nodeType":"InlineAssembly","src":"11602:57:14"}]},"documentation":{"id":6679,"nodeType":"StructuredDocumentation","src":"11145:362:14","text":" @dev Extracts a 9-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 9-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes9 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes9","nameLocation":"11519:9:14","parameters":{"id":6684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6681,"mutability":"mutable","name":"data","nameLocation":"11537:4:14","nodeType":"VariableDeclaration","scope":6690,"src":"11529:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11529:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6683,"mutability":"mutable","name":"start","nameLocation":"11551:5:14","nodeType":"VariableDeclaration","scope":6690,"src":"11543:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6682,"name":"uint256","nodeType":"ElementaryTypeName","src":"11543:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11528:29:14"},"returnParameters":{"id":6687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6686,"mutability":"mutable","name":"output","nameLocation":"11588:6:14","nodeType":"VariableDeclaration","scope":6690,"src":"11581:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":6685,"name":"bytes9","nodeType":"ElementaryTypeName","src":"11581:6:14","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"11580:15:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6702,"nodeType":"FunctionDefinition","src":"12023:170:14","nodes":[],"body":{"id":6701,"nodeType":"Block","src":"12116:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"12131:58:14","nodeType":"YulBlock","src":"12131:58:14","statements":[{"nativeSrc":"12139:44:14","nodeType":"YulAssignment","src":"12139:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"12163:4:14","nodeType":"YulIdentifier","src":"12163:4:14"},{"kind":"number","nativeSrc":"12169:4:14","nodeType":"YulLiteral","src":"12169:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12159:3:14","nodeType":"YulIdentifier","src":"12159:3:14"},"nativeSrc":"12159:15:14","nodeType":"YulFunctionCall","src":"12159:15:14"},{"name":"start","nativeSrc":"12176:5:14","nodeType":"YulIdentifier","src":"12176:5:14"}],"functionName":{"name":"add","nativeSrc":"12155:3:14","nodeType":"YulIdentifier","src":"12155:3:14"},"nativeSrc":"12155:27:14","nodeType":"YulFunctionCall","src":"12155:27:14"}],"functionName":{"name":"mload","nativeSrc":"12149:5:14","nodeType":"YulIdentifier","src":"12149:5:14"},"nativeSrc":"12149:34:14","nodeType":"YulFunctionCall","src":"12149:34:14"},"variableNames":[{"name":"output","nativeSrc":"12139:6:14","nodeType":"YulIdentifier","src":"12139:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6693,"isOffset":false,"isSlot":false,"src":"12163:4:14","valueSize":1},{"declaration":6698,"isOffset":false,"isSlot":false,"src":"12139:6:14","valueSize":1},{"declaration":6695,"isOffset":false,"isSlot":false,"src":"12176:5:14","valueSize":1}],"id":6700,"nodeType":"InlineAssembly","src":"12122:67:14"}]},"documentation":{"id":6691,"nodeType":"StructuredDocumentation","src":"11667:353:14","text":" @dev Extracts a 10-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 10-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes10 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes10","nameLocation":"12032:10:14","parameters":{"id":6696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6693,"mutability":"mutable","name":"data","nameLocation":"12056:4:14","nodeType":"VariableDeclaration","scope":6702,"src":"12043:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6692,"name":"bytes","nodeType":"ElementaryTypeName","src":"12043:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6695,"mutability":"mutable","name":"start","nameLocation":"12070:5:14","nodeType":"VariableDeclaration","scope":6702,"src":"12062:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6694,"name":"uint256","nodeType":"ElementaryTypeName","src":"12062:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12042:34:14"},"returnParameters":{"id":6699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6698,"mutability":"mutable","name":"output","nameLocation":"12108:6:14","nodeType":"VariableDeclaration","scope":6702,"src":"12100:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":6697,"name":"bytes10","nodeType":"ElementaryTypeName","src":"12100:7:14","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"12099:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6714,"nodeType":"FunctionDefinition","src":"12565:155:14","nodes":[],"body":{"id":6713,"nodeType":"Block","src":"12653:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"12668:48:14","nodeType":"YulBlock","src":"12668:48:14","statements":[{"nativeSrc":"12676:34:14","nodeType":"YulAssignment","src":"12676:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12694:1:14","nodeType":"YulLiteral","src":"12694:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"12697:5:14","nodeType":"YulIdentifier","src":"12697:5:14"}],"functionName":{"name":"mul","nativeSrc":"12690:3:14","nodeType":"YulIdentifier","src":"12690:3:14"},"nativeSrc":"12690:13:14","nodeType":"YulFunctionCall","src":"12690:13:14"},{"name":"data","nativeSrc":"12705:4:14","nodeType":"YulIdentifier","src":"12705:4:14"}],"functionName":{"name":"shl","nativeSrc":"12686:3:14","nodeType":"YulIdentifier","src":"12686:3:14"},"nativeSrc":"12686:24:14","nodeType":"YulFunctionCall","src":"12686:24:14"},"variableNames":[{"name":"output","nativeSrc":"12676:6:14","nodeType":"YulIdentifier","src":"12676:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6705,"isOffset":false,"isSlot":false,"src":"12705:4:14","valueSize":1},{"declaration":6710,"isOffset":false,"isSlot":false,"src":"12676:6:14","valueSize":1},{"declaration":6707,"isOffset":false,"isSlot":false,"src":"12697:5:14","valueSize":1}],"id":6712,"nodeType":"InlineAssembly","src":"12659:57:14"}]},"documentation":{"id":6703,"nodeType":"StructuredDocumentation","src":"12197:365:14","text":" @dev Extracts a 10-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 10-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes10 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes10","nameLocation":"12574:10:14","parameters":{"id":6708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6705,"mutability":"mutable","name":"data","nameLocation":"12593:4:14","nodeType":"VariableDeclaration","scope":6714,"src":"12585:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12585:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6707,"mutability":"mutable","name":"start","nameLocation":"12607:5:14","nodeType":"VariableDeclaration","scope":6714,"src":"12599:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6706,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12584:29:14"},"returnParameters":{"id":6711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6710,"mutability":"mutable","name":"output","nameLocation":"12645:6:14","nodeType":"VariableDeclaration","scope":6714,"src":"12637:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":6709,"name":"bytes10","nodeType":"ElementaryTypeName","src":"12637:7:14","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"12636:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6726,"nodeType":"FunctionDefinition","src":"13080:170:14","nodes":[],"body":{"id":6725,"nodeType":"Block","src":"13173:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"13188:58:14","nodeType":"YulBlock","src":"13188:58:14","statements":[{"nativeSrc":"13196:44:14","nodeType":"YulAssignment","src":"13196:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"13220:4:14","nodeType":"YulIdentifier","src":"13220:4:14"},{"kind":"number","nativeSrc":"13226:4:14","nodeType":"YulLiteral","src":"13226:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13216:3:14","nodeType":"YulIdentifier","src":"13216:3:14"},"nativeSrc":"13216:15:14","nodeType":"YulFunctionCall","src":"13216:15:14"},{"name":"start","nativeSrc":"13233:5:14","nodeType":"YulIdentifier","src":"13233:5:14"}],"functionName":{"name":"add","nativeSrc":"13212:3:14","nodeType":"YulIdentifier","src":"13212:3:14"},"nativeSrc":"13212:27:14","nodeType":"YulFunctionCall","src":"13212:27:14"}],"functionName":{"name":"mload","nativeSrc":"13206:5:14","nodeType":"YulIdentifier","src":"13206:5:14"},"nativeSrc":"13206:34:14","nodeType":"YulFunctionCall","src":"13206:34:14"},"variableNames":[{"name":"output","nativeSrc":"13196:6:14","nodeType":"YulIdentifier","src":"13196:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6717,"isOffset":false,"isSlot":false,"src":"13220:4:14","valueSize":1},{"declaration":6722,"isOffset":false,"isSlot":false,"src":"13196:6:14","valueSize":1},{"declaration":6719,"isOffset":false,"isSlot":false,"src":"13233:5:14","valueSize":1}],"id":6724,"nodeType":"InlineAssembly","src":"13179:67:14"}]},"documentation":{"id":6715,"nodeType":"StructuredDocumentation","src":"12724:353:14","text":" @dev Extracts a 11-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 11-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes11 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes11","nameLocation":"13089:10:14","parameters":{"id":6720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6717,"mutability":"mutable","name":"data","nameLocation":"13113:4:14","nodeType":"VariableDeclaration","scope":6726,"src":"13100:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6716,"name":"bytes","nodeType":"ElementaryTypeName","src":"13100:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6719,"mutability":"mutable","name":"start","nameLocation":"13127:5:14","nodeType":"VariableDeclaration","scope":6726,"src":"13119:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6718,"name":"uint256","nodeType":"ElementaryTypeName","src":"13119:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13099:34:14"},"returnParameters":{"id":6723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6722,"mutability":"mutable","name":"output","nameLocation":"13165:6:14","nodeType":"VariableDeclaration","scope":6726,"src":"13157:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":6721,"name":"bytes11","nodeType":"ElementaryTypeName","src":"13157:7:14","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"13156:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6738,"nodeType":"FunctionDefinition","src":"13622:155:14","nodes":[],"body":{"id":6737,"nodeType":"Block","src":"13710:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"13725:48:14","nodeType":"YulBlock","src":"13725:48:14","statements":[{"nativeSrc":"13733:34:14","nodeType":"YulAssignment","src":"13733:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13751:1:14","nodeType":"YulLiteral","src":"13751:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"13754:5:14","nodeType":"YulIdentifier","src":"13754:5:14"}],"functionName":{"name":"mul","nativeSrc":"13747:3:14","nodeType":"YulIdentifier","src":"13747:3:14"},"nativeSrc":"13747:13:14","nodeType":"YulFunctionCall","src":"13747:13:14"},{"name":"data","nativeSrc":"13762:4:14","nodeType":"YulIdentifier","src":"13762:4:14"}],"functionName":{"name":"shl","nativeSrc":"13743:3:14","nodeType":"YulIdentifier","src":"13743:3:14"},"nativeSrc":"13743:24:14","nodeType":"YulFunctionCall","src":"13743:24:14"},"variableNames":[{"name":"output","nativeSrc":"13733:6:14","nodeType":"YulIdentifier","src":"13733:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6729,"isOffset":false,"isSlot":false,"src":"13762:4:14","valueSize":1},{"declaration":6734,"isOffset":false,"isSlot":false,"src":"13733:6:14","valueSize":1},{"declaration":6731,"isOffset":false,"isSlot":false,"src":"13754:5:14","valueSize":1}],"id":6736,"nodeType":"InlineAssembly","src":"13716:57:14"}]},"documentation":{"id":6727,"nodeType":"StructuredDocumentation","src":"13254:365:14","text":" @dev Extracts a 11-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 11-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes11 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes11","nameLocation":"13631:10:14","parameters":{"id":6732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6729,"mutability":"mutable","name":"data","nameLocation":"13650:4:14","nodeType":"VariableDeclaration","scope":6738,"src":"13642:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13642:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6731,"mutability":"mutable","name":"start","nameLocation":"13664:5:14","nodeType":"VariableDeclaration","scope":6738,"src":"13656:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6730,"name":"uint256","nodeType":"ElementaryTypeName","src":"13656:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13641:29:14"},"returnParameters":{"id":6735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6734,"mutability":"mutable","name":"output","nameLocation":"13702:6:14","nodeType":"VariableDeclaration","scope":6738,"src":"13694:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":6733,"name":"bytes11","nodeType":"ElementaryTypeName","src":"13694:7:14","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"13693:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6750,"nodeType":"FunctionDefinition","src":"14137:170:14","nodes":[],"body":{"id":6749,"nodeType":"Block","src":"14230:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"14245:58:14","nodeType":"YulBlock","src":"14245:58:14","statements":[{"nativeSrc":"14253:44:14","nodeType":"YulAssignment","src":"14253:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"14277:4:14","nodeType":"YulIdentifier","src":"14277:4:14"},{"kind":"number","nativeSrc":"14283:4:14","nodeType":"YulLiteral","src":"14283:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14273:3:14","nodeType":"YulIdentifier","src":"14273:3:14"},"nativeSrc":"14273:15:14","nodeType":"YulFunctionCall","src":"14273:15:14"},{"name":"start","nativeSrc":"14290:5:14","nodeType":"YulIdentifier","src":"14290:5:14"}],"functionName":{"name":"add","nativeSrc":"14269:3:14","nodeType":"YulIdentifier","src":"14269:3:14"},"nativeSrc":"14269:27:14","nodeType":"YulFunctionCall","src":"14269:27:14"}],"functionName":{"name":"mload","nativeSrc":"14263:5:14","nodeType":"YulIdentifier","src":"14263:5:14"},"nativeSrc":"14263:34:14","nodeType":"YulFunctionCall","src":"14263:34:14"},"variableNames":[{"name":"output","nativeSrc":"14253:6:14","nodeType":"YulIdentifier","src":"14253:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6741,"isOffset":false,"isSlot":false,"src":"14277:4:14","valueSize":1},{"declaration":6746,"isOffset":false,"isSlot":false,"src":"14253:6:14","valueSize":1},{"declaration":6743,"isOffset":false,"isSlot":false,"src":"14290:5:14","valueSize":1}],"id":6748,"nodeType":"InlineAssembly","src":"14236:67:14"}]},"documentation":{"id":6739,"nodeType":"StructuredDocumentation","src":"13781:353:14","text":" @dev Extracts a 12-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 12-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes12 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes12","nameLocation":"14146:10:14","parameters":{"id":6744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6741,"mutability":"mutable","name":"data","nameLocation":"14170:4:14","nodeType":"VariableDeclaration","scope":6750,"src":"14157:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6740,"name":"bytes","nodeType":"ElementaryTypeName","src":"14157:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6743,"mutability":"mutable","name":"start","nameLocation":"14184:5:14","nodeType":"VariableDeclaration","scope":6750,"src":"14176:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6742,"name":"uint256","nodeType":"ElementaryTypeName","src":"14176:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14156:34:14"},"returnParameters":{"id":6747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6746,"mutability":"mutable","name":"output","nameLocation":"14222:6:14","nodeType":"VariableDeclaration","scope":6750,"src":"14214:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":6745,"name":"bytes12","nodeType":"ElementaryTypeName","src":"14214:7:14","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"14213:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6762,"nodeType":"FunctionDefinition","src":"14679:155:14","nodes":[],"body":{"id":6761,"nodeType":"Block","src":"14767:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"14782:48:14","nodeType":"YulBlock","src":"14782:48:14","statements":[{"nativeSrc":"14790:34:14","nodeType":"YulAssignment","src":"14790:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14808:1:14","nodeType":"YulLiteral","src":"14808:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"14811:5:14","nodeType":"YulIdentifier","src":"14811:5:14"}],"functionName":{"name":"mul","nativeSrc":"14804:3:14","nodeType":"YulIdentifier","src":"14804:3:14"},"nativeSrc":"14804:13:14","nodeType":"YulFunctionCall","src":"14804:13:14"},{"name":"data","nativeSrc":"14819:4:14","nodeType":"YulIdentifier","src":"14819:4:14"}],"functionName":{"name":"shl","nativeSrc":"14800:3:14","nodeType":"YulIdentifier","src":"14800:3:14"},"nativeSrc":"14800:24:14","nodeType":"YulFunctionCall","src":"14800:24:14"},"variableNames":[{"name":"output","nativeSrc":"14790:6:14","nodeType":"YulIdentifier","src":"14790:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6753,"isOffset":false,"isSlot":false,"src":"14819:4:14","valueSize":1},{"declaration":6758,"isOffset":false,"isSlot":false,"src":"14790:6:14","valueSize":1},{"declaration":6755,"isOffset":false,"isSlot":false,"src":"14811:5:14","valueSize":1}],"id":6760,"nodeType":"InlineAssembly","src":"14773:57:14"}]},"documentation":{"id":6751,"nodeType":"StructuredDocumentation","src":"14311:365:14","text":" @dev Extracts a 12-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 12-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes12 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes12","nameLocation":"14688:10:14","parameters":{"id":6756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6753,"mutability":"mutable","name":"data","nameLocation":"14707:4:14","nodeType":"VariableDeclaration","scope":6762,"src":"14699:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14699:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6755,"mutability":"mutable","name":"start","nameLocation":"14721:5:14","nodeType":"VariableDeclaration","scope":6762,"src":"14713:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6754,"name":"uint256","nodeType":"ElementaryTypeName","src":"14713:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14698:29:14"},"returnParameters":{"id":6759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6758,"mutability":"mutable","name":"output","nameLocation":"14759:6:14","nodeType":"VariableDeclaration","scope":6762,"src":"14751:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":6757,"name":"bytes12","nodeType":"ElementaryTypeName","src":"14751:7:14","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"14750:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6774,"nodeType":"FunctionDefinition","src":"15194:170:14","nodes":[],"body":{"id":6773,"nodeType":"Block","src":"15287:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"15302:58:14","nodeType":"YulBlock","src":"15302:58:14","statements":[{"nativeSrc":"15310:44:14","nodeType":"YulAssignment","src":"15310:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"15334:4:14","nodeType":"YulIdentifier","src":"15334:4:14"},{"kind":"number","nativeSrc":"15340:4:14","nodeType":"YulLiteral","src":"15340:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15330:3:14","nodeType":"YulIdentifier","src":"15330:3:14"},"nativeSrc":"15330:15:14","nodeType":"YulFunctionCall","src":"15330:15:14"},{"name":"start","nativeSrc":"15347:5:14","nodeType":"YulIdentifier","src":"15347:5:14"}],"functionName":{"name":"add","nativeSrc":"15326:3:14","nodeType":"YulIdentifier","src":"15326:3:14"},"nativeSrc":"15326:27:14","nodeType":"YulFunctionCall","src":"15326:27:14"}],"functionName":{"name":"mload","nativeSrc":"15320:5:14","nodeType":"YulIdentifier","src":"15320:5:14"},"nativeSrc":"15320:34:14","nodeType":"YulFunctionCall","src":"15320:34:14"},"variableNames":[{"name":"output","nativeSrc":"15310:6:14","nodeType":"YulIdentifier","src":"15310:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6765,"isOffset":false,"isSlot":false,"src":"15334:4:14","valueSize":1},{"declaration":6770,"isOffset":false,"isSlot":false,"src":"15310:6:14","valueSize":1},{"declaration":6767,"isOffset":false,"isSlot":false,"src":"15347:5:14","valueSize":1}],"id":6772,"nodeType":"InlineAssembly","src":"15293:67:14"}]},"documentation":{"id":6763,"nodeType":"StructuredDocumentation","src":"14838:353:14","text":" @dev Extracts a 13-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 13-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes13 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes13","nameLocation":"15203:10:14","parameters":{"id":6768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6765,"mutability":"mutable","name":"data","nameLocation":"15227:4:14","nodeType":"VariableDeclaration","scope":6774,"src":"15214:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6764,"name":"bytes","nodeType":"ElementaryTypeName","src":"15214:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6767,"mutability":"mutable","name":"start","nameLocation":"15241:5:14","nodeType":"VariableDeclaration","scope":6774,"src":"15233:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6766,"name":"uint256","nodeType":"ElementaryTypeName","src":"15233:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15213:34:14"},"returnParameters":{"id":6771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6770,"mutability":"mutable","name":"output","nameLocation":"15279:6:14","nodeType":"VariableDeclaration","scope":6774,"src":"15271:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":6769,"name":"bytes13","nodeType":"ElementaryTypeName","src":"15271:7:14","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"15270:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6786,"nodeType":"FunctionDefinition","src":"15736:155:14","nodes":[],"body":{"id":6785,"nodeType":"Block","src":"15824:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"15839:48:14","nodeType":"YulBlock","src":"15839:48:14","statements":[{"nativeSrc":"15847:34:14","nodeType":"YulAssignment","src":"15847:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15865:1:14","nodeType":"YulLiteral","src":"15865:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"15868:5:14","nodeType":"YulIdentifier","src":"15868:5:14"}],"functionName":{"name":"mul","nativeSrc":"15861:3:14","nodeType":"YulIdentifier","src":"15861:3:14"},"nativeSrc":"15861:13:14","nodeType":"YulFunctionCall","src":"15861:13:14"},{"name":"data","nativeSrc":"15876:4:14","nodeType":"YulIdentifier","src":"15876:4:14"}],"functionName":{"name":"shl","nativeSrc":"15857:3:14","nodeType":"YulIdentifier","src":"15857:3:14"},"nativeSrc":"15857:24:14","nodeType":"YulFunctionCall","src":"15857:24:14"},"variableNames":[{"name":"output","nativeSrc":"15847:6:14","nodeType":"YulIdentifier","src":"15847:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6777,"isOffset":false,"isSlot":false,"src":"15876:4:14","valueSize":1},{"declaration":6782,"isOffset":false,"isSlot":false,"src":"15847:6:14","valueSize":1},{"declaration":6779,"isOffset":false,"isSlot":false,"src":"15868:5:14","valueSize":1}],"id":6784,"nodeType":"InlineAssembly","src":"15830:57:14"}]},"documentation":{"id":6775,"nodeType":"StructuredDocumentation","src":"15368:365:14","text":" @dev Extracts a 13-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 13-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes13 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes13","nameLocation":"15745:10:14","parameters":{"id":6780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6777,"mutability":"mutable","name":"data","nameLocation":"15764:4:14","nodeType":"VariableDeclaration","scope":6786,"src":"15756:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15756:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6779,"mutability":"mutable","name":"start","nameLocation":"15778:5:14","nodeType":"VariableDeclaration","scope":6786,"src":"15770:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6778,"name":"uint256","nodeType":"ElementaryTypeName","src":"15770:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15755:29:14"},"returnParameters":{"id":6783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6782,"mutability":"mutable","name":"output","nameLocation":"15816:6:14","nodeType":"VariableDeclaration","scope":6786,"src":"15808:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":6781,"name":"bytes13","nodeType":"ElementaryTypeName","src":"15808:7:14","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"15807:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6798,"nodeType":"FunctionDefinition","src":"16251:170:14","nodes":[],"body":{"id":6797,"nodeType":"Block","src":"16344:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"16359:58:14","nodeType":"YulBlock","src":"16359:58:14","statements":[{"nativeSrc":"16367:44:14","nodeType":"YulAssignment","src":"16367:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"16391:4:14","nodeType":"YulIdentifier","src":"16391:4:14"},{"kind":"number","nativeSrc":"16397:4:14","nodeType":"YulLiteral","src":"16397:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16387:3:14","nodeType":"YulIdentifier","src":"16387:3:14"},"nativeSrc":"16387:15:14","nodeType":"YulFunctionCall","src":"16387:15:14"},{"name":"start","nativeSrc":"16404:5:14","nodeType":"YulIdentifier","src":"16404:5:14"}],"functionName":{"name":"add","nativeSrc":"16383:3:14","nodeType":"YulIdentifier","src":"16383:3:14"},"nativeSrc":"16383:27:14","nodeType":"YulFunctionCall","src":"16383:27:14"}],"functionName":{"name":"mload","nativeSrc":"16377:5:14","nodeType":"YulIdentifier","src":"16377:5:14"},"nativeSrc":"16377:34:14","nodeType":"YulFunctionCall","src":"16377:34:14"},"variableNames":[{"name":"output","nativeSrc":"16367:6:14","nodeType":"YulIdentifier","src":"16367:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6789,"isOffset":false,"isSlot":false,"src":"16391:4:14","valueSize":1},{"declaration":6794,"isOffset":false,"isSlot":false,"src":"16367:6:14","valueSize":1},{"declaration":6791,"isOffset":false,"isSlot":false,"src":"16404:5:14","valueSize":1}],"id":6796,"nodeType":"InlineAssembly","src":"16350:67:14"}]},"documentation":{"id":6787,"nodeType":"StructuredDocumentation","src":"15895:353:14","text":" @dev Extracts a 14-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 14-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes14 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes14","nameLocation":"16260:10:14","parameters":{"id":6792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6789,"mutability":"mutable","name":"data","nameLocation":"16284:4:14","nodeType":"VariableDeclaration","scope":6798,"src":"16271:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6788,"name":"bytes","nodeType":"ElementaryTypeName","src":"16271:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6791,"mutability":"mutable","name":"start","nameLocation":"16298:5:14","nodeType":"VariableDeclaration","scope":6798,"src":"16290:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6790,"name":"uint256","nodeType":"ElementaryTypeName","src":"16290:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16270:34:14"},"returnParameters":{"id":6795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6794,"mutability":"mutable","name":"output","nameLocation":"16336:6:14","nodeType":"VariableDeclaration","scope":6798,"src":"16328:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":6793,"name":"bytes14","nodeType":"ElementaryTypeName","src":"16328:7:14","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"16327:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6810,"nodeType":"FunctionDefinition","src":"16793:155:14","nodes":[],"body":{"id":6809,"nodeType":"Block","src":"16881:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"16896:48:14","nodeType":"YulBlock","src":"16896:48:14","statements":[{"nativeSrc":"16904:34:14","nodeType":"YulAssignment","src":"16904:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16922:1:14","nodeType":"YulLiteral","src":"16922:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"16925:5:14","nodeType":"YulIdentifier","src":"16925:5:14"}],"functionName":{"name":"mul","nativeSrc":"16918:3:14","nodeType":"YulIdentifier","src":"16918:3:14"},"nativeSrc":"16918:13:14","nodeType":"YulFunctionCall","src":"16918:13:14"},{"name":"data","nativeSrc":"16933:4:14","nodeType":"YulIdentifier","src":"16933:4:14"}],"functionName":{"name":"shl","nativeSrc":"16914:3:14","nodeType":"YulIdentifier","src":"16914:3:14"},"nativeSrc":"16914:24:14","nodeType":"YulFunctionCall","src":"16914:24:14"},"variableNames":[{"name":"output","nativeSrc":"16904:6:14","nodeType":"YulIdentifier","src":"16904:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6801,"isOffset":false,"isSlot":false,"src":"16933:4:14","valueSize":1},{"declaration":6806,"isOffset":false,"isSlot":false,"src":"16904:6:14","valueSize":1},{"declaration":6803,"isOffset":false,"isSlot":false,"src":"16925:5:14","valueSize":1}],"id":6808,"nodeType":"InlineAssembly","src":"16887:57:14"}]},"documentation":{"id":6799,"nodeType":"StructuredDocumentation","src":"16425:365:14","text":" @dev Extracts a 14-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 14-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes14 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes14","nameLocation":"16802:10:14","parameters":{"id":6804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6801,"mutability":"mutable","name":"data","nameLocation":"16821:4:14","nodeType":"VariableDeclaration","scope":6810,"src":"16813:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16813:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6803,"mutability":"mutable","name":"start","nameLocation":"16835:5:14","nodeType":"VariableDeclaration","scope":6810,"src":"16827:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6802,"name":"uint256","nodeType":"ElementaryTypeName","src":"16827:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16812:29:14"},"returnParameters":{"id":6807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6806,"mutability":"mutable","name":"output","nameLocation":"16873:6:14","nodeType":"VariableDeclaration","scope":6810,"src":"16865:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":6805,"name":"bytes14","nodeType":"ElementaryTypeName","src":"16865:7:14","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"16864:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6822,"nodeType":"FunctionDefinition","src":"17308:170:14","nodes":[],"body":{"id":6821,"nodeType":"Block","src":"17401:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"17416:58:14","nodeType":"YulBlock","src":"17416:58:14","statements":[{"nativeSrc":"17424:44:14","nodeType":"YulAssignment","src":"17424:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"17448:4:14","nodeType":"YulIdentifier","src":"17448:4:14"},{"kind":"number","nativeSrc":"17454:4:14","nodeType":"YulLiteral","src":"17454:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17444:3:14","nodeType":"YulIdentifier","src":"17444:3:14"},"nativeSrc":"17444:15:14","nodeType":"YulFunctionCall","src":"17444:15:14"},{"name":"start","nativeSrc":"17461:5:14","nodeType":"YulIdentifier","src":"17461:5:14"}],"functionName":{"name":"add","nativeSrc":"17440:3:14","nodeType":"YulIdentifier","src":"17440:3:14"},"nativeSrc":"17440:27:14","nodeType":"YulFunctionCall","src":"17440:27:14"}],"functionName":{"name":"mload","nativeSrc":"17434:5:14","nodeType":"YulIdentifier","src":"17434:5:14"},"nativeSrc":"17434:34:14","nodeType":"YulFunctionCall","src":"17434:34:14"},"variableNames":[{"name":"output","nativeSrc":"17424:6:14","nodeType":"YulIdentifier","src":"17424:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6813,"isOffset":false,"isSlot":false,"src":"17448:4:14","valueSize":1},{"declaration":6818,"isOffset":false,"isSlot":false,"src":"17424:6:14","valueSize":1},{"declaration":6815,"isOffset":false,"isSlot":false,"src":"17461:5:14","valueSize":1}],"id":6820,"nodeType":"InlineAssembly","src":"17407:67:14"}]},"documentation":{"id":6811,"nodeType":"StructuredDocumentation","src":"16952:353:14","text":" @dev Extracts a 15-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 15-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes15 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes15","nameLocation":"17317:10:14","parameters":{"id":6816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6813,"mutability":"mutable","name":"data","nameLocation":"17341:4:14","nodeType":"VariableDeclaration","scope":6822,"src":"17328:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6812,"name":"bytes","nodeType":"ElementaryTypeName","src":"17328:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6815,"mutability":"mutable","name":"start","nameLocation":"17355:5:14","nodeType":"VariableDeclaration","scope":6822,"src":"17347:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6814,"name":"uint256","nodeType":"ElementaryTypeName","src":"17347:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17327:34:14"},"returnParameters":{"id":6819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6818,"mutability":"mutable","name":"output","nameLocation":"17393:6:14","nodeType":"VariableDeclaration","scope":6822,"src":"17385:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":6817,"name":"bytes15","nodeType":"ElementaryTypeName","src":"17385:7:14","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"17384:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6834,"nodeType":"FunctionDefinition","src":"17850:155:14","nodes":[],"body":{"id":6833,"nodeType":"Block","src":"17938:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"17953:48:14","nodeType":"YulBlock","src":"17953:48:14","statements":[{"nativeSrc":"17961:34:14","nodeType":"YulAssignment","src":"17961:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17979:1:14","nodeType":"YulLiteral","src":"17979:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"17982:5:14","nodeType":"YulIdentifier","src":"17982:5:14"}],"functionName":{"name":"mul","nativeSrc":"17975:3:14","nodeType":"YulIdentifier","src":"17975:3:14"},"nativeSrc":"17975:13:14","nodeType":"YulFunctionCall","src":"17975:13:14"},{"name":"data","nativeSrc":"17990:4:14","nodeType":"YulIdentifier","src":"17990:4:14"}],"functionName":{"name":"shl","nativeSrc":"17971:3:14","nodeType":"YulIdentifier","src":"17971:3:14"},"nativeSrc":"17971:24:14","nodeType":"YulFunctionCall","src":"17971:24:14"},"variableNames":[{"name":"output","nativeSrc":"17961:6:14","nodeType":"YulIdentifier","src":"17961:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6825,"isOffset":false,"isSlot":false,"src":"17990:4:14","valueSize":1},{"declaration":6830,"isOffset":false,"isSlot":false,"src":"17961:6:14","valueSize":1},{"declaration":6827,"isOffset":false,"isSlot":false,"src":"17982:5:14","valueSize":1}],"id":6832,"nodeType":"InlineAssembly","src":"17944:57:14"}]},"documentation":{"id":6823,"nodeType":"StructuredDocumentation","src":"17482:365:14","text":" @dev Extracts a 15-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 15-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes15 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes15","nameLocation":"17859:10:14","parameters":{"id":6828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6825,"mutability":"mutable","name":"data","nameLocation":"17878:4:14","nodeType":"VariableDeclaration","scope":6834,"src":"17870:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17870:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6827,"mutability":"mutable","name":"start","nameLocation":"17892:5:14","nodeType":"VariableDeclaration","scope":6834,"src":"17884:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6826,"name":"uint256","nodeType":"ElementaryTypeName","src":"17884:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17869:29:14"},"returnParameters":{"id":6831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6830,"mutability":"mutable","name":"output","nameLocation":"17930:6:14","nodeType":"VariableDeclaration","scope":6834,"src":"17922:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":6829,"name":"bytes15","nodeType":"ElementaryTypeName","src":"17922:7:14","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"17921:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6846,"nodeType":"FunctionDefinition","src":"18365:170:14","nodes":[],"body":{"id":6845,"nodeType":"Block","src":"18458:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"18473:58:14","nodeType":"YulBlock","src":"18473:58:14","statements":[{"nativeSrc":"18481:44:14","nodeType":"YulAssignment","src":"18481:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"18505:4:14","nodeType":"YulIdentifier","src":"18505:4:14"},{"kind":"number","nativeSrc":"18511:4:14","nodeType":"YulLiteral","src":"18511:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18501:3:14","nodeType":"YulIdentifier","src":"18501:3:14"},"nativeSrc":"18501:15:14","nodeType":"YulFunctionCall","src":"18501:15:14"},{"name":"start","nativeSrc":"18518:5:14","nodeType":"YulIdentifier","src":"18518:5:14"}],"functionName":{"name":"add","nativeSrc":"18497:3:14","nodeType":"YulIdentifier","src":"18497:3:14"},"nativeSrc":"18497:27:14","nodeType":"YulFunctionCall","src":"18497:27:14"}],"functionName":{"name":"mload","nativeSrc":"18491:5:14","nodeType":"YulIdentifier","src":"18491:5:14"},"nativeSrc":"18491:34:14","nodeType":"YulFunctionCall","src":"18491:34:14"},"variableNames":[{"name":"output","nativeSrc":"18481:6:14","nodeType":"YulIdentifier","src":"18481:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6837,"isOffset":false,"isSlot":false,"src":"18505:4:14","valueSize":1},{"declaration":6842,"isOffset":false,"isSlot":false,"src":"18481:6:14","valueSize":1},{"declaration":6839,"isOffset":false,"isSlot":false,"src":"18518:5:14","valueSize":1}],"id":6844,"nodeType":"InlineAssembly","src":"18464:67:14"}]},"documentation":{"id":6835,"nodeType":"StructuredDocumentation","src":"18009:353:14","text":" @dev Extracts a 16-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 16-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes16 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes16","nameLocation":"18374:10:14","parameters":{"id":6840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6837,"mutability":"mutable","name":"data","nameLocation":"18398:4:14","nodeType":"VariableDeclaration","scope":6846,"src":"18385:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6836,"name":"bytes","nodeType":"ElementaryTypeName","src":"18385:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6839,"mutability":"mutable","name":"start","nameLocation":"18412:5:14","nodeType":"VariableDeclaration","scope":6846,"src":"18404:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6838,"name":"uint256","nodeType":"ElementaryTypeName","src":"18404:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18384:34:14"},"returnParameters":{"id":6843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6842,"mutability":"mutable","name":"output","nameLocation":"18450:6:14","nodeType":"VariableDeclaration","scope":6846,"src":"18442:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":6841,"name":"bytes16","nodeType":"ElementaryTypeName","src":"18442:7:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"18441:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6858,"nodeType":"FunctionDefinition","src":"18907:155:14","nodes":[],"body":{"id":6857,"nodeType":"Block","src":"18995:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"19010:48:14","nodeType":"YulBlock","src":"19010:48:14","statements":[{"nativeSrc":"19018:34:14","nodeType":"YulAssignment","src":"19018:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19036:1:14","nodeType":"YulLiteral","src":"19036:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"19039:5:14","nodeType":"YulIdentifier","src":"19039:5:14"}],"functionName":{"name":"mul","nativeSrc":"19032:3:14","nodeType":"YulIdentifier","src":"19032:3:14"},"nativeSrc":"19032:13:14","nodeType":"YulFunctionCall","src":"19032:13:14"},{"name":"data","nativeSrc":"19047:4:14","nodeType":"YulIdentifier","src":"19047:4:14"}],"functionName":{"name":"shl","nativeSrc":"19028:3:14","nodeType":"YulIdentifier","src":"19028:3:14"},"nativeSrc":"19028:24:14","nodeType":"YulFunctionCall","src":"19028:24:14"},"variableNames":[{"name":"output","nativeSrc":"19018:6:14","nodeType":"YulIdentifier","src":"19018:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6849,"isOffset":false,"isSlot":false,"src":"19047:4:14","valueSize":1},{"declaration":6854,"isOffset":false,"isSlot":false,"src":"19018:6:14","valueSize":1},{"declaration":6851,"isOffset":false,"isSlot":false,"src":"19039:5:14","valueSize":1}],"id":6856,"nodeType":"InlineAssembly","src":"19001:57:14"}]},"documentation":{"id":6847,"nodeType":"StructuredDocumentation","src":"18539:365:14","text":" @dev Extracts a 16-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 16-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes16 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes16","nameLocation":"18916:10:14","parameters":{"id":6852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6849,"mutability":"mutable","name":"data","nameLocation":"18935:4:14","nodeType":"VariableDeclaration","scope":6858,"src":"18927:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18927:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6851,"mutability":"mutable","name":"start","nameLocation":"18949:5:14","nodeType":"VariableDeclaration","scope":6858,"src":"18941:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6850,"name":"uint256","nodeType":"ElementaryTypeName","src":"18941:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18926:29:14"},"returnParameters":{"id":6855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6854,"mutability":"mutable","name":"output","nameLocation":"18987:6:14","nodeType":"VariableDeclaration","scope":6858,"src":"18979:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":6853,"name":"bytes16","nodeType":"ElementaryTypeName","src":"18979:7:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"18978:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6870,"nodeType":"FunctionDefinition","src":"19422:170:14","nodes":[],"body":{"id":6869,"nodeType":"Block","src":"19515:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"19530:58:14","nodeType":"YulBlock","src":"19530:58:14","statements":[{"nativeSrc":"19538:44:14","nodeType":"YulAssignment","src":"19538:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"19562:4:14","nodeType":"YulIdentifier","src":"19562:4:14"},{"kind":"number","nativeSrc":"19568:4:14","nodeType":"YulLiteral","src":"19568:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19558:3:14","nodeType":"YulIdentifier","src":"19558:3:14"},"nativeSrc":"19558:15:14","nodeType":"YulFunctionCall","src":"19558:15:14"},{"name":"start","nativeSrc":"19575:5:14","nodeType":"YulIdentifier","src":"19575:5:14"}],"functionName":{"name":"add","nativeSrc":"19554:3:14","nodeType":"YulIdentifier","src":"19554:3:14"},"nativeSrc":"19554:27:14","nodeType":"YulFunctionCall","src":"19554:27:14"}],"functionName":{"name":"mload","nativeSrc":"19548:5:14","nodeType":"YulIdentifier","src":"19548:5:14"},"nativeSrc":"19548:34:14","nodeType":"YulFunctionCall","src":"19548:34:14"},"variableNames":[{"name":"output","nativeSrc":"19538:6:14","nodeType":"YulIdentifier","src":"19538:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6861,"isOffset":false,"isSlot":false,"src":"19562:4:14","valueSize":1},{"declaration":6866,"isOffset":false,"isSlot":false,"src":"19538:6:14","valueSize":1},{"declaration":6863,"isOffset":false,"isSlot":false,"src":"19575:5:14","valueSize":1}],"id":6868,"nodeType":"InlineAssembly","src":"19521:67:14"}]},"documentation":{"id":6859,"nodeType":"StructuredDocumentation","src":"19066:353:14","text":" @dev Extracts a 17-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 17-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes17 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes17","nameLocation":"19431:10:14","parameters":{"id":6864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6861,"mutability":"mutable","name":"data","nameLocation":"19455:4:14","nodeType":"VariableDeclaration","scope":6870,"src":"19442:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6860,"name":"bytes","nodeType":"ElementaryTypeName","src":"19442:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6863,"mutability":"mutable","name":"start","nameLocation":"19469:5:14","nodeType":"VariableDeclaration","scope":6870,"src":"19461:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6862,"name":"uint256","nodeType":"ElementaryTypeName","src":"19461:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19441:34:14"},"returnParameters":{"id":6867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6866,"mutability":"mutable","name":"output","nameLocation":"19507:6:14","nodeType":"VariableDeclaration","scope":6870,"src":"19499:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":6865,"name":"bytes17","nodeType":"ElementaryTypeName","src":"19499:7:14","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"19498:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6882,"nodeType":"FunctionDefinition","src":"19964:155:14","nodes":[],"body":{"id":6881,"nodeType":"Block","src":"20052:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"20067:48:14","nodeType":"YulBlock","src":"20067:48:14","statements":[{"nativeSrc":"20075:34:14","nodeType":"YulAssignment","src":"20075:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20093:1:14","nodeType":"YulLiteral","src":"20093:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"20096:5:14","nodeType":"YulIdentifier","src":"20096:5:14"}],"functionName":{"name":"mul","nativeSrc":"20089:3:14","nodeType":"YulIdentifier","src":"20089:3:14"},"nativeSrc":"20089:13:14","nodeType":"YulFunctionCall","src":"20089:13:14"},{"name":"data","nativeSrc":"20104:4:14","nodeType":"YulIdentifier","src":"20104:4:14"}],"functionName":{"name":"shl","nativeSrc":"20085:3:14","nodeType":"YulIdentifier","src":"20085:3:14"},"nativeSrc":"20085:24:14","nodeType":"YulFunctionCall","src":"20085:24:14"},"variableNames":[{"name":"output","nativeSrc":"20075:6:14","nodeType":"YulIdentifier","src":"20075:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6873,"isOffset":false,"isSlot":false,"src":"20104:4:14","valueSize":1},{"declaration":6878,"isOffset":false,"isSlot":false,"src":"20075:6:14","valueSize":1},{"declaration":6875,"isOffset":false,"isSlot":false,"src":"20096:5:14","valueSize":1}],"id":6880,"nodeType":"InlineAssembly","src":"20058:57:14"}]},"documentation":{"id":6871,"nodeType":"StructuredDocumentation","src":"19596:365:14","text":" @dev Extracts a 17-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 17-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes17 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes17","nameLocation":"19973:10:14","parameters":{"id":6876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6873,"mutability":"mutable","name":"data","nameLocation":"19992:4:14","nodeType":"VariableDeclaration","scope":6882,"src":"19984:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19984:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6875,"mutability":"mutable","name":"start","nameLocation":"20006:5:14","nodeType":"VariableDeclaration","scope":6882,"src":"19998:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6874,"name":"uint256","nodeType":"ElementaryTypeName","src":"19998:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19983:29:14"},"returnParameters":{"id":6879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6878,"mutability":"mutable","name":"output","nameLocation":"20044:6:14","nodeType":"VariableDeclaration","scope":6882,"src":"20036:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":6877,"name":"bytes17","nodeType":"ElementaryTypeName","src":"20036:7:14","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"20035:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6894,"nodeType":"FunctionDefinition","src":"20479:170:14","nodes":[],"body":{"id":6893,"nodeType":"Block","src":"20572:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"20587:58:14","nodeType":"YulBlock","src":"20587:58:14","statements":[{"nativeSrc":"20595:44:14","nodeType":"YulAssignment","src":"20595:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"20619:4:14","nodeType":"YulIdentifier","src":"20619:4:14"},{"kind":"number","nativeSrc":"20625:4:14","nodeType":"YulLiteral","src":"20625:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20615:3:14","nodeType":"YulIdentifier","src":"20615:3:14"},"nativeSrc":"20615:15:14","nodeType":"YulFunctionCall","src":"20615:15:14"},{"name":"start","nativeSrc":"20632:5:14","nodeType":"YulIdentifier","src":"20632:5:14"}],"functionName":{"name":"add","nativeSrc":"20611:3:14","nodeType":"YulIdentifier","src":"20611:3:14"},"nativeSrc":"20611:27:14","nodeType":"YulFunctionCall","src":"20611:27:14"}],"functionName":{"name":"mload","nativeSrc":"20605:5:14","nodeType":"YulIdentifier","src":"20605:5:14"},"nativeSrc":"20605:34:14","nodeType":"YulFunctionCall","src":"20605:34:14"},"variableNames":[{"name":"output","nativeSrc":"20595:6:14","nodeType":"YulIdentifier","src":"20595:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6885,"isOffset":false,"isSlot":false,"src":"20619:4:14","valueSize":1},{"declaration":6890,"isOffset":false,"isSlot":false,"src":"20595:6:14","valueSize":1},{"declaration":6887,"isOffset":false,"isSlot":false,"src":"20632:5:14","valueSize":1}],"id":6892,"nodeType":"InlineAssembly","src":"20578:67:14"}]},"documentation":{"id":6883,"nodeType":"StructuredDocumentation","src":"20123:353:14","text":" @dev Extracts a 18-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 18-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes18 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes18","nameLocation":"20488:10:14","parameters":{"id":6888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6885,"mutability":"mutable","name":"data","nameLocation":"20512:4:14","nodeType":"VariableDeclaration","scope":6894,"src":"20499:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6884,"name":"bytes","nodeType":"ElementaryTypeName","src":"20499:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6887,"mutability":"mutable","name":"start","nameLocation":"20526:5:14","nodeType":"VariableDeclaration","scope":6894,"src":"20518:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6886,"name":"uint256","nodeType":"ElementaryTypeName","src":"20518:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20498:34:14"},"returnParameters":{"id":6891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6890,"mutability":"mutable","name":"output","nameLocation":"20564:6:14","nodeType":"VariableDeclaration","scope":6894,"src":"20556:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":6889,"name":"bytes18","nodeType":"ElementaryTypeName","src":"20556:7:14","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"20555:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6906,"nodeType":"FunctionDefinition","src":"21021:155:14","nodes":[],"body":{"id":6905,"nodeType":"Block","src":"21109:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"21124:48:14","nodeType":"YulBlock","src":"21124:48:14","statements":[{"nativeSrc":"21132:34:14","nodeType":"YulAssignment","src":"21132:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21150:1:14","nodeType":"YulLiteral","src":"21150:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"21153:5:14","nodeType":"YulIdentifier","src":"21153:5:14"}],"functionName":{"name":"mul","nativeSrc":"21146:3:14","nodeType":"YulIdentifier","src":"21146:3:14"},"nativeSrc":"21146:13:14","nodeType":"YulFunctionCall","src":"21146:13:14"},{"name":"data","nativeSrc":"21161:4:14","nodeType":"YulIdentifier","src":"21161:4:14"}],"functionName":{"name":"shl","nativeSrc":"21142:3:14","nodeType":"YulIdentifier","src":"21142:3:14"},"nativeSrc":"21142:24:14","nodeType":"YulFunctionCall","src":"21142:24:14"},"variableNames":[{"name":"output","nativeSrc":"21132:6:14","nodeType":"YulIdentifier","src":"21132:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6897,"isOffset":false,"isSlot":false,"src":"21161:4:14","valueSize":1},{"declaration":6902,"isOffset":false,"isSlot":false,"src":"21132:6:14","valueSize":1},{"declaration":6899,"isOffset":false,"isSlot":false,"src":"21153:5:14","valueSize":1}],"id":6904,"nodeType":"InlineAssembly","src":"21115:57:14"}]},"documentation":{"id":6895,"nodeType":"StructuredDocumentation","src":"20653:365:14","text":" @dev Extracts a 18-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 18-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes18 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes18","nameLocation":"21030:10:14","parameters":{"id":6900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6897,"mutability":"mutable","name":"data","nameLocation":"21049:4:14","nodeType":"VariableDeclaration","scope":6906,"src":"21041:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21041:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6899,"mutability":"mutable","name":"start","nameLocation":"21063:5:14","nodeType":"VariableDeclaration","scope":6906,"src":"21055:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6898,"name":"uint256","nodeType":"ElementaryTypeName","src":"21055:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21040:29:14"},"returnParameters":{"id":6903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6902,"mutability":"mutable","name":"output","nameLocation":"21101:6:14","nodeType":"VariableDeclaration","scope":6906,"src":"21093:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":6901,"name":"bytes18","nodeType":"ElementaryTypeName","src":"21093:7:14","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"21092:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6918,"nodeType":"FunctionDefinition","src":"21536:170:14","nodes":[],"body":{"id":6917,"nodeType":"Block","src":"21629:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"21644:58:14","nodeType":"YulBlock","src":"21644:58:14","statements":[{"nativeSrc":"21652:44:14","nodeType":"YulAssignment","src":"21652:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"21676:4:14","nodeType":"YulIdentifier","src":"21676:4:14"},{"kind":"number","nativeSrc":"21682:4:14","nodeType":"YulLiteral","src":"21682:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21672:3:14","nodeType":"YulIdentifier","src":"21672:3:14"},"nativeSrc":"21672:15:14","nodeType":"YulFunctionCall","src":"21672:15:14"},{"name":"start","nativeSrc":"21689:5:14","nodeType":"YulIdentifier","src":"21689:5:14"}],"functionName":{"name":"add","nativeSrc":"21668:3:14","nodeType":"YulIdentifier","src":"21668:3:14"},"nativeSrc":"21668:27:14","nodeType":"YulFunctionCall","src":"21668:27:14"}],"functionName":{"name":"mload","nativeSrc":"21662:5:14","nodeType":"YulIdentifier","src":"21662:5:14"},"nativeSrc":"21662:34:14","nodeType":"YulFunctionCall","src":"21662:34:14"},"variableNames":[{"name":"output","nativeSrc":"21652:6:14","nodeType":"YulIdentifier","src":"21652:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6909,"isOffset":false,"isSlot":false,"src":"21676:4:14","valueSize":1},{"declaration":6914,"isOffset":false,"isSlot":false,"src":"21652:6:14","valueSize":1},{"declaration":6911,"isOffset":false,"isSlot":false,"src":"21689:5:14","valueSize":1}],"id":6916,"nodeType":"InlineAssembly","src":"21635:67:14"}]},"documentation":{"id":6907,"nodeType":"StructuredDocumentation","src":"21180:353:14","text":" @dev Extracts a 19-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 19-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes19 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes19","nameLocation":"21545:10:14","parameters":{"id":6912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6909,"mutability":"mutable","name":"data","nameLocation":"21569:4:14","nodeType":"VariableDeclaration","scope":6918,"src":"21556:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6908,"name":"bytes","nodeType":"ElementaryTypeName","src":"21556:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6911,"mutability":"mutable","name":"start","nameLocation":"21583:5:14","nodeType":"VariableDeclaration","scope":6918,"src":"21575:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6910,"name":"uint256","nodeType":"ElementaryTypeName","src":"21575:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21555:34:14"},"returnParameters":{"id":6915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6914,"mutability":"mutable","name":"output","nameLocation":"21621:6:14","nodeType":"VariableDeclaration","scope":6918,"src":"21613:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":6913,"name":"bytes19","nodeType":"ElementaryTypeName","src":"21613:7:14","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"21612:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6930,"nodeType":"FunctionDefinition","src":"22078:155:14","nodes":[],"body":{"id":6929,"nodeType":"Block","src":"22166:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"22181:48:14","nodeType":"YulBlock","src":"22181:48:14","statements":[{"nativeSrc":"22189:34:14","nodeType":"YulAssignment","src":"22189:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22207:1:14","nodeType":"YulLiteral","src":"22207:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"22210:5:14","nodeType":"YulIdentifier","src":"22210:5:14"}],"functionName":{"name":"mul","nativeSrc":"22203:3:14","nodeType":"YulIdentifier","src":"22203:3:14"},"nativeSrc":"22203:13:14","nodeType":"YulFunctionCall","src":"22203:13:14"},{"name":"data","nativeSrc":"22218:4:14","nodeType":"YulIdentifier","src":"22218:4:14"}],"functionName":{"name":"shl","nativeSrc":"22199:3:14","nodeType":"YulIdentifier","src":"22199:3:14"},"nativeSrc":"22199:24:14","nodeType":"YulFunctionCall","src":"22199:24:14"},"variableNames":[{"name":"output","nativeSrc":"22189:6:14","nodeType":"YulIdentifier","src":"22189:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6921,"isOffset":false,"isSlot":false,"src":"22218:4:14","valueSize":1},{"declaration":6926,"isOffset":false,"isSlot":false,"src":"22189:6:14","valueSize":1},{"declaration":6923,"isOffset":false,"isSlot":false,"src":"22210:5:14","valueSize":1}],"id":6928,"nodeType":"InlineAssembly","src":"22172:57:14"}]},"documentation":{"id":6919,"nodeType":"StructuredDocumentation","src":"21710:365:14","text":" @dev Extracts a 19-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 19-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes19 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes19","nameLocation":"22087:10:14","parameters":{"id":6924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6921,"mutability":"mutable","name":"data","nameLocation":"22106:4:14","nodeType":"VariableDeclaration","scope":6930,"src":"22098:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22098:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6923,"mutability":"mutable","name":"start","nameLocation":"22120:5:14","nodeType":"VariableDeclaration","scope":6930,"src":"22112:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6922,"name":"uint256","nodeType":"ElementaryTypeName","src":"22112:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22097:29:14"},"returnParameters":{"id":6927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6926,"mutability":"mutable","name":"output","nameLocation":"22158:6:14","nodeType":"VariableDeclaration","scope":6930,"src":"22150:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":6925,"name":"bytes19","nodeType":"ElementaryTypeName","src":"22150:7:14","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"22149:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6942,"nodeType":"FunctionDefinition","src":"22593:170:14","nodes":[],"body":{"id":6941,"nodeType":"Block","src":"22686:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"22701:58:14","nodeType":"YulBlock","src":"22701:58:14","statements":[{"nativeSrc":"22709:44:14","nodeType":"YulAssignment","src":"22709:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"22733:4:14","nodeType":"YulIdentifier","src":"22733:4:14"},{"kind":"number","nativeSrc":"22739:4:14","nodeType":"YulLiteral","src":"22739:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22729:3:14","nodeType":"YulIdentifier","src":"22729:3:14"},"nativeSrc":"22729:15:14","nodeType":"YulFunctionCall","src":"22729:15:14"},{"name":"start","nativeSrc":"22746:5:14","nodeType":"YulIdentifier","src":"22746:5:14"}],"functionName":{"name":"add","nativeSrc":"22725:3:14","nodeType":"YulIdentifier","src":"22725:3:14"},"nativeSrc":"22725:27:14","nodeType":"YulFunctionCall","src":"22725:27:14"}],"functionName":{"name":"mload","nativeSrc":"22719:5:14","nodeType":"YulIdentifier","src":"22719:5:14"},"nativeSrc":"22719:34:14","nodeType":"YulFunctionCall","src":"22719:34:14"},"variableNames":[{"name":"output","nativeSrc":"22709:6:14","nodeType":"YulIdentifier","src":"22709:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6933,"isOffset":false,"isSlot":false,"src":"22733:4:14","valueSize":1},{"declaration":6938,"isOffset":false,"isSlot":false,"src":"22709:6:14","valueSize":1},{"declaration":6935,"isOffset":false,"isSlot":false,"src":"22746:5:14","valueSize":1}],"id":6940,"nodeType":"InlineAssembly","src":"22692:67:14"}]},"documentation":{"id":6931,"nodeType":"StructuredDocumentation","src":"22237:353:14","text":" @dev Extracts a 20-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 20-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes20 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes20","nameLocation":"22602:10:14","parameters":{"id":6936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6933,"mutability":"mutable","name":"data","nameLocation":"22626:4:14","nodeType":"VariableDeclaration","scope":6942,"src":"22613:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6932,"name":"bytes","nodeType":"ElementaryTypeName","src":"22613:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6935,"mutability":"mutable","name":"start","nameLocation":"22640:5:14","nodeType":"VariableDeclaration","scope":6942,"src":"22632:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6934,"name":"uint256","nodeType":"ElementaryTypeName","src":"22632:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22612:34:14"},"returnParameters":{"id":6939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6938,"mutability":"mutable","name":"output","nameLocation":"22678:6:14","nodeType":"VariableDeclaration","scope":6942,"src":"22670:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":6937,"name":"bytes20","nodeType":"ElementaryTypeName","src":"22670:7:14","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"22669:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6954,"nodeType":"FunctionDefinition","src":"23135:155:14","nodes":[],"body":{"id":6953,"nodeType":"Block","src":"23223:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"23238:48:14","nodeType":"YulBlock","src":"23238:48:14","statements":[{"nativeSrc":"23246:34:14","nodeType":"YulAssignment","src":"23246:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23264:1:14","nodeType":"YulLiteral","src":"23264:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"23267:5:14","nodeType":"YulIdentifier","src":"23267:5:14"}],"functionName":{"name":"mul","nativeSrc":"23260:3:14","nodeType":"YulIdentifier","src":"23260:3:14"},"nativeSrc":"23260:13:14","nodeType":"YulFunctionCall","src":"23260:13:14"},{"name":"data","nativeSrc":"23275:4:14","nodeType":"YulIdentifier","src":"23275:4:14"}],"functionName":{"name":"shl","nativeSrc":"23256:3:14","nodeType":"YulIdentifier","src":"23256:3:14"},"nativeSrc":"23256:24:14","nodeType":"YulFunctionCall","src":"23256:24:14"},"variableNames":[{"name":"output","nativeSrc":"23246:6:14","nodeType":"YulIdentifier","src":"23246:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6945,"isOffset":false,"isSlot":false,"src":"23275:4:14","valueSize":1},{"declaration":6950,"isOffset":false,"isSlot":false,"src":"23246:6:14","valueSize":1},{"declaration":6947,"isOffset":false,"isSlot":false,"src":"23267:5:14","valueSize":1}],"id":6952,"nodeType":"InlineAssembly","src":"23229:57:14"}]},"documentation":{"id":6943,"nodeType":"StructuredDocumentation","src":"22767:365:14","text":" @dev Extracts a 20-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 20-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes20 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes20","nameLocation":"23144:10:14","parameters":{"id":6948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6945,"mutability":"mutable","name":"data","nameLocation":"23163:4:14","nodeType":"VariableDeclaration","scope":6954,"src":"23155:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23155:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6947,"mutability":"mutable","name":"start","nameLocation":"23177:5:14","nodeType":"VariableDeclaration","scope":6954,"src":"23169:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6946,"name":"uint256","nodeType":"ElementaryTypeName","src":"23169:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23154:29:14"},"returnParameters":{"id":6951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6950,"mutability":"mutable","name":"output","nameLocation":"23215:6:14","nodeType":"VariableDeclaration","scope":6954,"src":"23207:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":6949,"name":"bytes20","nodeType":"ElementaryTypeName","src":"23207:7:14","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"23206:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6966,"nodeType":"FunctionDefinition","src":"23650:170:14","nodes":[],"body":{"id":6965,"nodeType":"Block","src":"23743:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"23758:58:14","nodeType":"YulBlock","src":"23758:58:14","statements":[{"nativeSrc":"23766:44:14","nodeType":"YulAssignment","src":"23766:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23790:4:14","nodeType":"YulIdentifier","src":"23790:4:14"},{"kind":"number","nativeSrc":"23796:4:14","nodeType":"YulLiteral","src":"23796:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23786:3:14","nodeType":"YulIdentifier","src":"23786:3:14"},"nativeSrc":"23786:15:14","nodeType":"YulFunctionCall","src":"23786:15:14"},{"name":"start","nativeSrc":"23803:5:14","nodeType":"YulIdentifier","src":"23803:5:14"}],"functionName":{"name":"add","nativeSrc":"23782:3:14","nodeType":"YulIdentifier","src":"23782:3:14"},"nativeSrc":"23782:27:14","nodeType":"YulFunctionCall","src":"23782:27:14"}],"functionName":{"name":"mload","nativeSrc":"23776:5:14","nodeType":"YulIdentifier","src":"23776:5:14"},"nativeSrc":"23776:34:14","nodeType":"YulFunctionCall","src":"23776:34:14"},"variableNames":[{"name":"output","nativeSrc":"23766:6:14","nodeType":"YulIdentifier","src":"23766:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6957,"isOffset":false,"isSlot":false,"src":"23790:4:14","valueSize":1},{"declaration":6962,"isOffset":false,"isSlot":false,"src":"23766:6:14","valueSize":1},{"declaration":6959,"isOffset":false,"isSlot":false,"src":"23803:5:14","valueSize":1}],"id":6964,"nodeType":"InlineAssembly","src":"23749:67:14"}]},"documentation":{"id":6955,"nodeType":"StructuredDocumentation","src":"23294:353:14","text":" @dev Extracts a 21-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 21-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes21 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes21","nameLocation":"23659:10:14","parameters":{"id":6960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6957,"mutability":"mutable","name":"data","nameLocation":"23683:4:14","nodeType":"VariableDeclaration","scope":6966,"src":"23670:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6956,"name":"bytes","nodeType":"ElementaryTypeName","src":"23670:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6959,"mutability":"mutable","name":"start","nameLocation":"23697:5:14","nodeType":"VariableDeclaration","scope":6966,"src":"23689:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6958,"name":"uint256","nodeType":"ElementaryTypeName","src":"23689:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23669:34:14"},"returnParameters":{"id":6963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6962,"mutability":"mutable","name":"output","nameLocation":"23735:6:14","nodeType":"VariableDeclaration","scope":6966,"src":"23727:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":6961,"name":"bytes21","nodeType":"ElementaryTypeName","src":"23727:7:14","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"23726:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6978,"nodeType":"FunctionDefinition","src":"24192:155:14","nodes":[],"body":{"id":6977,"nodeType":"Block","src":"24280:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"24295:48:14","nodeType":"YulBlock","src":"24295:48:14","statements":[{"nativeSrc":"24303:34:14","nodeType":"YulAssignment","src":"24303:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"24321:1:14","nodeType":"YulLiteral","src":"24321:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"24324:5:14","nodeType":"YulIdentifier","src":"24324:5:14"}],"functionName":{"name":"mul","nativeSrc":"24317:3:14","nodeType":"YulIdentifier","src":"24317:3:14"},"nativeSrc":"24317:13:14","nodeType":"YulFunctionCall","src":"24317:13:14"},{"name":"data","nativeSrc":"24332:4:14","nodeType":"YulIdentifier","src":"24332:4:14"}],"functionName":{"name":"shl","nativeSrc":"24313:3:14","nodeType":"YulIdentifier","src":"24313:3:14"},"nativeSrc":"24313:24:14","nodeType":"YulFunctionCall","src":"24313:24:14"},"variableNames":[{"name":"output","nativeSrc":"24303:6:14","nodeType":"YulIdentifier","src":"24303:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6969,"isOffset":false,"isSlot":false,"src":"24332:4:14","valueSize":1},{"declaration":6974,"isOffset":false,"isSlot":false,"src":"24303:6:14","valueSize":1},{"declaration":6971,"isOffset":false,"isSlot":false,"src":"24324:5:14","valueSize":1}],"id":6976,"nodeType":"InlineAssembly","src":"24286:57:14"}]},"documentation":{"id":6967,"nodeType":"StructuredDocumentation","src":"23824:365:14","text":" @dev Extracts a 21-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 21-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes21 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes21","nameLocation":"24201:10:14","parameters":{"id":6972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6969,"mutability":"mutable","name":"data","nameLocation":"24220:4:14","nodeType":"VariableDeclaration","scope":6978,"src":"24212:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24212:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6971,"mutability":"mutable","name":"start","nameLocation":"24234:5:14","nodeType":"VariableDeclaration","scope":6978,"src":"24226:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6970,"name":"uint256","nodeType":"ElementaryTypeName","src":"24226:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24211:29:14"},"returnParameters":{"id":6975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6974,"mutability":"mutable","name":"output","nameLocation":"24272:6:14","nodeType":"VariableDeclaration","scope":6978,"src":"24264:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":6973,"name":"bytes21","nodeType":"ElementaryTypeName","src":"24264:7:14","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"24263:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6990,"nodeType":"FunctionDefinition","src":"24707:170:14","nodes":[],"body":{"id":6989,"nodeType":"Block","src":"24800:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"24815:58:14","nodeType":"YulBlock","src":"24815:58:14","statements":[{"nativeSrc":"24823:44:14","nodeType":"YulAssignment","src":"24823:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"24847:4:14","nodeType":"YulIdentifier","src":"24847:4:14"},{"kind":"number","nativeSrc":"24853:4:14","nodeType":"YulLiteral","src":"24853:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24843:3:14","nodeType":"YulIdentifier","src":"24843:3:14"},"nativeSrc":"24843:15:14","nodeType":"YulFunctionCall","src":"24843:15:14"},{"name":"start","nativeSrc":"24860:5:14","nodeType":"YulIdentifier","src":"24860:5:14"}],"functionName":{"name":"add","nativeSrc":"24839:3:14","nodeType":"YulIdentifier","src":"24839:3:14"},"nativeSrc":"24839:27:14","nodeType":"YulFunctionCall","src":"24839:27:14"}],"functionName":{"name":"mload","nativeSrc":"24833:5:14","nodeType":"YulIdentifier","src":"24833:5:14"},"nativeSrc":"24833:34:14","nodeType":"YulFunctionCall","src":"24833:34:14"},"variableNames":[{"name":"output","nativeSrc":"24823:6:14","nodeType":"YulIdentifier","src":"24823:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6981,"isOffset":false,"isSlot":false,"src":"24847:4:14","valueSize":1},{"declaration":6986,"isOffset":false,"isSlot":false,"src":"24823:6:14","valueSize":1},{"declaration":6983,"isOffset":false,"isSlot":false,"src":"24860:5:14","valueSize":1}],"id":6988,"nodeType":"InlineAssembly","src":"24806:67:14"}]},"documentation":{"id":6979,"nodeType":"StructuredDocumentation","src":"24351:353:14","text":" @dev Extracts a 22-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 22-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes22 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes22","nameLocation":"24716:10:14","parameters":{"id":6984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6981,"mutability":"mutable","name":"data","nameLocation":"24740:4:14","nodeType":"VariableDeclaration","scope":6990,"src":"24727:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6980,"name":"bytes","nodeType":"ElementaryTypeName","src":"24727:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6983,"mutability":"mutable","name":"start","nameLocation":"24754:5:14","nodeType":"VariableDeclaration","scope":6990,"src":"24746:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6982,"name":"uint256","nodeType":"ElementaryTypeName","src":"24746:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24726:34:14"},"returnParameters":{"id":6987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6986,"mutability":"mutable","name":"output","nameLocation":"24792:6:14","nodeType":"VariableDeclaration","scope":6990,"src":"24784:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":6985,"name":"bytes22","nodeType":"ElementaryTypeName","src":"24784:7:14","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"24783:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7002,"nodeType":"FunctionDefinition","src":"25249:155:14","nodes":[],"body":{"id":7001,"nodeType":"Block","src":"25337:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"25352:48:14","nodeType":"YulBlock","src":"25352:48:14","statements":[{"nativeSrc":"25360:34:14","nodeType":"YulAssignment","src":"25360:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25378:1:14","nodeType":"YulLiteral","src":"25378:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"25381:5:14","nodeType":"YulIdentifier","src":"25381:5:14"}],"functionName":{"name":"mul","nativeSrc":"25374:3:14","nodeType":"YulIdentifier","src":"25374:3:14"},"nativeSrc":"25374:13:14","nodeType":"YulFunctionCall","src":"25374:13:14"},{"name":"data","nativeSrc":"25389:4:14","nodeType":"YulIdentifier","src":"25389:4:14"}],"functionName":{"name":"shl","nativeSrc":"25370:3:14","nodeType":"YulIdentifier","src":"25370:3:14"},"nativeSrc":"25370:24:14","nodeType":"YulFunctionCall","src":"25370:24:14"},"variableNames":[{"name":"output","nativeSrc":"25360:6:14","nodeType":"YulIdentifier","src":"25360:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":6993,"isOffset":false,"isSlot":false,"src":"25389:4:14","valueSize":1},{"declaration":6998,"isOffset":false,"isSlot":false,"src":"25360:6:14","valueSize":1},{"declaration":6995,"isOffset":false,"isSlot":false,"src":"25381:5:14","valueSize":1}],"id":7000,"nodeType":"InlineAssembly","src":"25343:57:14"}]},"documentation":{"id":6991,"nodeType":"StructuredDocumentation","src":"24881:365:14","text":" @dev Extracts a 22-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 22-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes22 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes22","nameLocation":"25258:10:14","parameters":{"id":6996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6993,"mutability":"mutable","name":"data","nameLocation":"25277:4:14","nodeType":"VariableDeclaration","scope":7002,"src":"25269:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6992,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25269:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6995,"mutability":"mutable","name":"start","nameLocation":"25291:5:14","nodeType":"VariableDeclaration","scope":7002,"src":"25283:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6994,"name":"uint256","nodeType":"ElementaryTypeName","src":"25283:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25268:29:14"},"returnParameters":{"id":6999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6998,"mutability":"mutable","name":"output","nameLocation":"25329:6:14","nodeType":"VariableDeclaration","scope":7002,"src":"25321:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":6997,"name":"bytes22","nodeType":"ElementaryTypeName","src":"25321:7:14","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"25320:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7014,"nodeType":"FunctionDefinition","src":"25764:170:14","nodes":[],"body":{"id":7013,"nodeType":"Block","src":"25857:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"25872:58:14","nodeType":"YulBlock","src":"25872:58:14","statements":[{"nativeSrc":"25880:44:14","nodeType":"YulAssignment","src":"25880:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"25904:4:14","nodeType":"YulIdentifier","src":"25904:4:14"},{"kind":"number","nativeSrc":"25910:4:14","nodeType":"YulLiteral","src":"25910:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25900:3:14","nodeType":"YulIdentifier","src":"25900:3:14"},"nativeSrc":"25900:15:14","nodeType":"YulFunctionCall","src":"25900:15:14"},{"name":"start","nativeSrc":"25917:5:14","nodeType":"YulIdentifier","src":"25917:5:14"}],"functionName":{"name":"add","nativeSrc":"25896:3:14","nodeType":"YulIdentifier","src":"25896:3:14"},"nativeSrc":"25896:27:14","nodeType":"YulFunctionCall","src":"25896:27:14"}],"functionName":{"name":"mload","nativeSrc":"25890:5:14","nodeType":"YulIdentifier","src":"25890:5:14"},"nativeSrc":"25890:34:14","nodeType":"YulFunctionCall","src":"25890:34:14"},"variableNames":[{"name":"output","nativeSrc":"25880:6:14","nodeType":"YulIdentifier","src":"25880:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7005,"isOffset":false,"isSlot":false,"src":"25904:4:14","valueSize":1},{"declaration":7010,"isOffset":false,"isSlot":false,"src":"25880:6:14","valueSize":1},{"declaration":7007,"isOffset":false,"isSlot":false,"src":"25917:5:14","valueSize":1}],"id":7012,"nodeType":"InlineAssembly","src":"25863:67:14"}]},"documentation":{"id":7003,"nodeType":"StructuredDocumentation","src":"25408:353:14","text":" @dev Extracts a 23-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 23-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes23 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes23","nameLocation":"25773:10:14","parameters":{"id":7008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7005,"mutability":"mutable","name":"data","nameLocation":"25797:4:14","nodeType":"VariableDeclaration","scope":7014,"src":"25784:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7004,"name":"bytes","nodeType":"ElementaryTypeName","src":"25784:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7007,"mutability":"mutable","name":"start","nameLocation":"25811:5:14","nodeType":"VariableDeclaration","scope":7014,"src":"25803:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7006,"name":"uint256","nodeType":"ElementaryTypeName","src":"25803:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25783:34:14"},"returnParameters":{"id":7011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7010,"mutability":"mutable","name":"output","nameLocation":"25849:6:14","nodeType":"VariableDeclaration","scope":7014,"src":"25841:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":7009,"name":"bytes23","nodeType":"ElementaryTypeName","src":"25841:7:14","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"25840:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7026,"nodeType":"FunctionDefinition","src":"26306:155:14","nodes":[],"body":{"id":7025,"nodeType":"Block","src":"26394:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"26409:48:14","nodeType":"YulBlock","src":"26409:48:14","statements":[{"nativeSrc":"26417:34:14","nodeType":"YulAssignment","src":"26417:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"26435:1:14","nodeType":"YulLiteral","src":"26435:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"26438:5:14","nodeType":"YulIdentifier","src":"26438:5:14"}],"functionName":{"name":"mul","nativeSrc":"26431:3:14","nodeType":"YulIdentifier","src":"26431:3:14"},"nativeSrc":"26431:13:14","nodeType":"YulFunctionCall","src":"26431:13:14"},{"name":"data","nativeSrc":"26446:4:14","nodeType":"YulIdentifier","src":"26446:4:14"}],"functionName":{"name":"shl","nativeSrc":"26427:3:14","nodeType":"YulIdentifier","src":"26427:3:14"},"nativeSrc":"26427:24:14","nodeType":"YulFunctionCall","src":"26427:24:14"},"variableNames":[{"name":"output","nativeSrc":"26417:6:14","nodeType":"YulIdentifier","src":"26417:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7017,"isOffset":false,"isSlot":false,"src":"26446:4:14","valueSize":1},{"declaration":7022,"isOffset":false,"isSlot":false,"src":"26417:6:14","valueSize":1},{"declaration":7019,"isOffset":false,"isSlot":false,"src":"26438:5:14","valueSize":1}],"id":7024,"nodeType":"InlineAssembly","src":"26400:57:14"}]},"documentation":{"id":7015,"nodeType":"StructuredDocumentation","src":"25938:365:14","text":" @dev Extracts a 23-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 23-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes23 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes23","nameLocation":"26315:10:14","parameters":{"id":7020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7017,"mutability":"mutable","name":"data","nameLocation":"26334:4:14","nodeType":"VariableDeclaration","scope":7026,"src":"26326:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26326:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7019,"mutability":"mutable","name":"start","nameLocation":"26348:5:14","nodeType":"VariableDeclaration","scope":7026,"src":"26340:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7018,"name":"uint256","nodeType":"ElementaryTypeName","src":"26340:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26325:29:14"},"returnParameters":{"id":7023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7022,"mutability":"mutable","name":"output","nameLocation":"26386:6:14","nodeType":"VariableDeclaration","scope":7026,"src":"26378:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":7021,"name":"bytes23","nodeType":"ElementaryTypeName","src":"26378:7:14","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"26377:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7038,"nodeType":"FunctionDefinition","src":"26821:170:14","nodes":[],"body":{"id":7037,"nodeType":"Block","src":"26914:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"26929:58:14","nodeType":"YulBlock","src":"26929:58:14","statements":[{"nativeSrc":"26937:44:14","nodeType":"YulAssignment","src":"26937:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"26961:4:14","nodeType":"YulIdentifier","src":"26961:4:14"},{"kind":"number","nativeSrc":"26967:4:14","nodeType":"YulLiteral","src":"26967:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26957:3:14","nodeType":"YulIdentifier","src":"26957:3:14"},"nativeSrc":"26957:15:14","nodeType":"YulFunctionCall","src":"26957:15:14"},{"name":"start","nativeSrc":"26974:5:14","nodeType":"YulIdentifier","src":"26974:5:14"}],"functionName":{"name":"add","nativeSrc":"26953:3:14","nodeType":"YulIdentifier","src":"26953:3:14"},"nativeSrc":"26953:27:14","nodeType":"YulFunctionCall","src":"26953:27:14"}],"functionName":{"name":"mload","nativeSrc":"26947:5:14","nodeType":"YulIdentifier","src":"26947:5:14"},"nativeSrc":"26947:34:14","nodeType":"YulFunctionCall","src":"26947:34:14"},"variableNames":[{"name":"output","nativeSrc":"26937:6:14","nodeType":"YulIdentifier","src":"26937:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7029,"isOffset":false,"isSlot":false,"src":"26961:4:14","valueSize":1},{"declaration":7034,"isOffset":false,"isSlot":false,"src":"26937:6:14","valueSize":1},{"declaration":7031,"isOffset":false,"isSlot":false,"src":"26974:5:14","valueSize":1}],"id":7036,"nodeType":"InlineAssembly","src":"26920:67:14"}]},"documentation":{"id":7027,"nodeType":"StructuredDocumentation","src":"26465:353:14","text":" @dev Extracts a 24-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 24-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes24 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes24","nameLocation":"26830:10:14","parameters":{"id":7032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7029,"mutability":"mutable","name":"data","nameLocation":"26854:4:14","nodeType":"VariableDeclaration","scope":7038,"src":"26841:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7028,"name":"bytes","nodeType":"ElementaryTypeName","src":"26841:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7031,"mutability":"mutable","name":"start","nameLocation":"26868:5:14","nodeType":"VariableDeclaration","scope":7038,"src":"26860:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7030,"name":"uint256","nodeType":"ElementaryTypeName","src":"26860:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26840:34:14"},"returnParameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7034,"mutability":"mutable","name":"output","nameLocation":"26906:6:14","nodeType":"VariableDeclaration","scope":7038,"src":"26898:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":7033,"name":"bytes24","nodeType":"ElementaryTypeName","src":"26898:7:14","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"26897:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7050,"nodeType":"FunctionDefinition","src":"27363:155:14","nodes":[],"body":{"id":7049,"nodeType":"Block","src":"27451:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"27466:48:14","nodeType":"YulBlock","src":"27466:48:14","statements":[{"nativeSrc":"27474:34:14","nodeType":"YulAssignment","src":"27474:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27492:1:14","nodeType":"YulLiteral","src":"27492:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"27495:5:14","nodeType":"YulIdentifier","src":"27495:5:14"}],"functionName":{"name":"mul","nativeSrc":"27488:3:14","nodeType":"YulIdentifier","src":"27488:3:14"},"nativeSrc":"27488:13:14","nodeType":"YulFunctionCall","src":"27488:13:14"},{"name":"data","nativeSrc":"27503:4:14","nodeType":"YulIdentifier","src":"27503:4:14"}],"functionName":{"name":"shl","nativeSrc":"27484:3:14","nodeType":"YulIdentifier","src":"27484:3:14"},"nativeSrc":"27484:24:14","nodeType":"YulFunctionCall","src":"27484:24:14"},"variableNames":[{"name":"output","nativeSrc":"27474:6:14","nodeType":"YulIdentifier","src":"27474:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7041,"isOffset":false,"isSlot":false,"src":"27503:4:14","valueSize":1},{"declaration":7046,"isOffset":false,"isSlot":false,"src":"27474:6:14","valueSize":1},{"declaration":7043,"isOffset":false,"isSlot":false,"src":"27495:5:14","valueSize":1}],"id":7048,"nodeType":"InlineAssembly","src":"27457:57:14"}]},"documentation":{"id":7039,"nodeType":"StructuredDocumentation","src":"26995:365:14","text":" @dev Extracts a 24-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 24-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes24 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes24","nameLocation":"27372:10:14","parameters":{"id":7044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7041,"mutability":"mutable","name":"data","nameLocation":"27391:4:14","nodeType":"VariableDeclaration","scope":7050,"src":"27383:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27383:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7043,"mutability":"mutable","name":"start","nameLocation":"27405:5:14","nodeType":"VariableDeclaration","scope":7050,"src":"27397:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7042,"name":"uint256","nodeType":"ElementaryTypeName","src":"27397:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27382:29:14"},"returnParameters":{"id":7047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7046,"mutability":"mutable","name":"output","nameLocation":"27443:6:14","nodeType":"VariableDeclaration","scope":7050,"src":"27435:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":7045,"name":"bytes24","nodeType":"ElementaryTypeName","src":"27435:7:14","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"27434:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7062,"nodeType":"FunctionDefinition","src":"27878:170:14","nodes":[],"body":{"id":7061,"nodeType":"Block","src":"27971:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"27986:58:14","nodeType":"YulBlock","src":"27986:58:14","statements":[{"nativeSrc":"27994:44:14","nodeType":"YulAssignment","src":"27994:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"28018:4:14","nodeType":"YulIdentifier","src":"28018:4:14"},{"kind":"number","nativeSrc":"28024:4:14","nodeType":"YulLiteral","src":"28024:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28014:3:14","nodeType":"YulIdentifier","src":"28014:3:14"},"nativeSrc":"28014:15:14","nodeType":"YulFunctionCall","src":"28014:15:14"},{"name":"start","nativeSrc":"28031:5:14","nodeType":"YulIdentifier","src":"28031:5:14"}],"functionName":{"name":"add","nativeSrc":"28010:3:14","nodeType":"YulIdentifier","src":"28010:3:14"},"nativeSrc":"28010:27:14","nodeType":"YulFunctionCall","src":"28010:27:14"}],"functionName":{"name":"mload","nativeSrc":"28004:5:14","nodeType":"YulIdentifier","src":"28004:5:14"},"nativeSrc":"28004:34:14","nodeType":"YulFunctionCall","src":"28004:34:14"},"variableNames":[{"name":"output","nativeSrc":"27994:6:14","nodeType":"YulIdentifier","src":"27994:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7053,"isOffset":false,"isSlot":false,"src":"28018:4:14","valueSize":1},{"declaration":7058,"isOffset":false,"isSlot":false,"src":"27994:6:14","valueSize":1},{"declaration":7055,"isOffset":false,"isSlot":false,"src":"28031:5:14","valueSize":1}],"id":7060,"nodeType":"InlineAssembly","src":"27977:67:14"}]},"documentation":{"id":7051,"nodeType":"StructuredDocumentation","src":"27522:353:14","text":" @dev Extracts a 25-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 25-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes25 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes25","nameLocation":"27887:10:14","parameters":{"id":7056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7053,"mutability":"mutable","name":"data","nameLocation":"27911:4:14","nodeType":"VariableDeclaration","scope":7062,"src":"27898:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7052,"name":"bytes","nodeType":"ElementaryTypeName","src":"27898:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7055,"mutability":"mutable","name":"start","nameLocation":"27925:5:14","nodeType":"VariableDeclaration","scope":7062,"src":"27917:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7054,"name":"uint256","nodeType":"ElementaryTypeName","src":"27917:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27897:34:14"},"returnParameters":{"id":7059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7058,"mutability":"mutable","name":"output","nameLocation":"27963:6:14","nodeType":"VariableDeclaration","scope":7062,"src":"27955:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":7057,"name":"bytes25","nodeType":"ElementaryTypeName","src":"27955:7:14","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"27954:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7074,"nodeType":"FunctionDefinition","src":"28420:155:14","nodes":[],"body":{"id":7073,"nodeType":"Block","src":"28508:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"28523:48:14","nodeType":"YulBlock","src":"28523:48:14","statements":[{"nativeSrc":"28531:34:14","nodeType":"YulAssignment","src":"28531:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28549:1:14","nodeType":"YulLiteral","src":"28549:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"28552:5:14","nodeType":"YulIdentifier","src":"28552:5:14"}],"functionName":{"name":"mul","nativeSrc":"28545:3:14","nodeType":"YulIdentifier","src":"28545:3:14"},"nativeSrc":"28545:13:14","nodeType":"YulFunctionCall","src":"28545:13:14"},{"name":"data","nativeSrc":"28560:4:14","nodeType":"YulIdentifier","src":"28560:4:14"}],"functionName":{"name":"shl","nativeSrc":"28541:3:14","nodeType":"YulIdentifier","src":"28541:3:14"},"nativeSrc":"28541:24:14","nodeType":"YulFunctionCall","src":"28541:24:14"},"variableNames":[{"name":"output","nativeSrc":"28531:6:14","nodeType":"YulIdentifier","src":"28531:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7065,"isOffset":false,"isSlot":false,"src":"28560:4:14","valueSize":1},{"declaration":7070,"isOffset":false,"isSlot":false,"src":"28531:6:14","valueSize":1},{"declaration":7067,"isOffset":false,"isSlot":false,"src":"28552:5:14","valueSize":1}],"id":7072,"nodeType":"InlineAssembly","src":"28514:57:14"}]},"documentation":{"id":7063,"nodeType":"StructuredDocumentation","src":"28052:365:14","text":" @dev Extracts a 25-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 25-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes25 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes25","nameLocation":"28429:10:14","parameters":{"id":7068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7065,"mutability":"mutable","name":"data","nameLocation":"28448:4:14","nodeType":"VariableDeclaration","scope":7074,"src":"28440:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28440:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7067,"mutability":"mutable","name":"start","nameLocation":"28462:5:14","nodeType":"VariableDeclaration","scope":7074,"src":"28454:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7066,"name":"uint256","nodeType":"ElementaryTypeName","src":"28454:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28439:29:14"},"returnParameters":{"id":7071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7070,"mutability":"mutable","name":"output","nameLocation":"28500:6:14","nodeType":"VariableDeclaration","scope":7074,"src":"28492:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":7069,"name":"bytes25","nodeType":"ElementaryTypeName","src":"28492:7:14","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"28491:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7086,"nodeType":"FunctionDefinition","src":"28935:170:14","nodes":[],"body":{"id":7085,"nodeType":"Block","src":"29028:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"29043:58:14","nodeType":"YulBlock","src":"29043:58:14","statements":[{"nativeSrc":"29051:44:14","nodeType":"YulAssignment","src":"29051:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"29075:4:14","nodeType":"YulIdentifier","src":"29075:4:14"},{"kind":"number","nativeSrc":"29081:4:14","nodeType":"YulLiteral","src":"29081:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29071:3:14","nodeType":"YulIdentifier","src":"29071:3:14"},"nativeSrc":"29071:15:14","nodeType":"YulFunctionCall","src":"29071:15:14"},{"name":"start","nativeSrc":"29088:5:14","nodeType":"YulIdentifier","src":"29088:5:14"}],"functionName":{"name":"add","nativeSrc":"29067:3:14","nodeType":"YulIdentifier","src":"29067:3:14"},"nativeSrc":"29067:27:14","nodeType":"YulFunctionCall","src":"29067:27:14"}],"functionName":{"name":"mload","nativeSrc":"29061:5:14","nodeType":"YulIdentifier","src":"29061:5:14"},"nativeSrc":"29061:34:14","nodeType":"YulFunctionCall","src":"29061:34:14"},"variableNames":[{"name":"output","nativeSrc":"29051:6:14","nodeType":"YulIdentifier","src":"29051:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7077,"isOffset":false,"isSlot":false,"src":"29075:4:14","valueSize":1},{"declaration":7082,"isOffset":false,"isSlot":false,"src":"29051:6:14","valueSize":1},{"declaration":7079,"isOffset":false,"isSlot":false,"src":"29088:5:14","valueSize":1}],"id":7084,"nodeType":"InlineAssembly","src":"29034:67:14"}]},"documentation":{"id":7075,"nodeType":"StructuredDocumentation","src":"28579:353:14","text":" @dev Extracts a 26-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 26-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes26 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes26","nameLocation":"28944:10:14","parameters":{"id":7080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7077,"mutability":"mutable","name":"data","nameLocation":"28968:4:14","nodeType":"VariableDeclaration","scope":7086,"src":"28955:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7076,"name":"bytes","nodeType":"ElementaryTypeName","src":"28955:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7079,"mutability":"mutable","name":"start","nameLocation":"28982:5:14","nodeType":"VariableDeclaration","scope":7086,"src":"28974:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7078,"name":"uint256","nodeType":"ElementaryTypeName","src":"28974:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28954:34:14"},"returnParameters":{"id":7083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7082,"mutability":"mutable","name":"output","nameLocation":"29020:6:14","nodeType":"VariableDeclaration","scope":7086,"src":"29012:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":7081,"name":"bytes26","nodeType":"ElementaryTypeName","src":"29012:7:14","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"29011:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7098,"nodeType":"FunctionDefinition","src":"29477:155:14","nodes":[],"body":{"id":7097,"nodeType":"Block","src":"29565:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"29580:48:14","nodeType":"YulBlock","src":"29580:48:14","statements":[{"nativeSrc":"29588:34:14","nodeType":"YulAssignment","src":"29588:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"29606:1:14","nodeType":"YulLiteral","src":"29606:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"29609:5:14","nodeType":"YulIdentifier","src":"29609:5:14"}],"functionName":{"name":"mul","nativeSrc":"29602:3:14","nodeType":"YulIdentifier","src":"29602:3:14"},"nativeSrc":"29602:13:14","nodeType":"YulFunctionCall","src":"29602:13:14"},{"name":"data","nativeSrc":"29617:4:14","nodeType":"YulIdentifier","src":"29617:4:14"}],"functionName":{"name":"shl","nativeSrc":"29598:3:14","nodeType":"YulIdentifier","src":"29598:3:14"},"nativeSrc":"29598:24:14","nodeType":"YulFunctionCall","src":"29598:24:14"},"variableNames":[{"name":"output","nativeSrc":"29588:6:14","nodeType":"YulIdentifier","src":"29588:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7089,"isOffset":false,"isSlot":false,"src":"29617:4:14","valueSize":1},{"declaration":7094,"isOffset":false,"isSlot":false,"src":"29588:6:14","valueSize":1},{"declaration":7091,"isOffset":false,"isSlot":false,"src":"29609:5:14","valueSize":1}],"id":7096,"nodeType":"InlineAssembly","src":"29571:57:14"}]},"documentation":{"id":7087,"nodeType":"StructuredDocumentation","src":"29109:365:14","text":" @dev Extracts a 26-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 26-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes26 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes26","nameLocation":"29486:10:14","parameters":{"id":7092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7089,"mutability":"mutable","name":"data","nameLocation":"29505:4:14","nodeType":"VariableDeclaration","scope":7098,"src":"29497:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29497:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7091,"mutability":"mutable","name":"start","nameLocation":"29519:5:14","nodeType":"VariableDeclaration","scope":7098,"src":"29511:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7090,"name":"uint256","nodeType":"ElementaryTypeName","src":"29511:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29496:29:14"},"returnParameters":{"id":7095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7094,"mutability":"mutable","name":"output","nameLocation":"29557:6:14","nodeType":"VariableDeclaration","scope":7098,"src":"29549:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":7093,"name":"bytes26","nodeType":"ElementaryTypeName","src":"29549:7:14","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"29548:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7110,"nodeType":"FunctionDefinition","src":"29992:170:14","nodes":[],"body":{"id":7109,"nodeType":"Block","src":"30085:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"30100:58:14","nodeType":"YulBlock","src":"30100:58:14","statements":[{"nativeSrc":"30108:44:14","nodeType":"YulAssignment","src":"30108:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"30132:4:14","nodeType":"YulIdentifier","src":"30132:4:14"},{"kind":"number","nativeSrc":"30138:4:14","nodeType":"YulLiteral","src":"30138:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30128:3:14","nodeType":"YulIdentifier","src":"30128:3:14"},"nativeSrc":"30128:15:14","nodeType":"YulFunctionCall","src":"30128:15:14"},{"name":"start","nativeSrc":"30145:5:14","nodeType":"YulIdentifier","src":"30145:5:14"}],"functionName":{"name":"add","nativeSrc":"30124:3:14","nodeType":"YulIdentifier","src":"30124:3:14"},"nativeSrc":"30124:27:14","nodeType":"YulFunctionCall","src":"30124:27:14"}],"functionName":{"name":"mload","nativeSrc":"30118:5:14","nodeType":"YulIdentifier","src":"30118:5:14"},"nativeSrc":"30118:34:14","nodeType":"YulFunctionCall","src":"30118:34:14"},"variableNames":[{"name":"output","nativeSrc":"30108:6:14","nodeType":"YulIdentifier","src":"30108:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7101,"isOffset":false,"isSlot":false,"src":"30132:4:14","valueSize":1},{"declaration":7106,"isOffset":false,"isSlot":false,"src":"30108:6:14","valueSize":1},{"declaration":7103,"isOffset":false,"isSlot":false,"src":"30145:5:14","valueSize":1}],"id":7108,"nodeType":"InlineAssembly","src":"30091:67:14"}]},"documentation":{"id":7099,"nodeType":"StructuredDocumentation","src":"29636:353:14","text":" @dev Extracts a 27-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 27-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes27 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes27","nameLocation":"30001:10:14","parameters":{"id":7104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7101,"mutability":"mutable","name":"data","nameLocation":"30025:4:14","nodeType":"VariableDeclaration","scope":7110,"src":"30012:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7100,"name":"bytes","nodeType":"ElementaryTypeName","src":"30012:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7103,"mutability":"mutable","name":"start","nameLocation":"30039:5:14","nodeType":"VariableDeclaration","scope":7110,"src":"30031:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7102,"name":"uint256","nodeType":"ElementaryTypeName","src":"30031:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30011:34:14"},"returnParameters":{"id":7107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7106,"mutability":"mutable","name":"output","nameLocation":"30077:6:14","nodeType":"VariableDeclaration","scope":7110,"src":"30069:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":7105,"name":"bytes27","nodeType":"ElementaryTypeName","src":"30069:7:14","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"30068:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7122,"nodeType":"FunctionDefinition","src":"30534:155:14","nodes":[],"body":{"id":7121,"nodeType":"Block","src":"30622:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"30637:48:14","nodeType":"YulBlock","src":"30637:48:14","statements":[{"nativeSrc":"30645:34:14","nodeType":"YulAssignment","src":"30645:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30663:1:14","nodeType":"YulLiteral","src":"30663:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"30666:5:14","nodeType":"YulIdentifier","src":"30666:5:14"}],"functionName":{"name":"mul","nativeSrc":"30659:3:14","nodeType":"YulIdentifier","src":"30659:3:14"},"nativeSrc":"30659:13:14","nodeType":"YulFunctionCall","src":"30659:13:14"},{"name":"data","nativeSrc":"30674:4:14","nodeType":"YulIdentifier","src":"30674:4:14"}],"functionName":{"name":"shl","nativeSrc":"30655:3:14","nodeType":"YulIdentifier","src":"30655:3:14"},"nativeSrc":"30655:24:14","nodeType":"YulFunctionCall","src":"30655:24:14"},"variableNames":[{"name":"output","nativeSrc":"30645:6:14","nodeType":"YulIdentifier","src":"30645:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7113,"isOffset":false,"isSlot":false,"src":"30674:4:14","valueSize":1},{"declaration":7118,"isOffset":false,"isSlot":false,"src":"30645:6:14","valueSize":1},{"declaration":7115,"isOffset":false,"isSlot":false,"src":"30666:5:14","valueSize":1}],"id":7120,"nodeType":"InlineAssembly","src":"30628:57:14"}]},"documentation":{"id":7111,"nodeType":"StructuredDocumentation","src":"30166:365:14","text":" @dev Extracts a 27-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 27-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes27 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes27","nameLocation":"30543:10:14","parameters":{"id":7116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7113,"mutability":"mutable","name":"data","nameLocation":"30562:4:14","nodeType":"VariableDeclaration","scope":7122,"src":"30554:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30554:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7115,"mutability":"mutable","name":"start","nameLocation":"30576:5:14","nodeType":"VariableDeclaration","scope":7122,"src":"30568:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7114,"name":"uint256","nodeType":"ElementaryTypeName","src":"30568:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30553:29:14"},"returnParameters":{"id":7119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7118,"mutability":"mutable","name":"output","nameLocation":"30614:6:14","nodeType":"VariableDeclaration","scope":7122,"src":"30606:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":7117,"name":"bytes27","nodeType":"ElementaryTypeName","src":"30606:7:14","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"30605:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7134,"nodeType":"FunctionDefinition","src":"31049:170:14","nodes":[],"body":{"id":7133,"nodeType":"Block","src":"31142:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"31157:58:14","nodeType":"YulBlock","src":"31157:58:14","statements":[{"nativeSrc":"31165:44:14","nodeType":"YulAssignment","src":"31165:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"31189:4:14","nodeType":"YulIdentifier","src":"31189:4:14"},{"kind":"number","nativeSrc":"31195:4:14","nodeType":"YulLiteral","src":"31195:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31185:3:14","nodeType":"YulIdentifier","src":"31185:3:14"},"nativeSrc":"31185:15:14","nodeType":"YulFunctionCall","src":"31185:15:14"},{"name":"start","nativeSrc":"31202:5:14","nodeType":"YulIdentifier","src":"31202:5:14"}],"functionName":{"name":"add","nativeSrc":"31181:3:14","nodeType":"YulIdentifier","src":"31181:3:14"},"nativeSrc":"31181:27:14","nodeType":"YulFunctionCall","src":"31181:27:14"}],"functionName":{"name":"mload","nativeSrc":"31175:5:14","nodeType":"YulIdentifier","src":"31175:5:14"},"nativeSrc":"31175:34:14","nodeType":"YulFunctionCall","src":"31175:34:14"},"variableNames":[{"name":"output","nativeSrc":"31165:6:14","nodeType":"YulIdentifier","src":"31165:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7125,"isOffset":false,"isSlot":false,"src":"31189:4:14","valueSize":1},{"declaration":7130,"isOffset":false,"isSlot":false,"src":"31165:6:14","valueSize":1},{"declaration":7127,"isOffset":false,"isSlot":false,"src":"31202:5:14","valueSize":1}],"id":7132,"nodeType":"InlineAssembly","src":"31148:67:14"}]},"documentation":{"id":7123,"nodeType":"StructuredDocumentation","src":"30693:353:14","text":" @dev Extracts a 28-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 28-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes28 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes28","nameLocation":"31058:10:14","parameters":{"id":7128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7125,"mutability":"mutable","name":"data","nameLocation":"31082:4:14","nodeType":"VariableDeclaration","scope":7134,"src":"31069:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7124,"name":"bytes","nodeType":"ElementaryTypeName","src":"31069:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7127,"mutability":"mutable","name":"start","nameLocation":"31096:5:14","nodeType":"VariableDeclaration","scope":7134,"src":"31088:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7126,"name":"uint256","nodeType":"ElementaryTypeName","src":"31088:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31068:34:14"},"returnParameters":{"id":7131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7130,"mutability":"mutable","name":"output","nameLocation":"31134:6:14","nodeType":"VariableDeclaration","scope":7134,"src":"31126:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":7129,"name":"bytes28","nodeType":"ElementaryTypeName","src":"31126:7:14","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"31125:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7146,"nodeType":"FunctionDefinition","src":"31591:155:14","nodes":[],"body":{"id":7145,"nodeType":"Block","src":"31679:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"31694:48:14","nodeType":"YulBlock","src":"31694:48:14","statements":[{"nativeSrc":"31702:34:14","nodeType":"YulAssignment","src":"31702:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31720:1:14","nodeType":"YulLiteral","src":"31720:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"31723:5:14","nodeType":"YulIdentifier","src":"31723:5:14"}],"functionName":{"name":"mul","nativeSrc":"31716:3:14","nodeType":"YulIdentifier","src":"31716:3:14"},"nativeSrc":"31716:13:14","nodeType":"YulFunctionCall","src":"31716:13:14"},{"name":"data","nativeSrc":"31731:4:14","nodeType":"YulIdentifier","src":"31731:4:14"}],"functionName":{"name":"shl","nativeSrc":"31712:3:14","nodeType":"YulIdentifier","src":"31712:3:14"},"nativeSrc":"31712:24:14","nodeType":"YulFunctionCall","src":"31712:24:14"},"variableNames":[{"name":"output","nativeSrc":"31702:6:14","nodeType":"YulIdentifier","src":"31702:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7137,"isOffset":false,"isSlot":false,"src":"31731:4:14","valueSize":1},{"declaration":7142,"isOffset":false,"isSlot":false,"src":"31702:6:14","valueSize":1},{"declaration":7139,"isOffset":false,"isSlot":false,"src":"31723:5:14","valueSize":1}],"id":7144,"nodeType":"InlineAssembly","src":"31685:57:14"}]},"documentation":{"id":7135,"nodeType":"StructuredDocumentation","src":"31223:365:14","text":" @dev Extracts a 28-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 28-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes28 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes28","nameLocation":"31600:10:14","parameters":{"id":7140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7137,"mutability":"mutable","name":"data","nameLocation":"31619:4:14","nodeType":"VariableDeclaration","scope":7146,"src":"31611:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31611:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7139,"mutability":"mutable","name":"start","nameLocation":"31633:5:14","nodeType":"VariableDeclaration","scope":7146,"src":"31625:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7138,"name":"uint256","nodeType":"ElementaryTypeName","src":"31625:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31610:29:14"},"returnParameters":{"id":7143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7142,"mutability":"mutable","name":"output","nameLocation":"31671:6:14","nodeType":"VariableDeclaration","scope":7146,"src":"31663:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":7141,"name":"bytes28","nodeType":"ElementaryTypeName","src":"31663:7:14","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"31662:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7158,"nodeType":"FunctionDefinition","src":"32106:170:14","nodes":[],"body":{"id":7157,"nodeType":"Block","src":"32199:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"32214:58:14","nodeType":"YulBlock","src":"32214:58:14","statements":[{"nativeSrc":"32222:44:14","nodeType":"YulAssignment","src":"32222:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32246:4:14","nodeType":"YulIdentifier","src":"32246:4:14"},{"kind":"number","nativeSrc":"32252:4:14","nodeType":"YulLiteral","src":"32252:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32242:3:14","nodeType":"YulIdentifier","src":"32242:3:14"},"nativeSrc":"32242:15:14","nodeType":"YulFunctionCall","src":"32242:15:14"},{"name":"start","nativeSrc":"32259:5:14","nodeType":"YulIdentifier","src":"32259:5:14"}],"functionName":{"name":"add","nativeSrc":"32238:3:14","nodeType":"YulIdentifier","src":"32238:3:14"},"nativeSrc":"32238:27:14","nodeType":"YulFunctionCall","src":"32238:27:14"}],"functionName":{"name":"mload","nativeSrc":"32232:5:14","nodeType":"YulIdentifier","src":"32232:5:14"},"nativeSrc":"32232:34:14","nodeType":"YulFunctionCall","src":"32232:34:14"},"variableNames":[{"name":"output","nativeSrc":"32222:6:14","nodeType":"YulIdentifier","src":"32222:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7149,"isOffset":false,"isSlot":false,"src":"32246:4:14","valueSize":1},{"declaration":7154,"isOffset":false,"isSlot":false,"src":"32222:6:14","valueSize":1},{"declaration":7151,"isOffset":false,"isSlot":false,"src":"32259:5:14","valueSize":1}],"id":7156,"nodeType":"InlineAssembly","src":"32205:67:14"}]},"documentation":{"id":7147,"nodeType":"StructuredDocumentation","src":"31750:353:14","text":" @dev Extracts a 29-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 29-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes29 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes29","nameLocation":"32115:10:14","parameters":{"id":7152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7149,"mutability":"mutable","name":"data","nameLocation":"32139:4:14","nodeType":"VariableDeclaration","scope":7158,"src":"32126:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7148,"name":"bytes","nodeType":"ElementaryTypeName","src":"32126:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7151,"mutability":"mutable","name":"start","nameLocation":"32153:5:14","nodeType":"VariableDeclaration","scope":7158,"src":"32145:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7150,"name":"uint256","nodeType":"ElementaryTypeName","src":"32145:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32125:34:14"},"returnParameters":{"id":7155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7154,"mutability":"mutable","name":"output","nameLocation":"32191:6:14","nodeType":"VariableDeclaration","scope":7158,"src":"32183:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":7153,"name":"bytes29","nodeType":"ElementaryTypeName","src":"32183:7:14","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"32182:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7170,"nodeType":"FunctionDefinition","src":"32648:155:14","nodes":[],"body":{"id":7169,"nodeType":"Block","src":"32736:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"32751:48:14","nodeType":"YulBlock","src":"32751:48:14","statements":[{"nativeSrc":"32759:34:14","nodeType":"YulAssignment","src":"32759:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32777:1:14","nodeType":"YulLiteral","src":"32777:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"32780:5:14","nodeType":"YulIdentifier","src":"32780:5:14"}],"functionName":{"name":"mul","nativeSrc":"32773:3:14","nodeType":"YulIdentifier","src":"32773:3:14"},"nativeSrc":"32773:13:14","nodeType":"YulFunctionCall","src":"32773:13:14"},{"name":"data","nativeSrc":"32788:4:14","nodeType":"YulIdentifier","src":"32788:4:14"}],"functionName":{"name":"shl","nativeSrc":"32769:3:14","nodeType":"YulIdentifier","src":"32769:3:14"},"nativeSrc":"32769:24:14","nodeType":"YulFunctionCall","src":"32769:24:14"},"variableNames":[{"name":"output","nativeSrc":"32759:6:14","nodeType":"YulIdentifier","src":"32759:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7161,"isOffset":false,"isSlot":false,"src":"32788:4:14","valueSize":1},{"declaration":7166,"isOffset":false,"isSlot":false,"src":"32759:6:14","valueSize":1},{"declaration":7163,"isOffset":false,"isSlot":false,"src":"32780:5:14","valueSize":1}],"id":7168,"nodeType":"InlineAssembly","src":"32742:57:14"}]},"documentation":{"id":7159,"nodeType":"StructuredDocumentation","src":"32280:365:14","text":" @dev Extracts a 29-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 29-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes29 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes29","nameLocation":"32657:10:14","parameters":{"id":7164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7161,"mutability":"mutable","name":"data","nameLocation":"32676:4:14","nodeType":"VariableDeclaration","scope":7170,"src":"32668:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7160,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32668:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7163,"mutability":"mutable","name":"start","nameLocation":"32690:5:14","nodeType":"VariableDeclaration","scope":7170,"src":"32682:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7162,"name":"uint256","nodeType":"ElementaryTypeName","src":"32682:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32667:29:14"},"returnParameters":{"id":7167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7166,"mutability":"mutable","name":"output","nameLocation":"32728:6:14","nodeType":"VariableDeclaration","scope":7170,"src":"32720:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":7165,"name":"bytes29","nodeType":"ElementaryTypeName","src":"32720:7:14","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"32719:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7182,"nodeType":"FunctionDefinition","src":"33163:170:14","nodes":[],"body":{"id":7181,"nodeType":"Block","src":"33256:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"33271:58:14","nodeType":"YulBlock","src":"33271:58:14","statements":[{"nativeSrc":"33279:44:14","nodeType":"YulAssignment","src":"33279:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33303:4:14","nodeType":"YulIdentifier","src":"33303:4:14"},{"kind":"number","nativeSrc":"33309:4:14","nodeType":"YulLiteral","src":"33309:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33299:3:14","nodeType":"YulIdentifier","src":"33299:3:14"},"nativeSrc":"33299:15:14","nodeType":"YulFunctionCall","src":"33299:15:14"},{"name":"start","nativeSrc":"33316:5:14","nodeType":"YulIdentifier","src":"33316:5:14"}],"functionName":{"name":"add","nativeSrc":"33295:3:14","nodeType":"YulIdentifier","src":"33295:3:14"},"nativeSrc":"33295:27:14","nodeType":"YulFunctionCall","src":"33295:27:14"}],"functionName":{"name":"mload","nativeSrc":"33289:5:14","nodeType":"YulIdentifier","src":"33289:5:14"},"nativeSrc":"33289:34:14","nodeType":"YulFunctionCall","src":"33289:34:14"},"variableNames":[{"name":"output","nativeSrc":"33279:6:14","nodeType":"YulIdentifier","src":"33279:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7173,"isOffset":false,"isSlot":false,"src":"33303:4:14","valueSize":1},{"declaration":7178,"isOffset":false,"isSlot":false,"src":"33279:6:14","valueSize":1},{"declaration":7175,"isOffset":false,"isSlot":false,"src":"33316:5:14","valueSize":1}],"id":7180,"nodeType":"InlineAssembly","src":"33262:67:14"}]},"documentation":{"id":7171,"nodeType":"StructuredDocumentation","src":"32807:353:14","text":" @dev Extracts a 30-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 30-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes30 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes30","nameLocation":"33172:10:14","parameters":{"id":7176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7173,"mutability":"mutable","name":"data","nameLocation":"33196:4:14","nodeType":"VariableDeclaration","scope":7182,"src":"33183:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7172,"name":"bytes","nodeType":"ElementaryTypeName","src":"33183:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7175,"mutability":"mutable","name":"start","nameLocation":"33210:5:14","nodeType":"VariableDeclaration","scope":7182,"src":"33202:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7174,"name":"uint256","nodeType":"ElementaryTypeName","src":"33202:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33182:34:14"},"returnParameters":{"id":7179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7178,"mutability":"mutable","name":"output","nameLocation":"33248:6:14","nodeType":"VariableDeclaration","scope":7182,"src":"33240:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":7177,"name":"bytes30","nodeType":"ElementaryTypeName","src":"33240:7:14","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"33239:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7194,"nodeType":"FunctionDefinition","src":"33705:155:14","nodes":[],"body":{"id":7193,"nodeType":"Block","src":"33793:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"33808:48:14","nodeType":"YulBlock","src":"33808:48:14","statements":[{"nativeSrc":"33816:34:14","nodeType":"YulAssignment","src":"33816:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33834:1:14","nodeType":"YulLiteral","src":"33834:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"33837:5:14","nodeType":"YulIdentifier","src":"33837:5:14"}],"functionName":{"name":"mul","nativeSrc":"33830:3:14","nodeType":"YulIdentifier","src":"33830:3:14"},"nativeSrc":"33830:13:14","nodeType":"YulFunctionCall","src":"33830:13:14"},{"name":"data","nativeSrc":"33845:4:14","nodeType":"YulIdentifier","src":"33845:4:14"}],"functionName":{"name":"shl","nativeSrc":"33826:3:14","nodeType":"YulIdentifier","src":"33826:3:14"},"nativeSrc":"33826:24:14","nodeType":"YulFunctionCall","src":"33826:24:14"},"variableNames":[{"name":"output","nativeSrc":"33816:6:14","nodeType":"YulIdentifier","src":"33816:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7185,"isOffset":false,"isSlot":false,"src":"33845:4:14","valueSize":1},{"declaration":7190,"isOffset":false,"isSlot":false,"src":"33816:6:14","valueSize":1},{"declaration":7187,"isOffset":false,"isSlot":false,"src":"33837:5:14","valueSize":1}],"id":7192,"nodeType":"InlineAssembly","src":"33799:57:14"}]},"documentation":{"id":7183,"nodeType":"StructuredDocumentation","src":"33337:365:14","text":" @dev Extracts a 30-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 30-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes30 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes30","nameLocation":"33714:10:14","parameters":{"id":7188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7185,"mutability":"mutable","name":"data","nameLocation":"33733:4:14","nodeType":"VariableDeclaration","scope":7194,"src":"33725:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33725:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7187,"mutability":"mutable","name":"start","nameLocation":"33747:5:14","nodeType":"VariableDeclaration","scope":7194,"src":"33739:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7186,"name":"uint256","nodeType":"ElementaryTypeName","src":"33739:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33724:29:14"},"returnParameters":{"id":7191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7190,"mutability":"mutable","name":"output","nameLocation":"33785:6:14","nodeType":"VariableDeclaration","scope":7194,"src":"33777:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":7189,"name":"bytes30","nodeType":"ElementaryTypeName","src":"33777:7:14","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"33776:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7206,"nodeType":"FunctionDefinition","src":"34220:170:14","nodes":[],"body":{"id":7205,"nodeType":"Block","src":"34313:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"34328:58:14","nodeType":"YulBlock","src":"34328:58:14","statements":[{"nativeSrc":"34336:44:14","nodeType":"YulAssignment","src":"34336:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34360:4:14","nodeType":"YulIdentifier","src":"34360:4:14"},{"kind":"number","nativeSrc":"34366:4:14","nodeType":"YulLiteral","src":"34366:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34356:3:14","nodeType":"YulIdentifier","src":"34356:3:14"},"nativeSrc":"34356:15:14","nodeType":"YulFunctionCall","src":"34356:15:14"},{"name":"start","nativeSrc":"34373:5:14","nodeType":"YulIdentifier","src":"34373:5:14"}],"functionName":{"name":"add","nativeSrc":"34352:3:14","nodeType":"YulIdentifier","src":"34352:3:14"},"nativeSrc":"34352:27:14","nodeType":"YulFunctionCall","src":"34352:27:14"}],"functionName":{"name":"mload","nativeSrc":"34346:5:14","nodeType":"YulIdentifier","src":"34346:5:14"},"nativeSrc":"34346:34:14","nodeType":"YulFunctionCall","src":"34346:34:14"},"variableNames":[{"name":"output","nativeSrc":"34336:6:14","nodeType":"YulIdentifier","src":"34336:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7197,"isOffset":false,"isSlot":false,"src":"34360:4:14","valueSize":1},{"declaration":7202,"isOffset":false,"isSlot":false,"src":"34336:6:14","valueSize":1},{"declaration":7199,"isOffset":false,"isSlot":false,"src":"34373:5:14","valueSize":1}],"id":7204,"nodeType":"InlineAssembly","src":"34319:67:14"}]},"documentation":{"id":7195,"nodeType":"StructuredDocumentation","src":"33864:353:14","text":" @dev Extracts a 31-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 31-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes31 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes31","nameLocation":"34229:10:14","parameters":{"id":7200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7197,"mutability":"mutable","name":"data","nameLocation":"34253:4:14","nodeType":"VariableDeclaration","scope":7206,"src":"34240:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7196,"name":"bytes","nodeType":"ElementaryTypeName","src":"34240:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7199,"mutability":"mutable","name":"start","nameLocation":"34267:5:14","nodeType":"VariableDeclaration","scope":7206,"src":"34259:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7198,"name":"uint256","nodeType":"ElementaryTypeName","src":"34259:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34239:34:14"},"returnParameters":{"id":7203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7202,"mutability":"mutable","name":"output","nameLocation":"34305:6:14","nodeType":"VariableDeclaration","scope":7206,"src":"34297:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":7201,"name":"bytes31","nodeType":"ElementaryTypeName","src":"34297:7:14","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"34296:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7218,"nodeType":"FunctionDefinition","src":"34762:155:14","nodes":[],"body":{"id":7217,"nodeType":"Block","src":"34850:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"34865:48:14","nodeType":"YulBlock","src":"34865:48:14","statements":[{"nativeSrc":"34873:34:14","nodeType":"YulAssignment","src":"34873:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34891:1:14","nodeType":"YulLiteral","src":"34891:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"34894:5:14","nodeType":"YulIdentifier","src":"34894:5:14"}],"functionName":{"name":"mul","nativeSrc":"34887:3:14","nodeType":"YulIdentifier","src":"34887:3:14"},"nativeSrc":"34887:13:14","nodeType":"YulFunctionCall","src":"34887:13:14"},{"name":"data","nativeSrc":"34902:4:14","nodeType":"YulIdentifier","src":"34902:4:14"}],"functionName":{"name":"shl","nativeSrc":"34883:3:14","nodeType":"YulIdentifier","src":"34883:3:14"},"nativeSrc":"34883:24:14","nodeType":"YulFunctionCall","src":"34883:24:14"},"variableNames":[{"name":"output","nativeSrc":"34873:6:14","nodeType":"YulIdentifier","src":"34873:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7209,"isOffset":false,"isSlot":false,"src":"34902:4:14","valueSize":1},{"declaration":7214,"isOffset":false,"isSlot":false,"src":"34873:6:14","valueSize":1},{"declaration":7211,"isOffset":false,"isSlot":false,"src":"34894:5:14","valueSize":1}],"id":7216,"nodeType":"InlineAssembly","src":"34856:57:14"}]},"documentation":{"id":7207,"nodeType":"StructuredDocumentation","src":"34394:365:14","text":" @dev Extracts a 31-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 31-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes31 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes31","nameLocation":"34771:10:14","parameters":{"id":7212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7209,"mutability":"mutable","name":"data","nameLocation":"34790:4:14","nodeType":"VariableDeclaration","scope":7218,"src":"34782:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34782:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7211,"mutability":"mutable","name":"start","nameLocation":"34804:5:14","nodeType":"VariableDeclaration","scope":7218,"src":"34796:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7210,"name":"uint256","nodeType":"ElementaryTypeName","src":"34796:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34781:29:14"},"returnParameters":{"id":7215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7214,"mutability":"mutable","name":"output","nameLocation":"34842:6:14","nodeType":"VariableDeclaration","scope":7218,"src":"34834:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":7213,"name":"bytes31","nodeType":"ElementaryTypeName","src":"34834:7:14","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"34833:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7230,"nodeType":"FunctionDefinition","src":"35277:170:14","nodes":[],"body":{"id":7229,"nodeType":"Block","src":"35370:77:14","nodes":[],"statements":[{"AST":{"nativeSrc":"35385:58:14","nodeType":"YulBlock","src":"35385:58:14","statements":[{"nativeSrc":"35393:44:14","nodeType":"YulAssignment","src":"35393:44:14","value":{"arguments":[{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35417:4:14","nodeType":"YulIdentifier","src":"35417:4:14"},{"kind":"number","nativeSrc":"35423:4:14","nodeType":"YulLiteral","src":"35423:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35413:3:14","nodeType":"YulIdentifier","src":"35413:3:14"},"nativeSrc":"35413:15:14","nodeType":"YulFunctionCall","src":"35413:15:14"},{"name":"start","nativeSrc":"35430:5:14","nodeType":"YulIdentifier","src":"35430:5:14"}],"functionName":{"name":"add","nativeSrc":"35409:3:14","nodeType":"YulIdentifier","src":"35409:3:14"},"nativeSrc":"35409:27:14","nodeType":"YulFunctionCall","src":"35409:27:14"}],"functionName":{"name":"mload","nativeSrc":"35403:5:14","nodeType":"YulIdentifier","src":"35403:5:14"},"nativeSrc":"35403:34:14","nodeType":"YulFunctionCall","src":"35403:34:14"},"variableNames":[{"name":"output","nativeSrc":"35393:6:14","nodeType":"YulIdentifier","src":"35393:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7221,"isOffset":false,"isSlot":false,"src":"35417:4:14","valueSize":1},{"declaration":7226,"isOffset":false,"isSlot":false,"src":"35393:6:14","valueSize":1},{"declaration":7223,"isOffset":false,"isSlot":false,"src":"35430:5:14","valueSize":1}],"id":7228,"nodeType":"InlineAssembly","src":"35376:67:14"}]},"documentation":{"id":7219,"nodeType":"StructuredDocumentation","src":"34921:353:14","text":" @dev Extracts a 32-byte sequence from a bytes blob starting at a specific position.\n @param data The bytes blob from which a 32-byte sequence is to be extracted.\n @param start The starting position within the bytes blob for extraction.\n @return output The extracted bytes32 value from the specified position in the bytes blob."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32","nameLocation":"35286:10:14","parameters":{"id":7224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7221,"mutability":"mutable","name":"data","nameLocation":"35310:4:14","nodeType":"VariableDeclaration","scope":7230,"src":"35297:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7220,"name":"bytes","nodeType":"ElementaryTypeName","src":"35297:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7223,"mutability":"mutable","name":"start","nameLocation":"35324:5:14","nodeType":"VariableDeclaration","scope":7230,"src":"35316:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7222,"name":"uint256","nodeType":"ElementaryTypeName","src":"35316:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35296:34:14"},"returnParameters":{"id":7227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7226,"mutability":"mutable","name":"output","nameLocation":"35362:6:14","nodeType":"VariableDeclaration","scope":7230,"src":"35354:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35354:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35353:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7242,"nodeType":"FunctionDefinition","src":"35819:155:14","nodes":[],"body":{"id":7241,"nodeType":"Block","src":"35907:67:14","nodes":[],"statements":[{"AST":{"nativeSrc":"35922:48:14","nodeType":"YulBlock","src":"35922:48:14","statements":[{"nativeSrc":"35930:34:14","nodeType":"YulAssignment","src":"35930:34:14","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35948:1:14","nodeType":"YulLiteral","src":"35948:1:14","type":"","value":"8"},{"name":"start","nativeSrc":"35951:5:14","nodeType":"YulIdentifier","src":"35951:5:14"}],"functionName":{"name":"mul","nativeSrc":"35944:3:14","nodeType":"YulIdentifier","src":"35944:3:14"},"nativeSrc":"35944:13:14","nodeType":"YulFunctionCall","src":"35944:13:14"},{"name":"data","nativeSrc":"35959:4:14","nodeType":"YulIdentifier","src":"35959:4:14"}],"functionName":{"name":"shl","nativeSrc":"35940:3:14","nodeType":"YulIdentifier","src":"35940:3:14"},"nativeSrc":"35940:24:14","nodeType":"YulFunctionCall","src":"35940:24:14"},"variableNames":[{"name":"output","nativeSrc":"35930:6:14","nodeType":"YulIdentifier","src":"35930:6:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7233,"isOffset":false,"isSlot":false,"src":"35959:4:14","valueSize":1},{"declaration":7238,"isOffset":false,"isSlot":false,"src":"35930:6:14","valueSize":1},{"declaration":7235,"isOffset":false,"isSlot":false,"src":"35951:5:14","valueSize":1}],"id":7240,"nodeType":"InlineAssembly","src":"35913:57:14"}]},"documentation":{"id":7231,"nodeType":"StructuredDocumentation","src":"35451:365:14","text":" @dev Extracts a 32-byte sequence from a bytes32 value starting at a specific position.\n @param data The bytes32 value from which a 32-byte sequence is to be extracted.\n @param start The starting position within the bytes32 value for extraction.\n @return output The extracted bytes32 value from the specified position in the bytes32 value."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32","nameLocation":"35828:10:14","parameters":{"id":7236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7233,"mutability":"mutable","name":"data","nameLocation":"35847:4:14","nodeType":"VariableDeclaration","scope":7242,"src":"35839:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35839:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7235,"mutability":"mutable","name":"start","nameLocation":"35861:5:14","nodeType":"VariableDeclaration","scope":7242,"src":"35853:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7234,"name":"uint256","nodeType":"ElementaryTypeName","src":"35853:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35838:29:14"},"returnParameters":{"id":7239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7238,"mutability":"mutable","name":"output","nameLocation":"35899:6:14","nodeType":"VariableDeclaration","scope":7242,"src":"35891:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35891:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35890:16:14"},"scope":7243,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Bytes","contractDependencies":[],"contractKind":"library","documentation":{"id":6440,"nodeType":"StructuredDocumentation","src":"59:129:14","text":" @title Bytes\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @notice Utility functions for bytes."},"fullyImplemented":true,"linearizedBaseContracts":[7243],"name":"Bytes","nameLocation":"197:5:14","scope":7244,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":14}