{
  "manifestVersion": "3.2",
  "proxies": [
    {
      "address": "0xe80772Eaf6e2E18B651F160Bc9158b2A5caFCA65",
      "txHash": "0x096eb06b16a0a9c088b20c30f7ed8d6004ed0760e56d197a7b22605daccf485d",
      "kind": "uups"
    },
    {
      "address": "0x73cb180bf0521828d8849bc8CF2B920918e23032",
      "txHash": "0x69be4e5322afa11042908c7f25cea7cf2cd9c93ac188f3618479df66f625616c",
      "kind": "uups"
    },
    {
      "address": "0x9Af655c4DBe940962F776b685d6700F538B90fcf",
      "txHash": "0xa5e366491cb8f079c4edf0780589c8626f2a40478914b94ebbec2ac94af9c42e",
      "kind": "uups"
    },
    {
      "address": "0x11732E21D9DaB3B6fF6e7DD9EdcB24770260c7B4",
      "txHash": "0x870be7ee1bdf2fa949eea4b1e2a8a770cbaad3e75aaa2857812cff193df7a851",
      "kind": "uups"
    },
    {
      "address": "0x6389D1F4B50f06c19a63A8F80BC67804F5D77E5d",
      "txHash": "0xccccb12686afed9eb5ce51cf0fdf94f55449f82b4963ebf3361ac886fdbbb7c5",
      "kind": "uups"
    },
    {
      "address": "0x3D81BCbCB8B88565845C54240654F3A3C84C3438",
      "txHash": "0x0ecc335ca32d3b8d67272971201938be2cccef1c39ba9cc8ba835a974b7414f0",
      "kind": "uups"
    },
    {
      "address": "0xe4Be0f206828Be0B5D48142F465aBD4e57dB58D4",
      "txHash": "0xed959a432e20976e5bc21016188ccd70c8842673c641c5c415fa251b305fc6a7",
      "kind": "uups"
    },
    {
      "address": "0x3dB63BFFd31476cd0b1C05e8BF9420Daf8269814",
      "txHash": "0xe62f79ef14ccba127fc29660c12f039f27bf8126fb848453fae5d225e2d02fe0",
      "kind": "uups"
    },
    {
      "address": "0x7fd836876369c08FFaf2b2eCCEd6e6d0b751938F",
      "txHash": "0xefa507853d22d893d800786b4d9931cfa5c56f92af09613a752969d64de409b2",
      "kind": "uups"
    },
    {
      "address": "0xb9D731080b9e862C3a6B7eaF0E5a086614d0a2d9",
      "txHash": "0x37c48c8b5fef7a8b75f949c514bb77c20bdd4486a62bc0ed2e49a633bd4ff0f4",
      "kind": "uups"
    }
  ],
  "impls": {
    "68061405739da9ae160ac7250355b209ef8024f2aa91052e6692daf5356f3562": {
      "address": "0x159f28F598b5C5340D6A902D34eB373D30499660",
      "txHash": "0xfa0783503a9243750d6aeaadcea85c7a24629a8a1c375eaec2df61f1b285a130",
      "layout": {
        "storage": [
          {
            "label": "_initialized",
            "offset": 0,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:39"
          },
          {
            "label": "_initializing",
            "offset": 1,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:44"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "1",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ContextUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "51",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC165Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41"
          },
          {
            "label": "_roles",
            "offset": 0,
            "slot": "101",
            "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "102",
            "type": "t_array(t_uint256)49_storage",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:235"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "151",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC1967UpgradeUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:211"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "201",
            "type": "t_array(t_uint256)50_storage",
            "contract": "UUPSUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:107"
          },
          {
            "label": "_balances",
            "offset": 0,
            "slot": "251",
            "type": "t_mapping(t_address,t_uint256)",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:18"
          },
          {
            "label": "_allowances",
            "offset": 0,
            "slot": "252",
            "type": "t_mapping(t_address,t_mapping(t_address,t_uint256))",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:20"
          },
          {
            "label": "_totalSupply",
            "offset": 0,
            "slot": "253",
            "type": "t_uint256",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:22"
          },
          {
            "label": "_name",
            "offset": 0,
            "slot": "254",
            "type": "t_string_storage",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:24"
          },
          {
            "label": "_symbol",
            "offset": 0,
            "slot": "255",
            "type": "t_string_storage",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:25"
          },
          {
            "label": "_totalMint",
            "offset": 0,
            "slot": "256",
            "type": "t_uint256",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:32"
          },
          {
            "label": "_totalBurn",
            "offset": 0,
            "slot": "257",
            "type": "t_uint256",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:33"
          },
          {
            "label": "liquidityIndexChangeTime",
            "offset": 0,
            "slot": "258",
            "type": "t_uint256",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:35"
          },
          {
            "label": "liquidityIndex",
            "offset": 0,
            "slot": "259",
            "type": "t_uint256",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:36"
          },
          {
            "label": "liquidityIndexDenominator",
            "offset": 0,
            "slot": "260",
            "type": "t_uint256",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:37"
          },
          {
            "label": "_owners",
            "offset": 0,
            "slot": "261",
            "type": "t_struct(AddressSet)3046_storage",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:39"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "263",
            "type": "t_array(t_uint256)50_storage",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:41"
          },
          {
            "label": "exchange",
            "offset": 0,
            "slot": "313",
            "type": "t_address",
            "contract": "UsdPlusToken",
            "src": "contracts/UsdPlusToken.sol:43"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_array(t_bytes32)dyn_storage": {
            "label": "bytes32[]",
            "numberOfBytes": "32"
          },
          "t_array(t_uint256)49_storage": {
            "label": "uint256[49]",
            "numberOfBytes": "1568"
          },
          "t_array(t_uint256)50_storage": {
            "label": "uint256[50]",
            "numberOfBytes": "1600"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_bytes32": {
            "label": "bytes32",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_bool)": {
            "label": "mapping(address => bool)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_mapping(t_address,t_uint256))": {
            "label": "mapping(address => mapping(address => uint256))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_uint256)": {
            "label": "mapping(address => uint256)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": {
            "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_bytes32,t_uint256)": {
            "label": "mapping(bytes32 => uint256)",
            "numberOfBytes": "32"
          },
          "t_string_storage": {
            "label": "string",
            "numberOfBytes": "32"
          },
          "t_struct(AddressSet)3046_storage": {
            "label": "struct EnumerableSet.AddressSet",
            "members": [
              {
                "label": "_inner",
                "type": "t_struct(Set)2745_storage",
                "offset": 0,
                "slot": "0"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_struct(RoleData)34_storage": {
            "label": "struct AccessControlUpgradeable.RoleData",
            "members": [
              {
                "label": "members",
                "type": "t_mapping(t_address,t_bool)",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "adminRole",
                "type": "t_bytes32",
                "offset": 0,
                "slot": "1"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_struct(Set)2745_storage": {
            "label": "struct EnumerableSet.Set",
            "members": [
              {
                "label": "_values",
                "type": "t_array(t_bytes32)dyn_storage",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "_indexes",
                "type": "t_mapping(t_bytes32,t_uint256)",
                "offset": 0,
                "slot": "1"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        }
      }
    },
    "25715ecdc73b84a462659203aa48b047420339a9e4ad04daff5b65cfa30a4a46": {
      "address": "0xB79DD08EA68A908A97220C76d19A6aA9cBDE4376",
      "txHash": "0xf6715f88528a12b8cc909d29b13b300d42094b14940303ba2fa7471e1df1f35f",
      "layout": {
        "storage": [
          {
            "label": "_initialized",
            "offset": 0,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:39"
          },
          {
            "label": "_initializing",
            "offset": 1,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:44"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "1",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ContextUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "51",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC165Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41"
          },
          {
            "label": "_roles",
            "offset": 0,
            "slot": "101",
            "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "102",
            "type": "t_array(t_uint256)49_storage",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:235"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "151",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC1967UpgradeUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:211"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "201",
            "type": "t_array(t_uint256)50_storage",
            "contract": "UUPSUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:107"
          },
          {
            "label": "_paused",
            "offset": 0,
            "slot": "251",
            "type": "t_bool",
            "contract": "PausableUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:29"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "252",
            "type": "t_array(t_uint256)49_storage",
            "contract": "PausableUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol:102"
          },
          {
            "label": "usdPlus",
            "offset": 0,
            "slot": "301",
            "type": "t_contract(UsdPlusToken)7407",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:21"
          },
          {
            "label": "usdc",
            "offset": 0,
            "slot": "302",
            "type": "t_contract(IERC20)2484",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:22"
          },
          {
            "label": "portfolioManager",
            "offset": 0,
            "slot": "303",
            "type": "t_contract(IPortfolioManager)7566",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:24"
          },
          {
            "label": "mark2market",
            "offset": 0,
            "slot": "304",
            "type": "t_contract(IMark2Market)7503",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:25"
          },
          {
            "label": "buyFee",
            "offset": 0,
            "slot": "305",
            "type": "t_uint256",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:27"
          },
          {
            "label": "buyFeeDenominator",
            "offset": 0,
            "slot": "306",
            "type": "t_uint256",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:28"
          },
          {
            "label": "redeemFee",
            "offset": 0,
            "slot": "307",
            "type": "t_uint256",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:30"
          },
          {
            "label": "redeemFeeDenominator",
            "offset": 0,
            "slot": "308",
            "type": "t_uint256",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:31"
          },
          {
            "label": "nextPayoutTime",
            "offset": 0,
            "slot": "309",
            "type": "t_uint256",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:34"
          },
          {
            "label": "payoutPeriod",
            "offset": 0,
            "slot": "310",
            "type": "t_uint256",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:37"
          },
          {
            "label": "payoutTimeRange",
            "offset": 0,
            "slot": "311",
            "type": "t_uint256",
            "contract": "Exchange",
            "src": "contracts/Exchange.sol:44"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_array(t_uint256)49_storage": {
            "label": "uint256[49]",
            "numberOfBytes": "1568"
          },
          "t_array(t_uint256)50_storage": {
            "label": "uint256[50]",
            "numberOfBytes": "1600"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_bytes32": {
            "label": "bytes32",
            "numberOfBytes": "32"
          },
          "t_contract(IERC20)2484": {
            "label": "contract IERC20",
            "numberOfBytes": "20"
          },
          "t_contract(IMark2Market)7503": {
            "label": "contract IMark2Market",
            "numberOfBytes": "20"
          },
          "t_contract(IPortfolioManager)7566": {
            "label": "contract IPortfolioManager",
            "numberOfBytes": "20"
          },
          "t_contract(UsdPlusToken)7407": {
            "label": "contract UsdPlusToken",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_bool)": {
            "label": "mapping(address => bool)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": {
            "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)",
            "numberOfBytes": "32"
          },
          "t_struct(RoleData)34_storage": {
            "label": "struct AccessControlUpgradeable.RoleData",
            "members": [
              {
                "label": "members",
                "type": "t_mapping(t_address,t_bool)",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "adminRole",
                "type": "t_bytes32",
                "offset": 0,
                "slot": "1"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        }
      }
    },
    "a7eaa939993bc9dc7e1373be8422288abf362571d1f8196fb5482934dc8e5474": {
      "address": "0x7cb1B38591021309C64f451859d79312d8Ca2789",
      "txHash": "0xb416d6dacf78938acbd5f5af7d633a28e8a28b44895629a7e7a7f50e083aca0e",
      "layout": {
        "storage": [
          {
            "label": "_initialized",
            "offset": 0,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:39"
          },
          {
            "label": "_initializing",
            "offset": 1,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:44"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "1",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ContextUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "51",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC165Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41"
          },
          {
            "label": "_roles",
            "offset": 0,
            "slot": "101",
            "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "102",
            "type": "t_array(t_uint256)49_storage",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:235"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "151",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC1967UpgradeUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:211"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "201",
            "type": "t_array(t_uint256)50_storage",
            "contract": "UUPSUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:107"
          },
          {
            "label": "portfolioManager",
            "offset": 0,
            "slot": "251",
            "type": "t_contract(IPortfolioManager)7566",
            "contract": "Mark2Market",
            "src": "contracts/Mark2Market.sol:19"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_array(t_uint256)49_storage": {
            "label": "uint256[49]",
            "numberOfBytes": "1568"
          },
          "t_array(t_uint256)50_storage": {
            "label": "uint256[50]",
            "numberOfBytes": "1600"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_bytes32": {
            "label": "bytes32",
            "numberOfBytes": "32"
          },
          "t_contract(IPortfolioManager)7566": {
            "label": "contract IPortfolioManager",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_bool)": {
            "label": "mapping(address => bool)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": {
            "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)",
            "numberOfBytes": "32"
          },
          "t_struct(RoleData)34_storage": {
            "label": "struct AccessControlUpgradeable.RoleData",
            "members": [
              {
                "label": "members",
                "type": "t_mapping(t_address,t_bool)",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "adminRole",
                "type": "t_bytes32",
                "offset": 0,
                "slot": "1"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        }
      }
    },
    "9a800d6d35b21b5d873f1f1d6750271bfa96ecfe978d49e222146f0da8782f05": {
      "address": "0x1F4947Cd5A5c058DD5EA6Fd1CCd5c311aDa9E6Fb",
      "txHash": "0xfaf8a229b83c666fbb03852096ac2a064b0c5ba71fa026204e6dccba3c03b011",
      "layout": {
        "storage": [
          {
            "label": "_initialized",
            "offset": 0,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:39"
          },
          {
            "label": "_initializing",
            "offset": 1,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:44"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "1",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ContextUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "51",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC165Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41"
          },
          {
            "label": "_roles",
            "offset": 0,
            "slot": "101",
            "type": "t_mapping(t_bytes32,t_struct(RoleData)34_storage)",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "102",
            "type": "t_array(t_uint256)49_storage",
            "contract": "AccessControlUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:235"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "151",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC1967UpgradeUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol:211"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "201",
            "type": "t_array(t_uint256)50_storage",
            "contract": "UUPSUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol:107"
          },
          {
            "label": "exchanger",
            "offset": 0,
            "slot": "251",
            "type": "t_address",
            "contract": "PortfolioManager",
            "src": "contracts/PortfolioManager.sol:22"
          },
          {
            "label": "usdc",
            "offset": 0,
            "slot": "252",
            "type": "t_contract(IERC20)2484",
            "contract": "PortfolioManager",
            "src": "contracts/PortfolioManager.sol:23"
          },
          {
            "label": "strategyWeightPositions",
            "offset": 0,
            "slot": "253",
            "type": "t_mapping(t_address,t_uint256)",
            "contract": "PortfolioManager",
            "src": "contracts/PortfolioManager.sol:24"
          },
          {
            "label": "strategyWeights",
            "offset": 0,
            "slot": "254",
            "type": "t_array(t_struct(StrategyWeight)7526_storage)dyn_storage",
            "contract": "PortfolioManager",
            "src": "contracts/PortfolioManager.sol:25"
          },
          {
            "label": "cashStrategy",
            "offset": 0,
            "slot": "255",
            "type": "t_contract(IStrategy)7673",
            "contract": "PortfolioManager",
            "src": "contracts/PortfolioManager.sol:26"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_array(t_struct(StrategyWeight)7526_storage)dyn_storage": {
            "label": "struct IPortfolioManager.StrategyWeight[]",
            "numberOfBytes": "32"
          },
          "t_array(t_uint256)49_storage": {
            "label": "uint256[49]",
            "numberOfBytes": "1568"
          },
          "t_array(t_uint256)50_storage": {
            "label": "uint256[50]",
            "numberOfBytes": "1600"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_bytes32": {
            "label": "bytes32",
            "numberOfBytes": "32"
          },
          "t_contract(IERC20)2484": {
            "label": "contract IERC20",
            "numberOfBytes": "20"
          },
          "t_contract(IStrategy)7673": {
            "label": "contract IStrategy",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_bool)": {
            "label": "mapping(address => bool)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_uint256)": {
            "label": "mapping(address => uint256)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_bytes32,t_struct(RoleData)34_storage)": {
            "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)",
            "numberOfBytes": "32"
          },
          "t_struct(RoleData)34_storage": {
            "label": "struct AccessControlUpgradeable.RoleData",
            "members": [
              {
                "label": "members",
                "type": "t_mapping(t_address,t_bool)",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "adminRole",
                "type": "t_bytes32",
                "offset": 0,
                "slot": "1"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_struct(StrategyWeight)7526_storage": {
            "label": "struct IPortfolioManager.StrategyWeight",
            "members": [
              {
                "label": "strategy",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "minWeight",
                "type": "t_uint256",
                "offset": 0,
                "slot": "1"
              },
              {
                "label": "targetWeight",
                "type": "t_uint256",
                "offset": 0,
                "slot": "2"
              },
              {
                "label": "maxWeight",
                "type": "t_uint256",
                "offset": 0,
                "slot": "3"
              },
              {
                "label": "enabled",
                "type": "t_bool",
                "offset": 0,
                "slot": "4"
              },
              {
                "label": "enabledReward",
                "type": "t_bool",
                "offset": 1,
                "slot": "4"
              }
            ],
            "numberOfBytes": "160"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        }
      }
    }
  }
}
