{
    "contractName": "PairRStCelo",
    "abi": [
        {
            "stateMutability": "payable",
            "type": "receive"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "input",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "output",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "to",
                    "type": "address"
                },
                {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                }
            ],
            "name": "swap",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "amountIn",
                    "type": "uint256"
                },
                {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                }
            ],
            "name": "getOutputAmount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "amountOut",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getOutputAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"input\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"output\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/swappa/PairRStCelo.sol\":\"PairRStCelo\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x91e0bd6a6762d2a1700dab0849de8422611355100576c4beef1e80d82a4104a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73bbd77af0a8b07255d2ffa20728bcf13b116007c9ddac5d37046cfabb0e1e02\",\"dweb:/ipfs/QmRgZgWCWCSMTTaok6o4QvWA6MgB4goS8qpb3sN7bAvaZ9\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf5fa8cbdffa5ef8be49b246b5628facc30b71707e78a45d80d93b64eff3fe390\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://774e78a9ff32792cc95db4d2ceaf3a7965bb7f0bea5e6cb7cff182b450d44b37\",\"dweb:/ipfs/QmRRMC4uj7eAcLW7chynA3sNEYULMFazdLwQHKHQPyzAbA\"]},\"project:/contracts/interfaces/stCelo/IRebasedStakedCelo.sol\":{\"keccak256\":\"0xcc0f157480f740c466756bf2760d41e2ef3c6556079f1d1c72c0623dc280b1ba\",\"urls\":[\"bzz-raw://a5adceca46f9862053803d50a29d44b565b601d769d5c24ea6c03aa75d0f3463\",\"dweb:/ipfs/QmfWyBH7xWbVzMXGJVyAaiuyeay7FSN7vKeA2iSvYMvWVL\"]},\"project:/contracts/swappa/ISwappaPairV1.sol\":{\"keccak256\":\"0x3ad68981bda91ed83c5e9ee8617f08bb5e208208477fb755cc77077f127010ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e4390b1bebc39f58bff34b9099a646ead67cef27b722ef61548487251cca719\",\"dweb:/ipfs/QmRWEuYyjHaS957VKWtTfDpzfqkXb2bvEsS33meAC76ZuU\"]},\"project:/contracts/swappa/PairRStCelo.sol\":{\"keccak256\":\"0x28d1fbc5d21a6d6161b0cfc8b35f4d630ce25f1d602a8c4ce4f6a7638ef565c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd6b0c8066000f4d87b3d90621d9956764876329eca726a9de822f8df7be63a5\",\"dweb:/ipfs/QmNnKaXinzbXex9pCci7XHTo19ErY3M9DHcTrkmgETSJs5\"]}},\"version\":1}",
    "bytecode": "0x608060405234801561001057600080fd5b50610896806100206000396000f3fe60806040526004361061002d5760003560e01c806332ef8314146100395780637eace892146100e657610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e46004803603608081101561005c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101358216926040820135909216918101906080810160608201356401000000008111156100a557600080fd5b8201836020820111156100b757600080fd5b803590602001918460018302840111640100000000831117156100d957600080fd5b5090925090506101a2565b005b3480156100f257600080fd5b506101906004803603608081101561010957600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561015157600080fd5b82018360208201111561016357600080fd5b8035906020019184600183028401116401000000008311171561018557600080fd5b509092509050610692565b60408051918252519081900360200190f35b6000806101e484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506107c792505050565b9150915060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561026757600080fd5b505afa15801561027b573d6000803e3d6000fd5b505050506040513d602081101561029157600080fd5b50519050600160ff831614156103b05760008373ffffffffffffffffffffffffffffffffffffffff1663c494ec1e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102f457600080fd5b505afa158015610308573d6000803e3d6000fd5b505050506040513d602081101561031e57600080fd5b5051604080517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815260048101839052905191925073ffffffffffffffffffffffffffffffffffffffff861691632e1a7d4d9160248082019260009290919082900301818387803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b50505050506104d8565b8773ffffffffffffffffffffffffffffffffffffffff1663095ea7b384836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561043757600080fd5b505af115801561044b573d6000803e3d6000fd5b505050506040513d602081101561046157600080fd5b505161046c57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104bf57600080fd5b505af11580156104d3573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff8a16916370a0823191602480820192602092909190829003018186803b15801561054857600080fd5b505afa15801561055c573d6000803e3d6000fd5b505050506040513d602081101561057257600080fd5b5051604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018490529151929350908a169163a9059cbb916044808201926020929091908290030181600087803b1580156105f057600080fd5b505af1158015610604573d6000803e3d6000fd5b505050506040513d602081101561061a57600080fd5b505161068757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5061697252537443656c6f3a205472616e73666572204661696c656400000000604482015290519081900360640190fd5b505050505050505050565b60008060006106d685858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506107c792505050565b915091508060ff166001141561076d578173ffffffffffffffffffffffffffffffffffffffff1663c494ec1e876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561073757600080fd5b505afa15801561074b573d6000803e3d6000fd5b505050506040513d602081101561076157600080fd5b505192506107be915050565b8173ffffffffffffffffffffffffffffffffffffffff1663db7168a9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561073757600080fd5b95945050505050565b600080825160151461083a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5061697252537443656c6f3a20696e76616c6964206461746121000000000000604482015290519081900360640190fd5b8260148151811061084757fe5b0160200151601493909301519360f89390931c9291505056fea264697066735822122092fec6c2c46dbda1ac77fd7c8c673554fcf1f911418fa9b19b45a3fb89f6165764736f6c63430006080033",
    "deployedBytecode": "0x60806040526004361061002d5760003560e01c806332ef8314146100395780637eace892146100e657610034565b3661003457005b600080fd5b34801561004557600080fd5b506100e46004803603608081101561005c57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101358216926040820135909216918101906080810160608201356401000000008111156100a557600080fd5b8201836020820111156100b757600080fd5b803590602001918460018302840111640100000000831117156100d957600080fd5b5090925090506101a2565b005b3480156100f257600080fd5b506101906004803603608081101561010957600080fd5b73ffffffffffffffffffffffffffffffffffffffff82358116926020810135909116916040820135919081019060808101606082013564010000000081111561015157600080fd5b82018360208201111561016357600080fd5b8035906020019184600183028401116401000000008311171561018557600080fd5b509092509050610692565b60408051918252519081900360200190f35b6000806101e484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506107c792505050565b9150915060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561026757600080fd5b505afa15801561027b573d6000803e3d6000fd5b505050506040513d602081101561029157600080fd5b50519050600160ff831614156103b05760008373ffffffffffffffffffffffffffffffffffffffff1663c494ec1e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102f457600080fd5b505afa158015610308573d6000803e3d6000fd5b505050506040513d602081101561031e57600080fd5b5051604080517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815260048101839052905191925073ffffffffffffffffffffffffffffffffffffffff861691632e1a7d4d9160248082019260009290919082900301818387803b15801561039257600080fd5b505af11580156103a6573d6000803e3d6000fd5b50505050506104d8565b8773ffffffffffffffffffffffffffffffffffffffff1663095ea7b384836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561043757600080fd5b505af115801561044b573d6000803e3d6000fd5b505050506040513d602081101561046157600080fd5b505161046c57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156104bf57600080fd5b505af11580156104d3573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff8a16916370a0823191602480820192602092909190829003018186803b15801561054857600080fd5b505afa15801561055c573d6000803e3d6000fd5b505050506040513d602081101561057257600080fd5b5051604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018490529151929350908a169163a9059cbb916044808201926020929091908290030181600087803b1580156105f057600080fd5b505af1158015610604573d6000803e3d6000fd5b505050506040513d602081101561061a57600080fd5b505161068757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5061697252537443656c6f3a205472616e73666572204661696c656400000000604482015290519081900360640190fd5b505050505050505050565b60008060006106d685858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506107c792505050565b915091508060ff166001141561076d578173ffffffffffffffffffffffffffffffffffffffff1663c494ec1e876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561073757600080fd5b505afa15801561074b573d6000803e3d6000fd5b505050506040513d602081101561076157600080fd5b505192506107be915050565b8173ffffffffffffffffffffffffffffffffffffffff1663db7168a9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561073757600080fd5b95945050505050565b600080825160151461083a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5061697252537443656c6f3a20696e76616c6964206461746121000000000000604482015290519081900360640190fd5b8260148151811061084757fe5b0160200151601493909301519360f89390931c9291505056fea264697066735822122092fec6c2c46dbda1ac77fd7c8c673554fcf1f911418fa9b19b45a3fb89f6165764736f6c63430006080033",
    "immutableReferences": {},
    "sourceMap": "249:1494:53:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;249:1494:53;;;;;;;",
    "deployedSourceMap": "249:1494:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;317:719:53;;5:9:-1;2:2;;;27:1;24;17:12;2:2;317:719:53;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;317:719:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;317:719:53;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;317:719:53;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;317:719:53;;-1:-1:-1;317:719:53;-1:-1:-1;317:719:53;:::i;:::-;;1289:420;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1289:420:53;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1289:420:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1289:420:53;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1289:420:53;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;1289:420:53;;-1:-1:-1;1289:420:53;-1:-1:-1;1289:420:53;:::i;:::-;;;;;;;;;;;;;;;;317:719;429:18;449:15;468;478:4;;468:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;468:9:53;;-1:-1:-1;;;468:15:53:i;:::-;428:55;;;;487:16;512:5;506:22;;;537:4;506:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;506:37:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;506:37:53;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;506:37:53;;-1:-1:-1;565:1:53;552:14;;;;548:338;;;597:17;636:10;617:43;;;661:11;617:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;617:56:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;617:56:53;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;617:56:53;678:53;;;;;;;;;;;;;;617:56;;-1:-1:-1;678:39:53;;;;;;:53;;;;;-1:-1:-1;;678:53:53;;;;;;;;-1:-1:-1;678:39:53;:53;;;2:2:-1;;;;27:1;24;17:12;2:2;678:53:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;678:53:53;;;;548:338;;;;785:5;779:20;;;800:10;812:11;779:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;779:45:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;779:45:53;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;779:45:53;771:54;;12:1:-1;9;2:12;771:54:53;849:10;830:38;;;869:11;830:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;830:51:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;830:51:53;;;;548:338;909:38;;;;;;941:4;909:38;;;;;;889:17;;909:23;;;;;;:38;;;;;;;;;;;;;;;:23;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;909:38:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;909:38:53;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;909:38:53;959:40;;;;;;:22;:40;;;;;;;;;;;;;;;909:38;;-1:-1:-1;959:22:53;;;;;;:40;;;;;909:38;;959:40;;;;;;;;-1:-1:-1;959:22:53;:40;;;2:2:-1;;;;27:1;24;17:12;2:2;959:40:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;959:40:53;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;959:40:53;951:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:719;;;;;;;;;:::o;1289:420::-;1406:14;1427:18;1447:15;1466;1476:4;;1466:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1466:9:53;;-1:-1:-1;;;1466:15:53:i;:::-;1426:55;;;;1489:9;:14;;1502:1;1489:14;1485:221;;;1560:10;1541:43;;;1585:8;1541:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1541:53:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1541:53:53;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1541:53:53;;-1:-1:-1;1534:60:53;;-1:-1:-1;;1534:60:53;1485:221;1660:10;1641:50;;;1692:8;1641:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;1289:420:53;;;;;;;;:::o;1039:247::-;1099:18;1119:15;1148:4;:11;1163:2;1148:17;1140:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:4;1223:2;1218:8;;;;;;;;;;;;1275:2;1265:13;;;;1259:20;;1218:8;;;;;;1240:43;-1:-1:-1;;1240:43:53:o",
    "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.6.8;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"../interfaces/stCelo/IRebasedStakedCelo.sol\";\nimport \"./ISwappaPairV1.sol\";\n\ncontract PairRStCelo is ISwappaPairV1 {\n\tusing SafeMath for uint;\n\n\tfunction swap(\n\t\taddress input,\n\t\taddress output,\n\t\taddress to,\n\t\tbytes calldata data\n\t) external override {\n\t\t(address rebaseAddr, uint8 inputType) = parseData(data);\n\t\tuint inputAmount = ERC20(input).balanceOf(address(this));\n\n\t\tif (inputType == 1) {\n\t\t\t// rstCelo -> stCelo\n\t\t\tuint stCeloAmount = IRebasedStakedCelo(rebaseAddr).toStakedCelo(inputAmount);\n\t\t\tIRebasedStakedCelo(rebaseAddr).withdraw(stCeloAmount);\n\t\t} else {\n\t\t\t// stCelo -> rstCelo\n\t\t\trequire(ERC20(input).approve(rebaseAddr, inputAmount));\n\t\t\tIRebasedStakedCelo(rebaseAddr).deposit(inputAmount);\n\t\t}\n\t\tuint outputAmount = ERC20(output).balanceOf(address(this));\n\t\trequire(ERC20(output).transfer(to, outputAmount), \"PairRStCelo: Transfer Failed\");\n\t}\n\n\tfunction parseData(bytes memory data) private pure returns (address rebaseAddr, uint8 inputType) {\n\t\trequire(data.length == 21, \"PairRStCelo: invalid data!\");\n\t\tinputType = uint8(data[20]);\n\t\tassembly {\n\t\t\trebaseAddr := mload(add(data, 20))\n\t\t}\n\t}\n\n\tfunction getOutputAmount(\n\t\taddress,\n\t\taddress,\n\t\tuint amountIn,\n\t\tbytes calldata data\n\t) external override returns (uint amountOut) {\n\t\t(address rebaseAddr, uint8 inputType) = parseData(data);\n\t\tif (inputType == 1) {\n\t\t\t// rstCelo -> stCelo\n\t\t\treturn IRebasedStakedCelo(rebaseAddr).toStakedCelo(amountIn);\n\t\t} else {\n\t\t\t// stCelo -> rstCelo\n\t\t\treturn IRebasedStakedCelo(rebaseAddr).toRebasedStakedCelo(amountIn);\n\t\t}\n\t}\n\n\treceive() external payable {}\n}",
    "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/swappa/PairRStCelo.sol",
    "ast": {
        "absolutePath": "project:/contracts/swappa/PairRStCelo.sol",
        "exportedSymbols": {
            "PairRStCelo": [
                6588
            ]
        },
        "id": 6589,
        "license": "MIT",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 6408,
                "literals": [
                    "solidity",
                    "0.6",
                    ".8"
                ],
                "nodeType": "PragmaDirective",
                "src": "32:22:53"
            },
            {
                "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
                "file": "@openzeppelin/contracts/math/SafeMath.sol",
                "id": 6409,
                "nodeType": "ImportDirective",
                "scope": 6589,
                "sourceUnit": 219,
                "src": "56:51:53",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                "id": 6410,
                "nodeType": "ImportDirective",
                "scope": 6589,
                "sourceUnit": 726,
                "src": "108:55:53",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/stCelo/IRebasedStakedCelo.sol",
                "file": "../interfaces/stCelo/IRebasedStakedCelo.sol",
                "id": 6411,
                "nodeType": "ImportDirective",
                "scope": 6589,
                "sourceUnit": 1766,
                "src": "164:53:53",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/swappa/ISwappaPairV1.sol",
                "file": "./ISwappaPairV1.sol",
                "id": 6412,
                "nodeType": "ImportDirective",
                "scope": 6589,
                "sourceUnit": 5326,
                "src": "218:29:53",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "abstract": false,
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 6413,
                            "name": "ISwappaPairV1",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 5325,
                            "src": "273:13:53",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ISwappaPairV1_$5325",
                                "typeString": "contract ISwappaPairV1"
                            }
                        },
                        "id": 6414,
                        "nodeType": "InheritanceSpecifier",
                        "src": "273:13:53"
                    }
                ],
                "contractDependencies": [
                    5325
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 6588,
                "linearizedBaseContracts": [
                    6588,
                    5325
                ],
                "name": "PairRStCelo",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 6417,
                        "libraryName": {
                            "contractScope": null,
                            "id": 6415,
                            "name": "SafeMath",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 218,
                            "src": "296:8:53",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SafeMath_$218",
                                "typeString": "library SafeMath"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "290:24:53",
                        "typeName": {
                            "id": 6416,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "309:4:53",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "baseFunctions": [
                            5311
                        ],
                        "body": {
                            "id": 6511,
                            "nodeType": "Block",
                            "src": "424:612:53",
                            "statements": [
                                {
                                    "assignments": [
                                        6430,
                                        6432
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6430,
                                            "mutability": "mutable",
                                            "name": "rebaseAddr",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6511,
                                            "src": "429:18:53",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 6429,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "429:7:53",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        {
                                            "constant": false,
                                            "id": 6432,
                                            "mutability": "mutable",
                                            "name": "inputType",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6511,
                                            "src": "449:15:53",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                            },
                                            "typeName": {
                                                "id": 6431,
                                                "name": "uint8",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "449:5:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6436,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6434,
                                                "name": "data",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6425,
                                                "src": "478:4:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                }
                                            ],
                                            "id": 6433,
                                            "name": "parseData",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6540,
                                            "src": "468:9:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$_t_uint8_$",
                                                "typeString": "function (bytes memory) pure returns (address,uint8)"
                                            }
                                        },
                                        "id": 6435,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "468:15:53",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_address_$_t_uint8_$",
                                            "typeString": "tuple(address,uint8)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "428:55:53"
                                },
                                {
                                    "assignments": [
                                        6438
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6438,
                                            "mutability": "mutable",
                                            "name": "inputAmount",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6511,
                                            "src": "487:16:53",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 6437,
                                                "name": "uint",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "487:4:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6448,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6445,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "537:4:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_PairRStCelo_$6588",
                                                            "typeString": "contract PairRStCelo"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_PairRStCelo_$6588",
                                                            "typeString": "contract PairRStCelo"
                                                        }
                                                    ],
                                                    "id": 6444,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "529:7:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 6443,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "529:7:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": null,
                                                            "typeString": null
                                                        }
                                                    }
                                                },
                                                "id": 6446,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "529:13:53",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6440,
                                                        "name": "input",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6419,
                                                        "src": "512:5:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 6439,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 725,
                                                    "src": "506:5:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 6441,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "506:12:53",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$725",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 6442,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "balanceOf",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 325,
                                            "src": "506:22:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) view external returns (uint256)"
                                            }
                                        },
                                        "id": 6447,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "506:37:53",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "487:56:53"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        },
                                        "id": 6451,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 6449,
                                            "name": "inputType",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6432,
                                            "src": "552:9:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 6450,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "565:1:53",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                        },
                                        "src": "552:14:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 6486,
                                        "nodeType": "Block",
                                        "src": "742:144:53",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6474,
                                                                    "name": "rebaseAddr",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6430,
                                                                    "src": "800:10:53",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6475,
                                                                    "name": "inputAmount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6438,
                                                                    "src": "812:11:53",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": null,
                                                                    "arguments": [
                                                                        {
                                                                            "argumentTypes": null,
                                                                            "id": 6471,
                                                                            "name": "input",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6419,
                                                                            "src": "785:5:53",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 6470,
                                                                        "name": "ERC20",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 725,
                                                                        "src": "779:5:53",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                                            "typeString": "type(contract ERC20)"
                                                                        }
                                                                    },
                                                                    "id": 6472,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "779:12:53",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ERC20_$725",
                                                                        "typeString": "contract ERC20"
                                                                    }
                                                                },
                                                                "id": 6473,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "approve",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 385,
                                                                "src": "779:20:53",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                    "typeString": "function (address,uint256) external returns (bool)"
                                                                }
                                                            },
                                                            "id": 6476,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "779:45:53",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        ],
                                                        "id": 6469,
                                                        "name": "require",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [
                                                            -18,
                                                            -18
                                                        ],
                                                        "referencedDeclaration": -18,
                                                        "src": "771:7:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                                            "typeString": "function (bool) pure"
                                                        }
                                                    },
                                                    "id": 6477,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "771:54:53",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 6478,
                                                "nodeType": "ExpressionStatement",
                                                "src": "771:54:53"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6483,
                                                            "name": "inputAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6438,
                                                            "src": "869:11:53",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6480,
                                                                    "name": "rebaseAddr",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6430,
                                                                    "src": "849:10:53",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 6479,
                                                                "name": "IRebasedStakedCelo",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1765,
                                                                "src": "830:18:53",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IRebasedStakedCelo_$1765_$",
                                                                    "typeString": "type(contract IRebasedStakedCelo)"
                                                                }
                                                            },
                                                            "id": 6481,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "830:30:53",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IRebasedStakedCelo_$1765",
                                                                "typeString": "contract IRebasedStakedCelo"
                                                            }
                                                        },
                                                        "id": 6482,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "deposit",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1745,
                                                        "src": "830:38:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                                            "typeString": "function (uint256) external"
                                                        }
                                                    },
                                                    "id": 6484,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "830:51:53",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 6485,
                                                "nodeType": "ExpressionStatement",
                                                "src": "830:51:53"
                                            }
                                        ]
                                    },
                                    "id": 6487,
                                    "nodeType": "IfStatement",
                                    "src": "548:338:53",
                                    "trueBody": {
                                        "id": 6468,
                                        "nodeType": "Block",
                                        "src": "568:168:53",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    6453
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 6453,
                                                        "mutability": "mutable",
                                                        "name": "stCeloAmount",
                                                        "nodeType": "VariableDeclaration",
                                                        "overrides": null,
                                                        "scope": 6468,
                                                        "src": "597:17:53",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 6452,
                                                            "name": "uint",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "597:4:53",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "value": null,
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 6460,
                                                "initialValue": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6458,
                                                            "name": "inputAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6438,
                                                            "src": "661:11:53",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6455,
                                                                    "name": "rebaseAddr",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6430,
                                                                    "src": "636:10:53",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 6454,
                                                                "name": "IRebasedStakedCelo",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1765,
                                                                "src": "617:18:53",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IRebasedStakedCelo_$1765_$",
                                                                    "typeString": "type(contract IRebasedStakedCelo)"
                                                                }
                                                            },
                                                            "id": 6456,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "617:30:53",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IRebasedStakedCelo_$1765",
                                                                "typeString": "contract IRebasedStakedCelo"
                                                            }
                                                        },
                                                        "id": 6457,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "toStakedCelo",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1757,
                                                        "src": "617:43:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 6459,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "617:56:53",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "597:76:53"
                                            },
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6465,
                                                            "name": "stCeloAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6453,
                                                            "src": "718:12:53",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6462,
                                                                    "name": "rebaseAddr",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6430,
                                                                    "src": "697:10:53",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 6461,
                                                                "name": "IRebasedStakedCelo",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1765,
                                                                "src": "678:18:53",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IRebasedStakedCelo_$1765_$",
                                                                    "typeString": "type(contract IRebasedStakedCelo)"
                                                                }
                                                            },
                                                            "id": 6463,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "678:30:53",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IRebasedStakedCelo_$1765",
                                                                "typeString": "contract IRebasedStakedCelo"
                                                            }
                                                        },
                                                        "id": 6464,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "withdraw",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1750,
                                                        "src": "678:39:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                                            "typeString": "function (uint256) external"
                                                        }
                                                    },
                                                    "id": 6466,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "678:53:53",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 6467,
                                                "nodeType": "ExpressionStatement",
                                                "src": "678:53:53"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "assignments": [
                                        6489
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6489,
                                            "mutability": "mutable",
                                            "name": "outputAmount",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6511,
                                            "src": "889:17:53",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 6488,
                                                "name": "uint",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "889:4:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6499,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6496,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "941:4:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_PairRStCelo_$6588",
                                                            "typeString": "contract PairRStCelo"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_PairRStCelo_$6588",
                                                            "typeString": "contract PairRStCelo"
                                                        }
                                                    ],
                                                    "id": 6495,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "933:7:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 6494,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "933:7:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": null,
                                                            "typeString": null
                                                        }
                                                    }
                                                },
                                                "id": 6497,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "933:13:53",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6491,
                                                        "name": "output",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6421,
                                                        "src": "915:6:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 6490,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 725,
                                                    "src": "909:5:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 6492,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "909:13:53",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$725",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 6493,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "balanceOf",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 325,
                                            "src": "909:23:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                "typeString": "function (address) view external returns (uint256)"
                                            }
                                        },
                                        "id": 6498,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "909:38:53",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "889:58:53"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "arguments": [
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6505,
                                                        "name": "to",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6423,
                                                        "src": "982:2:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    {
                                                        "argumentTypes": null,
                                                        "id": 6506,
                                                        "name": "outputAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6489,
                                                        "src": "986:12:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "arguments": [
                                                            {
                                                                "argumentTypes": null,
                                                                "id": 6502,
                                                                "name": "output",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6421,
                                                                "src": "965:6:53",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 6501,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 725,
                                                            "src": "959:5:53",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$725_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 6503,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "959:13:53",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$725",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 6504,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "transfer",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 346,
                                                    "src": "959:22:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                        "typeString": "function (address,uint256) external returns (bool)"
                                                    }
                                                },
                                                "id": 6507,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "959:40:53",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "5061697252537443656c6f3a205472616e73666572204661696c6564",
                                                "id": 6508,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1001:30:53",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_acc4666498293a6328f2840d0eaacf7f679c9015dad9ca1f42dbda036fb37efb",
                                                    "typeString": "literal_string \"PairRStCelo: Transfer Failed\""
                                                },
                                                "value": "PairRStCelo: Transfer Failed"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_acc4666498293a6328f2840d0eaacf7f679c9015dad9ca1f42dbda036fb37efb",
                                                    "typeString": "literal_string \"PairRStCelo: Transfer Failed\""
                                                }
                                            ],
                                            "id": 6500,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "951:7:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6509,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "951:81:53",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6510,
                                    "nodeType": "ExpressionStatement",
                                    "src": "951:81:53"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "32ef8314",
                        "id": 6512,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "swap",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6427,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "415:8:53"
                        },
                        "parameters": {
                            "id": 6426,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6419,
                                    "mutability": "mutable",
                                    "name": "input",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6512,
                                    "src": "334:13:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6418,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "334:7:53",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6421,
                                    "mutability": "mutable",
                                    "name": "output",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6512,
                                    "src": "351:14:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6420,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "351:7:53",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6423,
                                    "mutability": "mutable",
                                    "name": "to",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6512,
                                    "src": "369:10:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6422,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "369:7:53",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6425,
                                    "mutability": "mutable",
                                    "name": "data",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6512,
                                    "src": "383:19:53",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_calldata_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 6424,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "383:5:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "330:75:53"
                        },
                        "returnParameters": {
                            "id": 6428,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "424:0:53"
                        },
                        "scope": 6588,
                        "src": "317:719:53",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6539,
                            "nodeType": "Block",
                            "src": "1136:150:53",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 6525,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "expression": {
                                                        "argumentTypes": null,
                                                        "id": 6522,
                                                        "name": "data",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6514,
                                                        "src": "1148:4:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    },
                                                    "id": 6523,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "length",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": null,
                                                    "src": "1148:11:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "hexValue": "3231",
                                                    "id": 6524,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "1163:2:53",
                                                    "subdenomination": null,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_21_by_1",
                                                        "typeString": "int_const 21"
                                                    },
                                                    "value": "21"
                                                },
                                                "src": "1148:17:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "5061697252537443656c6f3a20696e76616c6964206461746121",
                                                "id": 6526,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1167:28:53",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_c794eda32f8d31b5e0ec6d6ba2e910e8881fc43fc170ad4f69bb443c531119fb",
                                                    "typeString": "literal_string \"PairRStCelo: invalid data!\""
                                                },
                                                "value": "PairRStCelo: invalid data!"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_c794eda32f8d31b5e0ec6d6ba2e910e8881fc43fc170ad4f69bb443c531119fb",
                                                    "typeString": "literal_string \"PairRStCelo: invalid data!\""
                                                }
                                            ],
                                            "id": 6521,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "1140:7:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6527,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1140:56:53",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6528,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1140:56:53"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "id": 6536,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "argumentTypes": null,
                                            "id": 6529,
                                            "name": "inputType",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6519,
                                            "src": "1200:9:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "argumentTypes": null,
                                            "arguments": [
                                                {
                                                    "argumentTypes": null,
                                                    "baseExpression": {
                                                        "argumentTypes": null,
                                                        "id": 6532,
                                                        "name": "data",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6514,
                                                        "src": "1218:4:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes_memory_ptr",
                                                            "typeString": "bytes memory"
                                                        }
                                                    },
                                                    "id": 6534,
                                                    "indexExpression": {
                                                        "argumentTypes": null,
                                                        "hexValue": "3230",
                                                        "id": 6533,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "1223:2:53",
                                                        "subdenomination": null,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_20_by_1",
                                                            "typeString": "int_const 20"
                                                        },
                                                        "value": "20"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "1218:8:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes1",
                                                        "typeString": "bytes1"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes1",
                                                        "typeString": "bytes1"
                                                    }
                                                ],
                                                "id": 6531,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "1212:5:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_uint8_$",
                                                    "typeString": "type(uint8)"
                                                },
                                                "typeName": {
                                                    "id": 6530,
                                                    "name": "uint8",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "1212:5:53",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": null,
                                                        "typeString": null
                                                    }
                                                }
                                            },
                                            "id": 6535,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "1212:15:53",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                            }
                                        },
                                        "src": "1200:27:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "id": 6537,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1200:27:53"
                                },
                                {
                                    "AST": {
                                        "nodeType": "YulBlock",
                                        "src": "1240:43:53",
                                        "statements": [
                                            {
                                                "nodeType": "YulAssignment",
                                                "src": "1245:34:53",
                                                "value": {
                                                    "arguments": [
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "name": "data",
                                                                    "nodeType": "YulIdentifier",
                                                                    "src": "1269:4:53"
                                                                },
                                                                {
                                                                    "kind": "number",
                                                                    "nodeType": "YulLiteral",
                                                                    "src": "1275:2:53",
                                                                    "type": "",
                                                                    "value": "20"
                                                                }
                                                            ],
                                                            "functionName": {
                                                                "name": "add",
                                                                "nodeType": "YulIdentifier",
                                                                "src": "1265:3:53"
                                                            },
                                                            "nodeType": "YulFunctionCall",
                                                            "src": "1265:13:53"
                                                        }
                                                    ],
                                                    "functionName": {
                                                        "name": "mload",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "1259:5:53"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "1259:20:53"
                                                },
                                                "variableNames": [
                                                    {
                                                        "name": "rebaseAddr",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "1245:10:53"
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "evmVersion": "istanbul",
                                    "externalReferences": [
                                        {
                                            "declaration": 6514,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "1269:4:53",
                                            "valueSize": 1
                                        },
                                        {
                                            "declaration": 6517,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "1245:10:53",
                                            "valueSize": 1
                                        }
                                    ],
                                    "id": 6538,
                                    "nodeType": "InlineAssembly",
                                    "src": "1231:52:53"
                                }
                            ]
                        },
                        "documentation": null,
                        "id": 6540,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "parseData",
                        "nodeType": "FunctionDefinition",
                        "overrides": null,
                        "parameters": {
                            "id": 6515,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6514,
                                    "mutability": "mutable",
                                    "name": "data",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6540,
                                    "src": "1058:17:53",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 6513,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1058:5:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1057:19:53"
                        },
                        "returnParameters": {
                            "id": 6520,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6517,
                                    "mutability": "mutable",
                                    "name": "rebaseAddr",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6540,
                                    "src": "1099:18:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6516,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1099:7:53",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6519,
                                    "mutability": "mutable",
                                    "name": "inputType",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6540,
                                    "src": "1119:15:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                    },
                                    "typeName": {
                                        "id": 6518,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1119:5:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1098:37:53"
                        },
                        "scope": 6588,
                        "src": "1039:247:53",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            5324
                        ],
                        "body": {
                            "id": 6582,
                            "nodeType": "Block",
                            "src": "1422:287:53",
                            "statements": [
                                {
                                    "assignments": [
                                        6555,
                                        6557
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6555,
                                            "mutability": "mutable",
                                            "name": "rebaseAddr",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6582,
                                            "src": "1427:18:53",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 6554,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1427:7:53",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        {
                                            "constant": false,
                                            "id": 6557,
                                            "mutability": "mutable",
                                            "name": "inputType",
                                            "nodeType": "VariableDeclaration",
                                            "overrides": null,
                                            "scope": 6582,
                                            "src": "1447:15:53",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                            },
                                            "typeName": {
                                                "id": 6556,
                                                "name": "uint8",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1447:5:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint8",
                                                    "typeString": "uint8"
                                                }
                                            },
                                            "value": null,
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6561,
                                    "initialValue": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6559,
                                                "name": "data",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6548,
                                                "src": "1476:4:53",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                    "typeString": "bytes calldata"
                                                }
                                            ],
                                            "id": 6558,
                                            "name": "parseData",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6540,
                                            "src": "1466:9:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$_t_uint8_$",
                                                "typeString": "function (bytes memory) pure returns (address,uint8)"
                                            }
                                        },
                                        "id": 6560,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1466:15:53",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_address_$_t_uint8_$",
                                            "typeString": "tuple(address,uint8)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1426:55:53"
                                },
                                {
                                    "condition": {
                                        "argumentTypes": null,
                                        "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        },
                                        "id": 6564,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 6562,
                                            "name": "inputType",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6557,
                                            "src": "1489:9:53",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint8",
                                                "typeString": "uint8"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 6563,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "1502:1:53",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_1_by_1",
                                                "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                        },
                                        "src": "1489:14:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 6580,
                                        "nodeType": "Block",
                                        "src": "1605:101:53",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6577,
                                                            "name": "amountIn",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6546,
                                                            "src": "1692:8:53",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6574,
                                                                    "name": "rebaseAddr",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6555,
                                                                    "src": "1660:10:53",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 6573,
                                                                "name": "IRebasedStakedCelo",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1765,
                                                                "src": "1641:18:53",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IRebasedStakedCelo_$1765_$",
                                                                    "typeString": "type(contract IRebasedStakedCelo)"
                                                                }
                                                            },
                                                            "id": 6575,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "1641:30:53",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IRebasedStakedCelo_$1765",
                                                                "typeString": "contract IRebasedStakedCelo"
                                                            }
                                                        },
                                                        "id": 6576,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "toRebasedStakedCelo",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1764,
                                                        "src": "1641:50:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 6578,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1641:60:53",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "functionReturnParameters": 6553,
                                                "id": 6579,
                                                "nodeType": "Return",
                                                "src": "1634:67:53"
                                            }
                                        ]
                                    },
                                    "id": 6581,
                                    "nodeType": "IfStatement",
                                    "src": "1485:221:53",
                                    "trueBody": {
                                        "id": 6572,
                                        "nodeType": "Block",
                                        "src": "1505:94:53",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "id": 6569,
                                                            "name": "amountIn",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6546,
                                                            "src": "1585:8:53",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": null,
                                                            "arguments": [
                                                                {
                                                                    "argumentTypes": null,
                                                                    "id": 6566,
                                                                    "name": "rebaseAddr",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6555,
                                                                    "src": "1560:10:53",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 6565,
                                                                "name": "IRebasedStakedCelo",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 1765,
                                                                "src": "1541:18:53",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IRebasedStakedCelo_$1765_$",
                                                                    "typeString": "type(contract IRebasedStakedCelo)"
                                                                }
                                                            },
                                                            "id": 6567,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "1541:30:53",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IRebasedStakedCelo_$1765",
                                                                "typeString": "contract IRebasedStakedCelo"
                                                            }
                                                        },
                                                        "id": 6568,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "toStakedCelo",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 1757,
                                                        "src": "1541:43:53",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256) view external returns (uint256)"
                                                        }
                                                    },
                                                    "id": 6570,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1541:53:53",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "functionReturnParameters": 6553,
                                                "id": 6571,
                                                "nodeType": "Return",
                                                "src": "1534:60:53"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "7eace892",
                        "id": 6583,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getOutputAmount",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6550,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "1388:8:53"
                        },
                        "parameters": {
                            "id": 6549,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6542,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6583,
                                    "src": "1317:7:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6541,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1317:7:53",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6544,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6583,
                                    "src": "1328:7:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6543,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1328:7:53",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6546,
                                    "mutability": "mutable",
                                    "name": "amountIn",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6583,
                                    "src": "1339:13:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6545,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1339:4:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6548,
                                    "mutability": "mutable",
                                    "name": "data",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6583,
                                    "src": "1356:19:53",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_calldata_ptr",
                                        "typeString": "bytes"
                                    },
                                    "typeName": {
                                        "id": 6547,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1356:5:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_storage_ptr",
                                            "typeString": "bytes"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1313:65:53"
                        },
                        "returnParameters": {
                            "id": 6553,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6552,
                                    "mutability": "mutable",
                                    "name": "amountOut",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6583,
                                    "src": "1406:14:53",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6551,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1406:4:53",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1405:16:53"
                        },
                        "scope": 6588,
                        "src": "1289:420:53",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 6586,
                            "nodeType": "Block",
                            "src": "1739:2:53",
                            "statements": []
                        },
                        "documentation": null,
                        "id": 6587,
                        "implemented": true,
                        "kind": "receive",
                        "modifiers": [],
                        "name": "",
                        "nodeType": "FunctionDefinition",
                        "overrides": null,
                        "parameters": {
                            "id": 6584,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1719:2:53"
                        },
                        "returnParameters": {
                            "id": 6585,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1739:0:53"
                        },
                        "scope": 6588,
                        "src": "1712:29:53",
                        "stateMutability": "payable",
                        "virtual": false,
                        "visibility": "external"
                    }
                ],
                "scope": 6589,
                "src": "249:1494:53"
            }
        ],
        "src": "32:1711:53"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/swappa/PairRStCelo.sol",
            "exportedSymbols": {
                "PairRStCelo": [
                    6588
                ]
            },
            "license": "MIT"
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.6",
                        ".8"
                    ]
                },
                "id": 6408,
                "name": "PragmaDirective",
                "src": "32:22:53"
            },
            {
                "attributes": {
                    "SourceUnit": 219,
                    "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
                    "file": "@openzeppelin/contracts/math/SafeMath.sol",
                    "scope": 6589,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6409,
                "name": "ImportDirective",
                "src": "56:51:53"
            },
            {
                "attributes": {
                    "SourceUnit": 726,
                    "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                    "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
                    "scope": 6589,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6410,
                "name": "ImportDirective",
                "src": "108:55:53"
            },
            {
                "attributes": {
                    "SourceUnit": 1766,
                    "absolutePath": "project:/contracts/interfaces/stCelo/IRebasedStakedCelo.sol",
                    "file": "../interfaces/stCelo/IRebasedStakedCelo.sol",
                    "scope": 6589,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6411,
                "name": "ImportDirective",
                "src": "164:53:53"
            },
            {
                "attributes": {
                    "SourceUnit": 5326,
                    "absolutePath": "project:/contracts/swappa/ISwappaPairV1.sol",
                    "file": "./ISwappaPairV1.sol",
                    "scope": 6589,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6412,
                "name": "ImportDirective",
                "src": "218:29:53"
            },
            {
                "attributes": {
                    "abstract": false,
                    "contractDependencies": [
                        5325
                    ],
                    "contractKind": "contract",
                    "documentation": null,
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        6588,
                        5325
                    ],
                    "name": "PairRStCelo",
                    "scope": 6589
                },
                "children": [
                    {
                        "attributes": {
                            "arguments": null
                        },
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "ISwappaPairV1",
                                    "referencedDeclaration": 5325,
                                    "type": "contract ISwappaPairV1"
                                },
                                "id": 6413,
                                "name": "UserDefinedTypeName",
                                "src": "273:13:53"
                            }
                        ],
                        "id": 6414,
                        "name": "InheritanceSpecifier",
                        "src": "273:13:53"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "contractScope": null,
                                    "name": "SafeMath",
                                    "referencedDeclaration": 218,
                                    "type": "library SafeMath"
                                },
                                "id": 6415,
                                "name": "UserDefinedTypeName",
                                "src": "296:8:53"
                            },
                            {
                                "attributes": {
                                    "name": "uint",
                                    "type": "uint256"
                                },
                                "id": 6416,
                                "name": "ElementaryTypeName",
                                "src": "309:4:53"
                            }
                        ],
                        "id": 6417,
                        "name": "UsingForDirective",
                        "src": "290:24:53"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                5311
                            ],
                            "documentation": null,
                            "functionSelector": "32ef8314",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "swap",
                            "scope": 6588,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 6427,
                                "name": "OverrideSpecifier",
                                "src": "415:8:53"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "input",
                                            "overrides": null,
                                            "scope": 6512,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6418,
                                                "name": "ElementaryTypeName",
                                                "src": "334:7:53"
                                            }
                                        ],
                                        "id": 6419,
                                        "name": "VariableDeclaration",
                                        "src": "334:13:53"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "output",
                                            "overrides": null,
                                            "scope": 6512,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6420,
                                                "name": "ElementaryTypeName",
                                                "src": "351:7:53"
                                            }
                                        ],
                                        "id": 6421,
                                        "name": "VariableDeclaration",
                                        "src": "351:14:53"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "to",
                                            "overrides": null,
                                            "scope": 6512,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6422,
                                                "name": "ElementaryTypeName",
                                                "src": "369:7:53"
                                            }
                                        ],
                                        "id": 6423,
                                        "name": "VariableDeclaration",
                                        "src": "369:10:53"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "data",
                                            "overrides": null,
                                            "scope": 6512,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 6424,
                                                "name": "ElementaryTypeName",
                                                "src": "383:5:53"
                                            }
                                        ],
                                        "id": 6425,
                                        "name": "VariableDeclaration",
                                        "src": "383:19:53"
                                    }
                                ],
                                "id": 6426,
                                "name": "ParameterList",
                                "src": "330:75:53"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6428,
                                "name": "ParameterList",
                                "src": "424:0:53"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6430,
                                                6432
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "rebaseAddr",
                                                    "overrides": null,
                                                    "scope": 6511,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 6429,
                                                        "name": "ElementaryTypeName",
                                                        "src": "429:7:53"
                                                    }
                                                ],
                                                "id": 6430,
                                                "name": "VariableDeclaration",
                                                "src": "429:18:53"
                                            },
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "inputType",
                                                    "overrides": null,
                                                    "scope": 6511,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint8",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint8",
                                                            "type": "uint8"
                                                        },
                                                        "id": 6431,
                                                        "name": "ElementaryTypeName",
                                                        "src": "449:5:53"
                                                    }
                                                ],
                                                "id": 6432,
                                                "name": "VariableDeclaration",
                                                "src": "449:15:53"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(address,uint8)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                                    "typeString": "bytes calldata"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6540,
                                                            "type": "function (bytes memory) pure returns (address,uint8)",
                                                            "value": "parseData"
                                                        },
                                                        "id": 6433,
                                                        "name": "Identifier",
                                                        "src": "468:9:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6425,
                                                            "type": "bytes calldata",
                                                            "value": "data"
                                                        },
                                                        "id": 6434,
                                                        "name": "Identifier",
                                                        "src": "478:4:53"
                                                    }
                                                ],
                                                "id": 6435,
                                                "name": "FunctionCall",
                                                "src": "468:15:53"
                                            }
                                        ],
                                        "id": 6436,
                                        "name": "VariableDeclarationStatement",
                                        "src": "428:55:53"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6438
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "inputAmount",
                                                    "overrides": null,
                                                    "scope": 6511,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint",
                                                            "type": "uint256"
                                                        },
                                                        "id": 6437,
                                                        "name": "ElementaryTypeName",
                                                        "src": "487:4:53"
                                                    }
                                                ],
                                                "id": 6438,
                                                "name": "VariableDeclaration",
                                                "src": "487:16:53"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "balanceOf",
                                                            "referencedDeclaration": 325,
                                                            "type": "function (address) view external returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 725,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 6439,
                                                                        "name": "Identifier",
                                                                        "src": "506:5:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6419,
                                                                            "type": "address",
                                                                            "value": "input"
                                                                        },
                                                                        "id": 6440,
                                                                        "name": "Identifier",
                                                                        "src": "512:5:53"
                                                                    }
                                                                ],
                                                                "id": 6441,
                                                                "name": "FunctionCall",
                                                                "src": "506:12:53"
                                                            }
                                                        ],
                                                        "id": 6442,
                                                        "name": "MemberAccess",
                                                        "src": "506:22:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PairRStCelo_$6588",
                                                                            "typeString": "contract PairRStCelo"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "type": null
                                                                        },
                                                                        "id": 6443,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "529:7:53"
                                                                    }
                                                                ],
                                                                "id": 6444,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "529:7:53"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract PairRStCelo",
                                                                    "value": "this"
                                                                },
                                                                "id": 6445,
                                                                "name": "Identifier",
                                                                "src": "537:4:53"
                                                            }
                                                        ],
                                                        "id": 6446,
                                                        "name": "FunctionCall",
                                                        "src": "529:13:53"
                                                    }
                                                ],
                                                "id": 6447,
                                                "name": "FunctionCall",
                                                "src": "506:37:53"
                                            }
                                        ],
                                        "id": 6448,
                                        "name": "VariableDeclarationStatement",
                                        "src": "487:56:53"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint8",
                                                        "typeString": "uint8"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6432,
                                                            "type": "uint8",
                                                            "value": "inputType"
                                                        },
                                                        "id": 6449,
                                                        "name": "Identifier",
                                                        "src": "552:9:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "31",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 1",
                                                            "value": "1"
                                                        },
                                                        "id": 6450,
                                                        "name": "Literal",
                                                        "src": "565:1:53"
                                                    }
                                                ],
                                                "id": 6451,
                                                "name": "BinaryOperation",
                                                "src": "552:14:53"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                6453
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "stCeloAmount",
                                                                    "overrides": null,
                                                                    "scope": 6468,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "uint256",
                                                                    "value": null,
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 6452,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "597:4:53"
                                                                    }
                                                                ],
                                                                "id": 6453,
                                                                "name": "VariableDeclaration",
                                                                "src": "597:17:53"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "toStakedCelo",
                                                                            "referencedDeclaration": 1757,
                                                                            "type": "function (uint256) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IRebasedStakedCelo",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1765,
                                                                                            "type": "type(contract IRebasedStakedCelo)",
                                                                                            "value": "IRebasedStakedCelo"
                                                                                        },
                                                                                        "id": 6454,
                                                                                        "name": "Identifier",
                                                                                        "src": "617:18:53"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6430,
                                                                                            "type": "address",
                                                                                            "value": "rebaseAddr"
                                                                                        },
                                                                                        "id": 6455,
                                                                                        "name": "Identifier",
                                                                                        "src": "636:10:53"
                                                                                    }
                                                                                ],
                                                                                "id": 6456,
                                                                                "name": "FunctionCall",
                                                                                "src": "617:30:53"
                                                                            }
                                                                        ],
                                                                        "id": 6457,
                                                                        "name": "MemberAccess",
                                                                        "src": "617:43:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6438,
                                                                            "type": "uint256",
                                                                            "value": "inputAmount"
                                                                        },
                                                                        "id": 6458,
                                                                        "name": "Identifier",
                                                                        "src": "661:11:53"
                                                                    }
                                                                ],
                                                                "id": 6459,
                                                                "name": "FunctionCall",
                                                                "src": "617:56:53"
                                                            }
                                                        ],
                                                        "id": 6460,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "597:76:53"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "withdraw",
                                                                            "referencedDeclaration": 1750,
                                                                            "type": "function (uint256) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IRebasedStakedCelo",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1765,
                                                                                            "type": "type(contract IRebasedStakedCelo)",
                                                                                            "value": "IRebasedStakedCelo"
                                                                                        },
                                                                                        "id": 6461,
                                                                                        "name": "Identifier",
                                                                                        "src": "678:18:53"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6430,
                                                                                            "type": "address",
                                                                                            "value": "rebaseAddr"
                                                                                        },
                                                                                        "id": 6462,
                                                                                        "name": "Identifier",
                                                                                        "src": "697:10:53"
                                                                                    }
                                                                                ],
                                                                                "id": 6463,
                                                                                "name": "FunctionCall",
                                                                                "src": "678:30:53"
                                                                            }
                                                                        ],
                                                                        "id": 6464,
                                                                        "name": "MemberAccess",
                                                                        "src": "678:39:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6453,
                                                                            "type": "uint256",
                                                                            "value": "stCeloAmount"
                                                                        },
                                                                        "id": 6465,
                                                                        "name": "Identifier",
                                                                        "src": "718:12:53"
                                                                    }
                                                                ],
                                                                "id": 6466,
                                                                "name": "FunctionCall",
                                                                "src": "678:53:53"
                                                            }
                                                        ],
                                                        "id": 6467,
                                                        "name": "ExpressionStatement",
                                                        "src": "678:53:53"
                                                    }
                                                ],
                                                "id": 6468,
                                                "name": "Block",
                                                "src": "568:168:53"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                -18,
                                                                                -18
                                                                            ],
                                                                            "referencedDeclaration": -18,
                                                                            "type": "function (bool) pure",
                                                                            "value": "require"
                                                                        },
                                                                        "id": 6469,
                                                                        "name": "Identifier",
                                                                        "src": "771:7:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "approve",
                                                                                    "referencedDeclaration": 385,
                                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract ERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 725,
                                                                                                    "type": "type(contract ERC20)",
                                                                                                    "value": "ERC20"
                                                                                                },
                                                                                                "id": 6470,
                                                                                                "name": "Identifier",
                                                                                                "src": "779:5:53"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": null,
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6419,
                                                                                                    "type": "address",
                                                                                                    "value": "input"
                                                                                                },
                                                                                                "id": 6471,
                                                                                                "name": "Identifier",
                                                                                                "src": "785:5:53"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6472,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "779:12:53"
                                                                                    }
                                                                                ],
                                                                                "id": 6473,
                                                                                "name": "MemberAccess",
                                                                                "src": "779:20:53"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6430,
                                                                                    "type": "address",
                                                                                    "value": "rebaseAddr"
                                                                                },
                                                                                "id": 6474,
                                                                                "name": "Identifier",
                                                                                "src": "800:10:53"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6438,
                                                                                    "type": "uint256",
                                                                                    "value": "inputAmount"
                                                                                },
                                                                                "id": 6475,
                                                                                "name": "Identifier",
                                                                                "src": "812:11:53"
                                                                            }
                                                                        ],
                                                                        "id": 6476,
                                                                        "name": "FunctionCall",
                                                                        "src": "779:45:53"
                                                                    }
                                                                ],
                                                                "id": 6477,
                                                                "name": "FunctionCall",
                                                                "src": "771:54:53"
                                                            }
                                                        ],
                                                        "id": 6478,
                                                        "name": "ExpressionStatement",
                                                        "src": "771:54:53"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "deposit",
                                                                            "referencedDeclaration": 1745,
                                                                            "type": "function (uint256) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IRebasedStakedCelo",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1765,
                                                                                            "type": "type(contract IRebasedStakedCelo)",
                                                                                            "value": "IRebasedStakedCelo"
                                                                                        },
                                                                                        "id": 6479,
                                                                                        "name": "Identifier",
                                                                                        "src": "830:18:53"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6430,
                                                                                            "type": "address",
                                                                                            "value": "rebaseAddr"
                                                                                        },
                                                                                        "id": 6480,
                                                                                        "name": "Identifier",
                                                                                        "src": "849:10:53"
                                                                                    }
                                                                                ],
                                                                                "id": 6481,
                                                                                "name": "FunctionCall",
                                                                                "src": "830:30:53"
                                                                            }
                                                                        ],
                                                                        "id": 6482,
                                                                        "name": "MemberAccess",
                                                                        "src": "830:38:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6438,
                                                                            "type": "uint256",
                                                                            "value": "inputAmount"
                                                                        },
                                                                        "id": 6483,
                                                                        "name": "Identifier",
                                                                        "src": "869:11:53"
                                                                    }
                                                                ],
                                                                "id": 6484,
                                                                "name": "FunctionCall",
                                                                "src": "830:51:53"
                                                            }
                                                        ],
                                                        "id": 6485,
                                                        "name": "ExpressionStatement",
                                                        "src": "830:51:53"
                                                    }
                                                ],
                                                "id": 6486,
                                                "name": "Block",
                                                "src": "742:144:53"
                                            }
                                        ],
                                        "id": 6487,
                                        "name": "IfStatement",
                                        "src": "548:338:53"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6489
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "outputAmount",
                                                    "overrides": null,
                                                    "scope": 6511,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint",
                                                            "type": "uint256"
                                                        },
                                                        "id": 6488,
                                                        "name": "ElementaryTypeName",
                                                        "src": "889:4:53"
                                                    }
                                                ],
                                                "id": 6489,
                                                "name": "VariableDeclaration",
                                                "src": "889:17:53"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "balanceOf",
                                                            "referencedDeclaration": 325,
                                                            "type": "function (address) view external returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 725,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 6490,
                                                                        "name": "Identifier",
                                                                        "src": "909:5:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6421,
                                                                            "type": "address",
                                                                            "value": "output"
                                                                        },
                                                                        "id": 6491,
                                                                        "name": "Identifier",
                                                                        "src": "915:6:53"
                                                                    }
                                                                ],
                                                                "id": 6492,
                                                                "name": "FunctionCall",
                                                                "src": "909:13:53"
                                                            }
                                                        ],
                                                        "id": 6493,
                                                        "name": "MemberAccess",
                                                        "src": "909:23:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PairRStCelo_$6588",
                                                                            "typeString": "contract PairRStCelo"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "type": null
                                                                        },
                                                                        "id": 6494,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "933:7:53"
                                                                    }
                                                                ],
                                                                "id": 6495,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "933:7:53"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract PairRStCelo",
                                                                    "value": "this"
                                                                },
                                                                "id": 6496,
                                                                "name": "Identifier",
                                                                "src": "941:4:53"
                                                            }
                                                        ],
                                                        "id": 6497,
                                                        "name": "FunctionCall",
                                                        "src": "933:13:53"
                                                    }
                                                ],
                                                "id": 6498,
                                                "name": "FunctionCall",
                                                "src": "909:38:53"
                                            }
                                        ],
                                        "id": 6499,
                                        "name": "VariableDeclarationStatement",
                                        "src": "889:58:53"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_acc4666498293a6328f2840d0eaacf7f679c9015dad9ca1f42dbda036fb37efb",
                                                                    "typeString": "literal_string \"PairRStCelo: Transfer Failed\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6500,
                                                        "name": "Identifier",
                                                        "src": "951:7:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bool",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "transfer",
                                                                    "referencedDeclaration": 346,
                                                                    "type": "function (address,uint256) external returns (bool)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract ERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 725,
                                                                                    "type": "type(contract ERC20)",
                                                                                    "value": "ERC20"
                                                                                },
                                                                                "id": 6501,
                                                                                "name": "Identifier",
                                                                                "src": "959:5:53"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6421,
                                                                                    "type": "address",
                                                                                    "value": "output"
                                                                                },
                                                                                "id": 6502,
                                                                                "name": "Identifier",
                                                                                "src": "965:6:53"
                                                                            }
                                                                        ],
                                                                        "id": 6503,
                                                                        "name": "FunctionCall",
                                                                        "src": "959:13:53"
                                                                    }
                                                                ],
                                                                "id": 6504,
                                                                "name": "MemberAccess",
                                                                "src": "959:22:53"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6423,
                                                                    "type": "address",
                                                                    "value": "to"
                                                                },
                                                                "id": 6505,
                                                                "name": "Identifier",
                                                                "src": "982:2:53"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6489,
                                                                    "type": "uint256",
                                                                    "value": "outputAmount"
                                                                },
                                                                "id": 6506,
                                                                "name": "Identifier",
                                                                "src": "986:12:53"
                                                            }
                                                        ],
                                                        "id": 6507,
                                                        "name": "FunctionCall",
                                                        "src": "959:40:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "5061697252537443656c6f3a205472616e73666572204661696c6564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"PairRStCelo: Transfer Failed\"",
                                                            "value": "PairRStCelo: Transfer Failed"
                                                        },
                                                        "id": 6508,
                                                        "name": "Literal",
                                                        "src": "1001:30:53"
                                                    }
                                                ],
                                                "id": 6509,
                                                "name": "FunctionCall",
                                                "src": "951:81:53"
                                            }
                                        ],
                                        "id": 6510,
                                        "name": "ExpressionStatement",
                                        "src": "951:81:53"
                                    }
                                ],
                                "id": 6511,
                                "name": "Block",
                                "src": "424:612:53"
                            }
                        ],
                        "id": 6512,
                        "name": "FunctionDefinition",
                        "src": "317:719:53"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "parseData",
                            "overrides": null,
                            "scope": 6588,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "data",
                                            "overrides": null,
                                            "scope": 6540,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "bytes",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 6513,
                                                "name": "ElementaryTypeName",
                                                "src": "1058:5:53"
                                            }
                                        ],
                                        "id": 6514,
                                        "name": "VariableDeclaration",
                                        "src": "1058:17:53"
                                    }
                                ],
                                "id": 6515,
                                "name": "ParameterList",
                                "src": "1057:19:53"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "rebaseAddr",
                                            "overrides": null,
                                            "scope": 6540,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6516,
                                                "name": "ElementaryTypeName",
                                                "src": "1099:7:53"
                                            }
                                        ],
                                        "id": 6517,
                                        "name": "VariableDeclaration",
                                        "src": "1099:18:53"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "inputType",
                                            "overrides": null,
                                            "scope": 6540,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint8",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint8",
                                                    "type": "uint8"
                                                },
                                                "id": 6518,
                                                "name": "ElementaryTypeName",
                                                "src": "1119:5:53"
                                            }
                                        ],
                                        "id": 6519,
                                        "name": "VariableDeclaration",
                                        "src": "1119:15:53"
                                    }
                                ],
                                "id": 6520,
                                "name": "ParameterList",
                                "src": "1098:37:53"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_c794eda32f8d31b5e0ec6d6ba2e910e8881fc43fc170ad4f69bb443c531119fb",
                                                                    "typeString": "literal_string \"PairRStCelo: invalid data!\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6521,
                                                        "name": "Identifier",
                                                        "src": "1140:7:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "length",
                                                                    "referencedDeclaration": null,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6514,
                                                                            "type": "bytes memory",
                                                                            "value": "data"
                                                                        },
                                                                        "id": 6522,
                                                                        "name": "Identifier",
                                                                        "src": "1148:4:53"
                                                                    }
                                                                ],
                                                                "id": 6523,
                                                                "name": "MemberAccess",
                                                                "src": "1148:11:53"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "hexvalue": "3231",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "subdenomination": null,
                                                                    "token": "number",
                                                                    "type": "int_const 21",
                                                                    "value": "21"
                                                                },
                                                                "id": 6524,
                                                                "name": "Literal",
                                                                "src": "1163:2:53"
                                                            }
                                                        ],
                                                        "id": 6525,
                                                        "name": "BinaryOperation",
                                                        "src": "1148:17:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "5061697252537443656c6f3a20696e76616c6964206461746121",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "string",
                                                            "type": "literal_string \"PairRStCelo: invalid data!\"",
                                                            "value": "PairRStCelo: invalid data!"
                                                        },
                                                        "id": 6526,
                                                        "name": "Literal",
                                                        "src": "1167:28:53"
                                                    }
                                                ],
                                                "id": 6527,
                                                "name": "FunctionCall",
                                                "src": "1140:56:53"
                                            }
                                        ],
                                        "id": 6528,
                                        "name": "ExpressionStatement",
                                        "src": "1140:56:53"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint8"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6519,
                                                            "type": "uint8",
                                                            "value": "inputType"
                                                        },
                                                        "id": 6529,
                                                        "name": "Identifier",
                                                        "src": "1200:9:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint8",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes1",
                                                                            "typeString": "bytes1"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(uint8)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint8",
                                                                            "type": null
                                                                        },
                                                                        "id": 6530,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "1212:5:53"
                                                                    }
                                                                ],
                                                                "id": 6531,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "1212:5:53"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "bytes1"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6514,
                                                                            "type": "bytes memory",
                                                                            "value": "data"
                                                                        },
                                                                        "id": 6532,
                                                                        "name": "Identifier",
                                                                        "src": "1218:4:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "hexvalue": "3230",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "subdenomination": null,
                                                                            "token": "number",
                                                                            "type": "int_const 20",
                                                                            "value": "20"
                                                                        },
                                                                        "id": 6533,
                                                                        "name": "Literal",
                                                                        "src": "1223:2:53"
                                                                    }
                                                                ],
                                                                "id": 6534,
                                                                "name": "IndexAccess",
                                                                "src": "1218:8:53"
                                                            }
                                                        ],
                                                        "id": 6535,
                                                        "name": "FunctionCall",
                                                        "src": "1212:15:53"
                                                    }
                                                ],
                                                "id": 6536,
                                                "name": "Assignment",
                                                "src": "1200:27:53"
                                            }
                                        ],
                                        "id": 6537,
                                        "name": "ExpressionStatement",
                                        "src": "1200:27:53"
                                    },
                                    {
                                        "attributes": {
                                            "evmVersion": "istanbul",
                                            "externalReferences": [
                                                {
                                                    "declaration": 6514,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "1269:4:53",
                                                    "valueSize": 1
                                                },
                                                {
                                                    "declaration": 6517,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "1245:10:53",
                                                    "valueSize": 1
                                                }
                                            ],
                                            "operations": "{\n    rebaseAddr := mload(add(data, 20))\n}"
                                        },
                                        "children": [],
                                        "id": 6538,
                                        "name": "InlineAssembly",
                                        "src": "1231:52:53"
                                    }
                                ],
                                "id": 6539,
                                "name": "Block",
                                "src": "1136:150:53"
                            }
                        ],
                        "id": 6540,
                        "name": "FunctionDefinition",
                        "src": "1039:247:53"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                5324
                            ],
                            "documentation": null,
                            "functionSelector": "7eace892",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getOutputAmount",
                            "scope": 6588,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 6550,
                                "name": "OverrideSpecifier",
                                "src": "1388:8:53"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "overrides": null,
                                            "scope": 6583,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6541,
                                                "name": "ElementaryTypeName",
                                                "src": "1317:7:53"
                                            }
                                        ],
                                        "id": 6542,
                                        "name": "VariableDeclaration",
                                        "src": "1317:7:53"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "overrides": null,
                                            "scope": 6583,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6543,
                                                "name": "ElementaryTypeName",
                                                "src": "1328:7:53"
                                            }
                                        ],
                                        "id": 6544,
                                        "name": "VariableDeclaration",
                                        "src": "1328:7:53"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amountIn",
                                            "overrides": null,
                                            "scope": 6583,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 6545,
                                                "name": "ElementaryTypeName",
                                                "src": "1339:4:53"
                                            }
                                        ],
                                        "id": 6546,
                                        "name": "VariableDeclaration",
                                        "src": "1339:13:53"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "data",
                                            "overrides": null,
                                            "scope": 6583,
                                            "stateVariable": false,
                                            "storageLocation": "calldata",
                                            "type": "bytes",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes",
                                                    "type": "bytes"
                                                },
                                                "id": 6547,
                                                "name": "ElementaryTypeName",
                                                "src": "1356:5:53"
                                            }
                                        ],
                                        "id": 6548,
                                        "name": "VariableDeclaration",
                                        "src": "1356:19:53"
                                    }
                                ],
                                "id": 6549,
                                "name": "ParameterList",
                                "src": "1313:65:53"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amountOut",
                                            "overrides": null,
                                            "scope": 6583,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "value": null,
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 6551,
                                                "name": "ElementaryTypeName",
                                                "src": "1406:4:53"
                                            }
                                        ],
                                        "id": 6552,
                                        "name": "VariableDeclaration",
                                        "src": "1406:14:53"
                                    }
                                ],
                                "id": 6553,
                                "name": "ParameterList",
                                "src": "1405:16:53"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6555,
                                                6557
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "rebaseAddr",
                                                    "overrides": null,
                                                    "scope": 6582,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 6554,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1427:7:53"
                                                    }
                                                ],
                                                "id": 6555,
                                                "name": "VariableDeclaration",
                                                "src": "1427:18:53"
                                            },
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "inputType",
                                                    "overrides": null,
                                                    "scope": 6582,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint8",
                                                    "value": null,
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint8",
                                                            "type": "uint8"
                                                        },
                                                        "id": 6556,
                                                        "name": "ElementaryTypeName",
                                                        "src": "1447:5:53"
                                                    }
                                                ],
                                                "id": 6557,
                                                "name": "VariableDeclaration",
                                                "src": "1447:15:53"
                                            },
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(address,uint8)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes_calldata_ptr",
                                                                    "typeString": "bytes calldata"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6540,
                                                            "type": "function (bytes memory) pure returns (address,uint8)",
                                                            "value": "parseData"
                                                        },
                                                        "id": 6558,
                                                        "name": "Identifier",
                                                        "src": "1466:9:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6548,
                                                            "type": "bytes calldata",
                                                            "value": "data"
                                                        },
                                                        "id": 6559,
                                                        "name": "Identifier",
                                                        "src": "1476:4:53"
                                                    }
                                                ],
                                                "id": 6560,
                                                "name": "FunctionCall",
                                                "src": "1466:15:53"
                                            }
                                        ],
                                        "id": 6561,
                                        "name": "VariableDeclarationStatement",
                                        "src": "1426:55:53"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "argumentTypes": null,
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint8",
                                                        "typeString": "uint8"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6557,
                                                            "type": "uint8",
                                                            "value": "inputType"
                                                        },
                                                        "id": 6562,
                                                        "name": "Identifier",
                                                        "src": "1489:9:53"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": null,
                                                            "hexvalue": "31",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "subdenomination": null,
                                                            "token": "number",
                                                            "type": "int_const 1",
                                                            "value": "1"
                                                        },
                                                        "id": 6563,
                                                        "name": "Literal",
                                                        "src": "1502:1:53"
                                                    }
                                                ],
                                                "id": 6564,
                                                "name": "BinaryOperation",
                                                "src": "1489:14:53"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 6553
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "toStakedCelo",
                                                                            "referencedDeclaration": 1757,
                                                                            "type": "function (uint256) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IRebasedStakedCelo",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1765,
                                                                                            "type": "type(contract IRebasedStakedCelo)",
                                                                                            "value": "IRebasedStakedCelo"
                                                                                        },
                                                                                        "id": 6565,
                                                                                        "name": "Identifier",
                                                                                        "src": "1541:18:53"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6555,
                                                                                            "type": "address",
                                                                                            "value": "rebaseAddr"
                                                                                        },
                                                                                        "id": 6566,
                                                                                        "name": "Identifier",
                                                                                        "src": "1560:10:53"
                                                                                    }
                                                                                ],
                                                                                "id": 6567,
                                                                                "name": "FunctionCall",
                                                                                "src": "1541:30:53"
                                                                            }
                                                                        ],
                                                                        "id": 6568,
                                                                        "name": "MemberAccess",
                                                                        "src": "1541:43:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6546,
                                                                            "type": "uint256",
                                                                            "value": "amountIn"
                                                                        },
                                                                        "id": 6569,
                                                                        "name": "Identifier",
                                                                        "src": "1585:8:53"
                                                                    }
                                                                ],
                                                                "id": 6570,
                                                                "name": "FunctionCall",
                                                                "src": "1541:53:53"
                                                            }
                                                        ],
                                                        "id": 6571,
                                                        "name": "Return",
                                                        "src": "1534:60:53"
                                                    }
                                                ],
                                                "id": 6572,
                                                "name": "Block",
                                                "src": "1505:94:53"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "functionReturnParameters": 6553
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": null,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "toRebasedStakedCelo",
                                                                            "referencedDeclaration": 1764,
                                                                            "type": "function (uint256) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": null,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IRebasedStakedCelo",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 1765,
                                                                                            "type": "type(contract IRebasedStakedCelo)",
                                                                                            "value": "IRebasedStakedCelo"
                                                                                        },
                                                                                        "id": 6573,
                                                                                        "name": "Identifier",
                                                                                        "src": "1641:18:53"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": null,
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6555,
                                                                                            "type": "address",
                                                                                            "value": "rebaseAddr"
                                                                                        },
                                                                                        "id": 6574,
                                                                                        "name": "Identifier",
                                                                                        "src": "1660:10:53"
                                                                                    }
                                                                                ],
                                                                                "id": 6575,
                                                                                "name": "FunctionCall",
                                                                                "src": "1641:30:53"
                                                                            }
                                                                        ],
                                                                        "id": 6576,
                                                                        "name": "MemberAccess",
                                                                        "src": "1641:50:53"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": null,
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6546,
                                                                            "type": "uint256",
                                                                            "value": "amountIn"
                                                                        },
                                                                        "id": 6577,
                                                                        "name": "Identifier",
                                                                        "src": "1692:8:53"
                                                                    }
                                                                ],
                                                                "id": 6578,
                                                                "name": "FunctionCall",
                                                                "src": "1641:60:53"
                                                            }
                                                        ],
                                                        "id": 6579,
                                                        "name": "Return",
                                                        "src": "1634:67:53"
                                                    }
                                                ],
                                                "id": 6580,
                                                "name": "Block",
                                                "src": "1605:101:53"
                                            }
                                        ],
                                        "id": 6581,
                                        "name": "IfStatement",
                                        "src": "1485:221:53"
                                    }
                                ],
                                "id": 6582,
                                "name": "Block",
                                "src": "1422:287:53"
                            }
                        ],
                        "id": 6583,
                        "name": "FunctionDefinition",
                        "src": "1289:420:53"
                    },
                    {
                        "attributes": {
                            "documentation": null,
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "receive",
                            "modifiers": [
                                null
                            ],
                            "name": "",
                            "overrides": null,
                            "scope": 6588,
                            "stateMutability": "payable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6584,
                                "name": "ParameterList",
                                "src": "1719:2:53"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6585,
                                "name": "ParameterList",
                                "src": "1739:0:53"
                            },
                            {
                                "attributes": {
                                    "statements": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6586,
                                "name": "Block",
                                "src": "1739:2:53"
                            }
                        ],
                        "id": 6587,
                        "name": "FunctionDefinition",
                        "src": "1712:29:53"
                    }
                ],
                "id": 6588,
                "name": "ContractDefinition",
                "src": "249:1494:53"
            }
        ],
        "id": 6589,
        "name": "SourceUnit",
        "src": "32:1711:53"
    },
    "compiler": {
        "name": "solc",
        "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
    },
    "networks": {},
    "schemaVersion": "3.4.16",
    "updatedAt": "2025-02-07T17:50:42.838Z",
    "devdoc": {
        "methods": {}
    },
    "userdoc": {
        "methods": {}
    }
}
