{
  "abi": [
    {
      "inputs": [],
      "name": "maxNewSupplyPerPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "userdoc": {
    "version": 1,
    "kind": "user",
    "methods": {
      "maxNewSupplyPerPeriod()": {
        "notice": "The % increase in supply allowed per period."
      }
    }
  },
  "devdoc": {
    "version": 1,
    "kind": "dev"
  },
  "ast": {
    "absolutePath": "/Users/evanconrad/dev/src/strangemoodfoundation/strangemood-eth/src/contracts/lib/Limited.sol",
    "exportedSymbols": {
      "Context": [
        2404
      ],
      "ERC20": [
        690
      ],
      "IERC20": [
        768
      ],
      "IERC20Metadata": [
        793
      ],
      "Limited": [
        5242
      ],
      "Math": [
        5394
      ]
    },
    "id": 5243,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5134,
        "literals": [
          "solidity",
          "0.8",
          ".13"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:23:17"
      },
      {
        "absolutePath": "/Users/evanconrad/dev/src/strangemoodfoundation/strangemood-eth/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol",
        "file": "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol",
        "id": 5135,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5243,
        "sourceUnit": 691,
        "src": "57:64:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/evanconrad/dev/src/strangemoodfoundation/strangemood-eth/src/contracts/lib/Math.sol",
        "file": "./Math.sol",
        "id": 5136,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5243,
        "sourceUnit": 5395,
        "src": "122:20:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 5137,
              "name": "Math",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 5394,
              "src": "173:4:17"
            },
            "id": 5138,
            "nodeType": "InheritanceSpecifier",
            "src": "173:4:17"
          }
        ],
        "canonicalName": "Limited",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 5242,
        "linearizedBaseContracts": [
          5242,
          5394
        ],
        "name": "Limited",
        "nameLocation": "162:7:17",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "documentation": {
              "id": 5139,
              "nodeType": "StructuredDocumentation",
              "src": "184:48:17",
              "text": "The % increase in supply allowed per period."
            },
            "functionSelector": "b55121a7",
            "id": 5141,
            "mutability": "mutable",
            "name": "maxNewSupplyPerPeriod",
            "nameLocation": "252:21:17",
            "nodeType": "VariableDeclaration",
            "scope": 5242,
            "src": "237:36:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5140,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "237:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "documentation": {
              "id": 5142,
              "nodeType": "StructuredDocumentation",
              "src": "280:62:17",
              "text": "The length of a period. For example, 86400 would be a day."
            },
            "id": 5144,
            "mutability": "mutable",
            "name": "limitPeriodInSeconds",
            "nameLocation": "363:20:17",
            "nodeType": "VariableDeclaration",
            "scope": 5242,
            "src": "347:36:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5143,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "347:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5146,
            "mutability": "mutable",
            "name": "totalSupplyAtPeriodStart",
            "nameLocation": "406:24:17",
            "nodeType": "VariableDeclaration",
            "scope": 5242,
            "src": "390:40:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5145,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "390:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5148,
            "mutability": "mutable",
            "name": "addedSupplySinceLastCheck",
            "nameLocation": "452:25:17",
            "nodeType": "VariableDeclaration",
            "scope": 5242,
            "src": "436:41:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5147,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "436:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5150,
            "mutability": "mutable",
            "name": "periodStart",
            "nameLocation": "499:11:17",
            "nodeType": "VariableDeclaration",
            "scope": 5242,
            "src": "483:27:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5149,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "483:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 5179,
              "nodeType": "Block",
              "src": "646:232:17",
              "statements": [
                {
                  "expression": {
                    "id": 5161,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5159,
                      "name": "maxNewSupplyPerPeriod",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5141,
                      "src": "656:21:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5160,
                      "name": "_maxNewSupplyPerPeriod",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5154,
                      "src": "680:22:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "656:46:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5162,
                  "nodeType": "ExpressionStatement",
                  "src": "656:46:17"
                },
                {
                  "expression": {
                    "id": 5165,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5163,
                      "name": "limitPeriodInSeconds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5144,
                      "src": "712:20:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5164,
                      "name": "_limitPeriodInSeconds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5156,
                      "src": "735:21:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "712:44:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5166,
                  "nodeType": "ExpressionStatement",
                  "src": "712:44:17"
                },
                {
                  "expression": {
                    "id": 5169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5167,
                      "name": "totalSupplyAtPeriodStart",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5146,
                      "src": "766:24:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5168,
                      "name": "_initialSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5152,
                      "src": "793:14:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "766:41:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5170,
                  "nodeType": "ExpressionStatement",
                  "src": "766:41:17"
                },
                {
                  "expression": {
                    "id": 5173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5171,
                      "name": "addedSupplySinceLastCheck",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5148,
                      "src": "817:25:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 5172,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "845:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "817:29:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5174,
                  "nodeType": "ExpressionStatement",
                  "src": "817:29:17"
                },
                {
                  "expression": {
                    "id": 5177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5175,
                      "name": "periodStart",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5150,
                      "src": "856:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "30",
                      "id": 5176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "870:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "856:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5178,
                  "nodeType": "ExpressionStatement",
                  "src": "856:15:17"
                }
              ]
            },
            "id": 5180,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5157,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5152,
                  "mutability": "mutable",
                  "name": "_initialSupply",
                  "nameLocation": "546:14:17",
                  "nodeType": "VariableDeclaration",
                  "scope": 5180,
                  "src": "538:22:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5151,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "538:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5154,
                  "mutability": "mutable",
                  "name": "_maxNewSupplyPerPeriod",
                  "nameLocation": "578:22:17",
                  "nodeType": "VariableDeclaration",
                  "scope": 5180,
                  "src": "570:30:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5153,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "570:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5156,
                  "mutability": "mutable",
                  "name": "_limitPeriodInSeconds",
                  "nameLocation": "618:21:17",
                  "nodeType": "VariableDeclaration",
                  "scope": 5180,
                  "src": "610:29:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5155,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "610:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "528:117:17"
            },
            "returnParameters": {
              "id": 5158,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "646:0:17"
            },
            "scope": 5242,
            "src": "517:361:17",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5240,
              "nodeType": "Block",
              "src": "1124:842:17",
              "statements": [
                {
                  "assignments": [
                    5191
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5191,
                      "mutability": "mutable",
                      "name": "timeSinceLast",
                      "nameLocation": "1142:13:17",
                      "nodeType": "VariableDeclaration",
                      "scope": 5240,
                      "src": "1134:21:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5190,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1134:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5196,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 5192,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "1158:5:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 5193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "1158:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "id": 5194,
                      "name": "periodStart",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5150,
                      "src": "1176:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1158:29:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1134:53:17"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5199,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5197,
                      "name": "timeSinceLast",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5191,
                      "src": "1262:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 5198,
                      "name": "limitPeriodInSeconds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5144,
                      "src": "1278:20:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1262:36:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5214,
                  "nodeType": "IfStatement",
                  "src": "1258:193:17",
                  "trueBody": {
                    "id": 5213,
                    "nodeType": "Block",
                    "src": "1300:151:17",
                    "statements": [
                      {
                        "expression": {
                          "id": 5202,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5200,
                            "name": "totalSupplyAtPeriodStart",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5146,
                            "src": "1314:24:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 5201,
                            "name": "currentSupply",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5183,
                            "src": "1341:13:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1314:40:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5203,
                        "nodeType": "ExpressionStatement",
                        "src": "1314:40:17"
                      },
                      {
                        "expression": {
                          "id": 5206,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5204,
                            "name": "addedSupplySinceLastCheck",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5148,
                            "src": "1368:25:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "30",
                            "id": 5205,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1396:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1368:29:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5207,
                        "nodeType": "ExpressionStatement",
                        "src": "1368:29:17"
                      },
                      {
                        "expression": {
                          "id": 5211,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5208,
                            "name": "periodStart",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5150,
                            "src": "1411:11:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "id": 5209,
                              "name": "block",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -4,
                              "src": "1425:5:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_block",
                                "typeString": "block"
                              }
                            },
                            "id": 5210,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "src": "1425:15:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1411:29:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5212,
                        "nodeType": "ExpressionStatement",
                        "src": "1411:29:17"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 5217,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 5215,
                        "name": "addedSupplySinceLastCheck",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5148,
                        "src": "1565:25:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "id": 5216,
                        "name": "newSupply",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5185,
                        "src": "1593:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1565:37:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 5218,
                      "name": "maxNewSupplyPerPeriod",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5141,
                      "src": "1605:21:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1565:61:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5233,
                  "nodeType": "IfStatement",
                  "src": "1561:280:17",
                  "trueBody": {
                    "id": 5232,
                    "nodeType": "Block",
                    "src": "1628:213:17",
                    "statements": [
                      {
                        "assignments": [
                          5221
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5221,
                            "mutability": "mutable",
                            "name": "additionalSupply",
                            "nameLocation": "1650:16:17",
                            "nodeType": "VariableDeclaration",
                            "scope": 5232,
                            "src": "1642:24:17",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5220,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1642:7:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 5225,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5224,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 5222,
                            "name": "maxNewSupplyPerPeriod",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5141,
                            "src": "1669:21:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "id": 5223,
                            "name": "addedSupplySinceLastCheck",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5148,
                            "src": "1709:25:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1669:65:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1642:92:17"
                      },
                      {
                        "expression": {
                          "id": 5228,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5226,
                            "name": "addedSupplySinceLastCheck",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5148,
                            "src": "1748:25:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "id": 5227,
                            "name": "additionalSupply",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5221,
                            "src": "1777:16:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1748:45:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5229,
                        "nodeType": "ExpressionStatement",
                        "src": "1748:45:17"
                      },
                      {
                        "expression": {
                          "id": 5230,
                          "name": "additionalSupply",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5221,
                          "src": "1814:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 5189,
                        "id": 5231,
                        "nodeType": "Return",
                        "src": "1807:23:17"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 5236,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5234,
                      "name": "addedSupplySinceLastCheck",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5148,
                      "src": "1895:25:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 5235,
                      "name": "newSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5185,
                      "src": "1924:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1895:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5237,
                  "nodeType": "ExpressionStatement",
                  "src": "1895:38:17"
                },
                {
                  "expression": {
                    "id": 5238,
                    "name": "newSupply",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5185,
                    "src": "1950:9:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5189,
                  "id": 5239,
                  "nodeType": "Return",
                  "src": "1943:16:17"
                }
              ]
            },
            "documentation": {
              "id": 5181,
              "nodeType": "StructuredDocumentation",
              "src": "884:112:17",
              "text": "@dev returns the amount of new supply that we're allowed to create\n will be 0 if we've hit the limit."
            },
            "id": 5241,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_cappedNewSupplyToCreate",
            "nameLocation": "1010:24:17",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5186,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5183,
                  "mutability": "mutable",
                  "name": "currentSupply",
                  "nameLocation": "1043:13:17",
                  "nodeType": "VariableDeclaration",
                  "scope": 5241,
                  "src": "1035:21:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5182,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1035:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5185,
                  "mutability": "mutable",
                  "name": "newSupply",
                  "nameLocation": "1066:9:17",
                  "nodeType": "VariableDeclaration",
                  "scope": 5241,
                  "src": "1058:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5184,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1058:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1034:42:17"
            },
            "returnParameters": {
              "id": 5189,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5188,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5241,
                  "src": "1111:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5187,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1111:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1110:9:17"
            },
            "scope": 5242,
            "src": "1001:965:17",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 5243,
        "src": "144:1824:17",
        "usedErrors": []
      }
    ],
    "src": "32:1937:17"
  }
}