{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/utils/memascii.sol","id":4683,"exportedSymbols":{"ASCII_MASK":[4613],"leftMask":[4592],"memIsAscii":[4682]},"nodeType":"SourceUnit","src":"33:1577:8","nodes":[{"id":4594,"nodeType":"PragmaDirective","src":"33:24:8","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":4596,"nodeType":"ImportDirective","src":"59:37:8","nodes":[],"absolutePath":"node_modules/@dk1a/solidity-stringutils/src/utils/mem.sol","file":"./mem.sol","nameLocation":"-1:-1:-1","scope":4683,"sourceUnit":4593,"symbolAliases":[{"foreign":{"id":4595,"name":"leftMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"68:8:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4613,"nodeType":"VariableDeclaration","src":"437:74:8","nodes":[],"constant":true,"mutability":"constant","name":"ASCII_MASK","nameLocation":"454:10:8","scope":4683,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4598,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"30783830","id":4599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"467:4:8","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"480:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4601,"name":"uint256","nodeType":"ElementaryTypeName","src":"480:7:8","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":4600,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"475:4:8","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"475:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":4604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"489:3:8","memberName":"max","nodeType":"MemberAccess","src":"475:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"arguments":[{"id":4607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"500:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4606,"name":"uint8","nodeType":"ElementaryTypeName","src":"500:5:8","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":4605,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"495:4:8","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"495:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":4609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"507:3:8","memberName":"max","nodeType":"MemberAccess","src":"495:15:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"475:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4611,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"474:37:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"467:44:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":4682,"nodeType":"FunctionDefinition","src":"590:1020:8","nodes":[],"body":{"id":4681,"nodeType":"Block","src":"664:946:8","nodes":[],"statements":[{"assignments":[4624],"declarations":[{"constant":false,"id":4624,"mutability":"mutable","name":"tailLen","nameLocation":"678:7:8","nodeType":"VariableDeclaration","scope":4681,"src":"670:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4623,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4625,"nodeType":"VariableDeclarationStatement","src":"670:15:8"},{"assignments":[4627],"declarations":[{"constant":false,"id":4627,"mutability":"mutable","name":"endPtr","nameLocation":"699:6:8","nodeType":"VariableDeclaration","scope":4681,"src":"691:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4626,"name":"uint256","nodeType":"ElementaryTypeName","src":"691:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4628,"nodeType":"VariableDeclarationStatement","src":"691:14:8"},{"id":4644,"nodeType":"UncheckedBlock","src":"779:97:8","statements":[{"expression":{"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4629,"name":"tailLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4624,"src":"799:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4630,"name":"textLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"809:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":4631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"819:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"809:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"799:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4634,"nodeType":"ExpressionStatement","src":"799:22:8"},{"expression":{"id":4642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4635,"name":"endPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"831:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4636,"name":"textPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"840:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4637,"name":"textLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"851:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4638,"name":"tailLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4624,"src":"861:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"851:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"850:19:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"840:29:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"831:38:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4643,"nodeType":"ExpressionStatement","src":"831:38:8"}]},{"assignments":[4646],"declarations":[{"constant":false,"id":4646,"mutability":"mutable","name":"b","nameLocation":"938:1:8","nodeType":"VariableDeclaration","scope":4681,"src":"930:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4645,"name":"uint256","nodeType":"ElementaryTypeName","src":"930:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4647,"nodeType":"VariableDeclarationStatement","src":"930:9:8"},{"body":{"id":4666,"nodeType":"Block","src":"970:371:8","statements":[{"AST":{"nativeSrc":"1032:43:8","nodeType":"YulBlock","src":"1032:43:8","statements":[{"nativeSrc":"1046:19:8","nodeType":"YulAssignment","src":"1046:19:8","value":{"arguments":[{"name":"textPtr","nativeSrc":"1057:7:8","nodeType":"YulIdentifier","src":"1057:7:8"}],"functionName":{"name":"mload","nativeSrc":"1051:5:8","nodeType":"YulIdentifier","src":"1051:5:8"},"nativeSrc":"1051:14:8","nodeType":"YulFunctionCall","src":"1051:14:8"},"variableNames":[{"name":"b","nativeSrc":"1046:1:8","nodeType":"YulIdentifier","src":"1046:1:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4646,"isOffset":false,"isSlot":false,"src":"1046:1:8","valueSize":1},{"declaration":4616,"isOffset":false,"isSlot":false,"src":"1057:7:8","valueSize":1}],"id":4651,"nodeType":"InlineAssembly","src":"1023:52:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4652,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4646,"src":"1136:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4653,"name":"ASCII_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"1140:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1136:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1154:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1136:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4660,"nodeType":"IfStatement","src":"1132:62:8","trueBody":{"id":4659,"nodeType":"Block","src":"1157:37:8","statements":[{"expression":{"hexValue":"66616c7365","id":4657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1178:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4622,"id":4658,"nodeType":"Return","src":"1171:12:8"}]}},{"id":4665,"nodeType":"UncheckedBlock","src":"1287:48:8","statements":[{"expression":{"id":4663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4661,"name":"textPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"1311:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1311:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4664,"nodeType":"ExpressionStatement","src":"1311:13:8"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4648,"name":"textPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"952:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4649,"name":"endPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"962:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"952:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4667,"nodeType":"WhileStatement","src":"945:396:8"},{"assignments":[4669],"declarations":[{"constant":false,"id":4669,"mutability":"mutable","name":"trailingMask","nameLocation":"1399:12:8","nodeType":"VariableDeclaration","scope":4681,"src":"1391:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1391:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4673,"initialValue":{"arguments":[{"id":4671,"name":"tailLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4624,"src":"1423:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4670,"name":"leftMask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"1414:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1391:40:8"},{"AST":{"nativeSrc":"1485:53:8","nodeType":"YulBlock","src":"1485:53:8","statements":[{"nativeSrc":"1495:37:8","nodeType":"YulAssignment","src":"1495:37:8","value":{"arguments":[{"arguments":[{"name":"endPtr","nativeSrc":"1510:6:8","nodeType":"YulIdentifier","src":"1510:6:8"}],"functionName":{"name":"mload","nativeSrc":"1504:5:8","nodeType":"YulIdentifier","src":"1504:5:8"},"nativeSrc":"1504:13:8","nodeType":"YulFunctionCall","src":"1504:13:8"},{"name":"trailingMask","nativeSrc":"1519:12:8","nodeType":"YulIdentifier","src":"1519:12:8"}],"functionName":{"name":"and","nativeSrc":"1500:3:8","nodeType":"YulIdentifier","src":"1500:3:8"},"nativeSrc":"1500:32:8","nodeType":"YulFunctionCall","src":"1500:32:8"},"variableNames":[{"name":"b","nativeSrc":"1495:1:8","nodeType":"YulIdentifier","src":"1495:1:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4646,"isOffset":false,"isSlot":false,"src":"1495:1:8","valueSize":1},{"declaration":4627,"isOffset":false,"isSlot":false,"src":"1510:6:8","valueSize":1},{"declaration":4669,"isOffset":false,"isSlot":false,"src":"1519:12:8","valueSize":1}],"id":4674,"nodeType":"InlineAssembly","src":"1476:62:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4675,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4646,"src":"1588:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4676,"name":"ASCII_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"1592:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1588:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1606:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1588:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4622,"id":4680,"nodeType":"Return","src":"1581:26:8"}]},"documentation":{"id":4614,"nodeType":"StructuredDocumentation","src":"514:75:8","text":" @dev Efficiently checks if all bytes are within the ASCII range."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"memIsAscii","nameLocation":"599:10:8","parameters":{"id":4619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4616,"mutability":"mutable","name":"textPtr","nameLocation":"618:7:8","nodeType":"VariableDeclaration","scope":4682,"src":"610:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4615,"name":"uint256","nodeType":"ElementaryTypeName","src":"610:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4618,"mutability":"mutable","name":"textLen","nameLocation":"635:7:8","nodeType":"VariableDeclaration","scope":4682,"src":"627:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4617,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"609:34:8"},"returnParameters":{"id":4622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4682,"src":"658:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4620,"name":"bool","nodeType":"ElementaryTypeName","src":"658:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"657:6:8"},"scope":4683,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"MIT"},"id":8}