{
  "_format": "hh-sol-artifact-1",
  "contractName": "OneJumpOracle",
  "sourceName": "contracts/oracles/OneJumpOracle.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "correlatedToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "underlyingToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "resilientOracle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "intermediateOracle",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "annualGrowthRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotInterval",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "initialSnapshotMaxExchangeRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "initialSnapshotTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "accessControlManager",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotGap",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "InvalidGrowthRate",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialSnapshot",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidSnapshotMaxExchangeRate",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidTokenAddress",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "calledContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "methodSignature",
          "type": "string"
        }
      ],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroAddressNotAllowed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "oldGrowthRatePerSecond",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "newGrowthRatePerSecond",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "oldSnapshotInterval",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newSnapshotInterval",
          "type": "uint256"
        }
      ],
      "name": "GrowthRateUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "oldSnapshotGap",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "newSnapshotGap",
          "type": "uint256"
        }
      ],
      "name": "SnapshotGapUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "maxExchangeRate",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "SnapshotUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ACCESS_CONTROL_MANAGER",
      "outputs": [
        {
          "internalType": "contract IAccessControlManagerV8",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "CORRELATED_TOKEN",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "INTERMEDIATE_ORACLE",
      "outputs": [
        {
          "internalType": "contract OracleInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "RESILIENT_ORACLE",
      "outputs": [
        {
          "internalType": "contract ResilientOracleInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UNDERLYING_TOKEN",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMaxAllowedExchangeRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "asset",
          "type": "address"
        }
      ],
      "name": "getPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getUnderlyingAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "growthRatePerSecond",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isCapped",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_annualGrowthRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotInterval",
          "type": "uint256"
        }
      ],
      "name": "setGrowthRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_snapshotMaxExchangeRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_snapshotTimestamp",
          "type": "uint256"
        }
      ],
      "name": "setSnapshot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_snapshotGap",
          "type": "uint256"
        }
      ],
      "name": "setSnapshotGap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotGap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotMaxExchangeRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "snapshotTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "updateSnapshot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x610120604052348015610010575f80fd5b5060405161124438038061124483398101604081905261002f916101a3565b8989898888888888886100466301e133808761028c565b5f81905515801561005657505f85115b8061006a57505f805411801561006a575084155b15610088576040516353b7e64560e11b815260040160405180910390fd5b831580610093575082155b801561009e57505f85115b156100bc5760405163b8a5589b60e01b815260040160405180910390fd5b6100c589610138565b6100ce88610138565b6100d787610138565b6100e082610138565b6001600160a01b0398891660805296881660a05294871660c052600192909255600255600355506004919091551660e05261011a87610138565b5050506001600160a01b03909316610100525061029f945050505050565b6001600160a01b03811661015f576040516342bcdf7f60e11b815260040160405180910390fd5b50565b5f6001600160a01b0382165b92915050565b61017d81610162565b811461015f575f80fd5b805161016e81610174565b8061017d565b805161016e81610192565b5f805f805f805f805f806101408b8d0312156101c0576101c05f80fd5b5f6101cb8d8d610187565b9a505060206101dc8d828e01610187565b99505060406101ed8d828e01610187565b98505060606101fe8d828e01610187565b975050608061020f8d828e01610198565b96505060a06102208d828e01610198565b95505060c06102318d828e01610198565b94505060e06102428d828e01610198565b9350506101006102548d828e01610187565b9250506101206102668d828e01610198565b9150509295989b9194979a5092959850565b634e487b7160e01b5f52601260045260245ffd5b5f8261029a5761029a610278565b500490565b60805160a05160c05160e05161010051610f1b6103295f395f818161028d01526107b401525f81816101890152610a5a01525f818161024e0152818161057401526108ed01525f8181610139015281816105a1015281816106a8015261091c01525f818161020b015281816102b20152818161072e015281816107e3015261099b0152610f1b5ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063abb8561314610270578063ac5a693e14610278578063bdf13af214610280578063ef4fa51b14610288575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610b0b565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610b38565b61011e60045481565b61011e61017f366004610b67565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610baa565b6101cb6101c6366004610bc9565b610360565b005b61011e60025481565b6101cb6101e4366004610be7565b6103d1565b6101f16104a5565b60405161012b9190610c29565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610be7565b61062c565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61089c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816108e9565b9392505050565b5f61032f61089c565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816108e9565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610a41565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610a41565b5f5461041f6301e1338084610c5f565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610b0b565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61089c565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610c72565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761089c565b9050600454818311610529578261052b565b815b6105359190610c85565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f000000000000000000000000000000000000000000000000000000000000000090600401610b38565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610a41565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610702573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107269190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610788573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ac9190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081e9190610b38565b602060405180830381865afa158015610839573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085d9190610cd5565b905061086a836024610c72565b61087590600a610dff565b61088083600a610dff565b61088a9083610e0c565b6108949190610c5f565b935050505090565b5f80600354426108ac9190610c72565b90505f670de0b6b3a7640000825f546002546108c89190610e0c565b6108d29190610e0c565b6108dc9190610c5f565b60025461031f9190610c85565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016109579190610b38565b602060405180830381865afa158015610972573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109969190610cd5565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1d9190610cac565b60ff169050610a2d81600a610dff565b610a378487610e0c565b6103579190610c5f565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab90610a919033908690600401610e67565b602060405180830381865afa158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad09190610e9a565b905080610aff57333083604051634a3fa29360e01b8152600401610af693929190610eb8565b60405180910390fd5b5050565b805b82525050565b60208101610b198284610b03565b92915050565b5f6001600160a01b038216610b19565b610b0581610b1f565b60208101610b198284610b2f565b610b4f81610b1f565b8114610b59575f80fd5b50565b8035610b1981610b46565b5f60208284031215610b7a57610b7a5f80fd5b5f610b858484610b5c565b949350505050565b5f610b1982610b1f565b5f610b1982610b8d565b610b0581610b97565b60208101610b198284610ba1565b80610b4f565b8035610b1981610bb8565b5f60208284031215610bdc57610bdc5f80fd5b5f610b858484610bbe565b5f8060408385031215610bfb57610bfb5f80fd5b5f610c068585610bbe565b9250506020610c1785828601610bbe565b9150509250929050565b801515610b05565b60208101610b198284610c21565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610c6d57610c6d610c37565b500490565b81810381811115610b1957610b19610c4b565b80820180821115610b1957610b19610c4b565b60ff8116610b4f565b8051610b1981610c98565b5f60208284031215610cbf57610cbf5f80fd5b5f610b858484610ca1565b8051610b1981610bb8565b5f60208284031215610ce857610ce85f80fd5b5f610b858484610cca565b80825b6001851115610d3257808604811115610d1157610d11610c4b565b6001851615610d1f57908102905b8002610d2b8560011c90565b9450610cf6565b94509492505050565b5f82610d495750600161031f565b81610d5557505f61031f565b8160018114610d6b5760028114610d7557610da2565b600191505061031f565b60ff841115610d8657610d86610c4b565b8360020a915084821115610d9c57610d9c610c4b565b5061031f565b5060208310610133831016604e8410600b8410161715610dd5575081810a83811115610dd057610dd0610c4b565b61031f565b610de28484846001610cf3565b92509050818404811115610df857610df8610c4b565b0292915050565b5f61031f5f198484610d3b565b818102808215838204851417610e2457610e24610c4b565b5092915050565b8281835e505f910152565b5f610e3f825190565b808452602084019350610e56818560208601610e2b565b601f01601f19169290920192915050565b60408101610e758285610b2f565b8181036020830152610b858184610e36565b801515610b4f565b8051610b1981610e87565b5f60208284031215610ead57610ead5f80fd5b5f610b858484610e8f565b60608101610ec68286610b2f565b610ed36020830185610b2f565b81810360408301526103578184610e3656fea264697066735822122084b9b4f99d18d67bf744570db1b94b71dc0b20993a9d8decc1c66b840c6df8ca64736f6c63430008190033",
  "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610111575f3560e01c8063692404261161009e578063a4edcd4c1161006e578063a4edcd4c14610249578063abb8561314610270578063ac5a693e14610278578063bdf13af214610280578063ef4fa51b14610288575f80fd5b806369240426146101fe57806369818a35146102065780637fc4e4a01461022d5780639c43eb5414610240575f80fd5b806345be2dc7116100e457806345be2dc7146101845780635213f9c8146101b8578063596efe6f146101cd578063643d813d146101d6578063671528d4146101e9575f80fd5b806307d0413c1461011557806329db1be6146101345780634169d2451461016857806341976e0914610171575b5f80fd5b61011e60015481565b60405161012b9190610b0b565b60405180910390f35b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610b38565b61011e60045481565b61011e61017f366004610b67565b6102af565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012b9190610baa565b6101cb6101c6366004610bc9565b610360565b005b61011e60025481565b6101cb6101e4366004610be7565b6103d1565b6101f16104a5565b60405161012b9190610c29565b6101cb6104e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61023b366004610be7565b61062c565b61011e60035481565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b61011e6106a4565b61011e5f5481565b61011e61089c565b6101ab7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161461030257604051630f58058360e11b815260040160405180910390fd5b5f61030b6106a4565b90506001545f036103265761031f816108e9565b9392505050565b5f61032f61089c565b90505f818311801561034057508115155b61034a578261034c565b815b9050610357816108e9565b95945050505050565b61039e6040518060400160405280601781526020017f736574536e617073686f744761702875696e7432353629000000000000000000815250610a41565b6004546040518291907feb3716d3f8388c182853c1dc98b18931f3a600bbab31f2ff48631f6412e4997f905f90a3600455565b61040f6040518060400160405280601e81526020017f73657447726f777468526174652875696e743235362c75696e74323536290000815250610a41565b5f5461041f6301e1338084610c5f565b5f81905515801561042f57505f82115b8061044357505f8054118015610443575081155b15610461576040516353b7e64560e11b815260040160405180910390fd5b6001545f54827fa65cbeb0e28a8803a912daac67c472c160aa01e2c988755fa424f290321de608856040516104969190610b0b565b60405180910390a45060015550565b5f6001545f036104b457505f90565b5f6104bd61089c565b9050805f036104cd575f91505090565b5f6104d66106a4565b9190911192915050565b6001546003546104f09042610c72565b10806104fc5750600154155b1561050357565b5f61050c6106a4565b90505f61051761089c565b9050600454818311610529578261052b565b815b6105359190610c85565b6002819055426003555f0361055d57604051635f18388760e01b815260040160405180910390fd5b60405163b62cad6960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b62cad69906105c9907f000000000000000000000000000000000000000000000000000000000000000090600401610b38565b5f604051808303815f87803b1580156105e0575f80fd5b505af11580156105f2573d5f803e3d5ffd5b505050506003546002547f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d60405160405180910390a35050565b61066a6040518060400160405280601c81526020017f736574536e617073686f742875696e743235362c75696e743235362900000000815250610a41565b60028290556003819055604051819083907f2c8c8fcb8c77a0ca21dcc3ab8fc0ade761557e76b1240cb40ebbef9fcee00f7d905f90a35050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610702573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107269190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610788573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ac9190610cac565b60ff1690505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161081e9190610b38565b602060405180830381865afa158015610839573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085d9190610cd5565b905061086a836024610c72565b61087590600a610dff565b61088083600a610dff565b61088a9083610e0c565b6108949190610c5f565b935050505090565b5f80600354426108ac9190610c72565b90505f670de0b6b3a7640000825f546002546108c89190610e0c565b6108d29190610e0c565b6108dc9190610c5f565b60025461031f9190610c85565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341976e097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016109579190610b38565b602060405180830381865afa158015610972573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109969190610cd5565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1d9190610cac565b60ff169050610a2d81600a610dff565b610a378487610e0c565b6103579190610c5f565b6040516318c5e8ab60e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906318c5e8ab90610a919033908690600401610e67565b602060405180830381865afa158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad09190610e9a565b905080610aff57333083604051634a3fa29360e01b8152600401610af693929190610eb8565b60405180910390fd5b5050565b805b82525050565b60208101610b198284610b03565b92915050565b5f6001600160a01b038216610b19565b610b0581610b1f565b60208101610b198284610b2f565b610b4f81610b1f565b8114610b59575f80fd5b50565b8035610b1981610b46565b5f60208284031215610b7a57610b7a5f80fd5b5f610b858484610b5c565b949350505050565b5f610b1982610b1f565b5f610b1982610b8d565b610b0581610b97565b60208101610b198284610ba1565b80610b4f565b8035610b1981610bb8565b5f60208284031215610bdc57610bdc5f80fd5b5f610b858484610bbe565b5f8060408385031215610bfb57610bfb5f80fd5b5f610c068585610bbe565b9250506020610c1785828601610bbe565b9150509250929050565b801515610b05565b60208101610b198284610c21565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82610c6d57610c6d610c37565b500490565b81810381811115610b1957610b19610c4b565b80820180821115610b1957610b19610c4b565b60ff8116610b4f565b8051610b1981610c98565b5f60208284031215610cbf57610cbf5f80fd5b5f610b858484610ca1565b8051610b1981610bb8565b5f60208284031215610ce857610ce85f80fd5b5f610b858484610cca565b80825b6001851115610d3257808604811115610d1157610d11610c4b565b6001851615610d1f57908102905b8002610d2b8560011c90565b9450610cf6565b94509492505050565b5f82610d495750600161031f565b81610d5557505f61031f565b8160018114610d6b5760028114610d7557610da2565b600191505061031f565b60ff841115610d8657610d86610c4b565b8360020a915084821115610d9c57610d9c610c4b565b5061031f565b5060208310610133831016604e8410600b8410161715610dd5575081810a83811115610dd057610dd0610c4b565b61031f565b610de28484846001610cf3565b92509050818404811115610df857610df8610c4b565b0292915050565b5f61031f5f198484610d3b565b818102808215838204851417610e2457610e24610c4b565b5092915050565b8281835e505f910152565b5f610e3f825190565b808452602084019350610e56818560208601610e2b565b601f01601f19169290920192915050565b60408101610e758285610b2f565b8181036020830152610b858184610e36565b801515610b4f565b8051610b1981610e87565b5f60208284031215610ead57610ead5f80fd5b5f610b858484610e8f565b60608101610ec68286610b2f565b610ed36020830185610b2f565b81810360408301526103578184610e3656fea264697066735822122084b9b4f99d18d67bf744570db1b94b71dc0b20993a9d8decc1c66b840c6df8ca64736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
