{
  "_format": "hh-sol-artifact-1",
  "contractName": "OptimizedTransparentUpgradeableProxy",
  "sourceName": "hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_logic",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "admin_",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "stateMutability": "payable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "beacon",
          "type": "address"
        }
      ],
      "name": "BeaconUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "admin",
      "outputs": [
        {
          "internalType": "address",
          "name": "admin_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "implementation",
      "outputs": [
        {
          "internalType": "address",
          "name": "implementation_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        }
      ],
      "name": "upgradeTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60a0604052604051610eed380380610eed83398101604081905261002291610443565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6104c3565b600080516020610ea68339815191521461006b5761006b6104d6565b61007782826000610124565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046104c3565b600080516020610e86833981519152146100c1576100c16104d6565b6001600160a01b038216608052600080516020610e868339815191528281556040517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f906101139060009086906104fb565b60405180910390a150505050610637565b61012d83610150565b60008251118061013a5750805b1561014b576101498383610190565b505b505050565b610159816101be565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101b58383604051806060016040528060278152602001610ec66027913961021d565b90505b92915050565b6001600160a01b0381163b6101ee5760405162461bcd60e51b81526004016101e590610563565b60405180910390fd5b600080516020610ea683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6102465760405162461bcd60e51b81526004016101e5906105b6565b600080856001600160a01b03168560405161026191906105e8565b600060405180830381855af49150503d806000811461029c576040519150601f19603f3d011682016040523d82523d6000602084013e6102a1565b606091505b5090925090506102b28282866102be565b925050505b9392505050565b606083156102cd5750816102b7565b8251156102dd5782518084602001fd5b8160405162461bcd60e51b81526004016101e59190610626565b60006001600160a01b0382166101b8565b610311816102f7565b811461031c57600080fd5b50565b80516101b881610308565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156103655761036561032a565b6040525050565b600061037760405190565b90506103838282610340565b919050565b60006001600160401b038211156103a1576103a161032a565b601f19601f83011660200192915050565b60005b838110156103cd5781810151838201526020016103b5565b50506000910152565b60006103e96103e484610388565b61036c565b90508281526020810184848401111561040457610404600080fd5b61040f8482856103b2565b509392505050565b600082601f83011261042b5761042b600080fd5b815161043b8482602086016103d6565b949350505050565b60008060006060848603121561045b5761045b600080fd5b6000610467868661031f565b93505060206104788682870161031f565b92505060408401516001600160401b0381111561049757610497600080fd5b6104a386828701610417565b9150509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156101b8576101b86104ad565b634e487b7160e01b600052600160045260246000fd5b6104f5816102f7565b82525050565b6040810161050982856104ec565b6102b760208301846104ec565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016101b881610516565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b6020820152915061055c565b602080825281016101b881610573565b60006105d0825190565b6105de8185602086016103b2565b9290920192915050565b60006102b782846105c6565b60006105fe825190565b8084526020840193506106158185602086016103b2565b601f01601f19169290920192915050565b602080825281016101b581846105f4565b6080516108126106746000396000818160e90152818161013f015281816101c10152818161020b0152818161023c015261026001526108126000f3fe6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100b857610052565b36610052576100506100cd565b005b6100506100cd565b34801561006657600080fd5b50610050610075366004610510565b6100e7565b61005061008836600461058b565b61013d565b34801561009957600080fd5b506100a26101bd565b6040516100af91906105f6565b60405180910390f35b3480156100c457600080fd5b506100a2610207565b6100d561025e565b6100e56100e06102af565b6102e2565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101355761013281604051806020016040528060008152506000610306565b50565b6101326100cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101b5576101b08383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610306915050565b505050565b6101b06100cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc576101f76102af565b905090565b6102046100cd565b90565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc57507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e55760405162461bcd60e51b81526004016102a690610604565b60405180910390fd5b60006101f77f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b3660008037600080366000845af43d6000803e808015610301573d6000f35b3d6000fd5b61030f83610331565b60008251118061031c5750805b156101b05761032b8383610371565b50505050565b61033a8161039f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061039683836040518060600160405280602781526020016107b660279139610407565b90505b92915050565b6001600160a01b0381163b6103c65760405162461bcd60e51b81526004016102a6906106bd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6104305760405162461bcd60e51b81526004016102a690610710565b600080856001600160a01b03168560405161044b9190610766565b600060405180830381855af49150503d8060008114610486576040519150601f19603f3d011682016040523d82523d6000602084013e61048b565b606091505b509150915061049b8282866104a7565b925050505b9392505050565b606083156104b65750816104a0565b8251156104c65782518084602001fd5b8160405162461bcd60e51b81526004016102a691906107a4565b60006001600160a01b038216610399565b6104fa816104e0565b811461013257600080fd5b8035610399816104f1565b60006020828403121561052557610525600080fd5b60006105318484610505565b949350505050565b60008083601f84011261054e5761054e600080fd5b50813567ffffffffffffffff81111561056957610569600080fd5b60208301915083600182028301111561058457610584600080fd5b9250929050565b6000806000604084860312156105a3576105a3600080fd5b60006105af8686610505565b935050602084013567ffffffffffffffff8111156105cf576105cf600080fd5b6105db86828701610539565b92509250509250925092565b6105f0816104e0565b82525050565b6020810161039982846105e7565b6020808252810161039981604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b6020808252810161039981610670565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b602082015291506106b6565b60208082528101610399816106cd565b60005b8381101561073b578181015183820152602001610723565b50506000910152565b600061074e825190565b61075c818560208601610720565b9290920192915050565b60006104a08284610744565b600061077c825190565b808452602084019350610793818560208601610720565b601f01601f19169290920192915050565b60208082528101610396818461077256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122074d46e8de9a3e5294fe7b4f85337f8b52a8b902fb14551d71a6dd8277259694664736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
  "deployedBytecode": "0x6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100b857610052565b36610052576100506100cd565b005b6100506100cd565b34801561006657600080fd5b50610050610075366004610510565b6100e7565b61005061008836600461058b565b61013d565b34801561009957600080fd5b506100a26101bd565b6040516100af91906105f6565b60405180910390f35b3480156100c457600080fd5b506100a2610207565b6100d561025e565b6100e56100e06102af565b6102e2565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101355761013281604051806020016040528060008152506000610306565b50565b6101326100cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101b5576101b08383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610306915050565b505050565b6101b06100cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc576101f76102af565b905090565b6102046100cd565b90565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc57507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e55760405162461bcd60e51b81526004016102a690610604565b60405180910390fd5b60006101f77f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b3660008037600080366000845af43d6000803e808015610301573d6000f35b3d6000fd5b61030f83610331565b60008251118061031c5750805b156101b05761032b8383610371565b50505050565b61033a8161039f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061039683836040518060600160405280602781526020016107b660279139610407565b90505b92915050565b6001600160a01b0381163b6103c65760405162461bcd60e51b81526004016102a6906106bd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6104305760405162461bcd60e51b81526004016102a690610710565b600080856001600160a01b03168560405161044b9190610766565b600060405180830381855af49150503d8060008114610486576040519150601f19603f3d011682016040523d82523d6000602084013e61048b565b606091505b509150915061049b8282866104a7565b925050505b9392505050565b606083156104b65750816104a0565b8251156104c65782518084602001fd5b8160405162461bcd60e51b81526004016102a691906107a4565b60006001600160a01b038216610399565b6104fa816104e0565b811461013257600080fd5b8035610399816104f1565b60006020828403121561052557610525600080fd5b60006105318484610505565b949350505050565b60008083601f84011261054e5761054e600080fd5b50813567ffffffffffffffff81111561056957610569600080fd5b60208301915083600182028301111561058457610584600080fd5b9250929050565b6000806000604084860312156105a3576105a3600080fd5b60006105af8686610505565b935050602084013567ffffffffffffffff8111156105cf576105cf600080fd5b6105db86828701610539565b92509250509250925092565b6105f0816104e0565b82525050565b6020810161039982846105e7565b6020808252810161039981604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b6020808252810161039981610670565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b602082015291506106b6565b60208082528101610399816106cd565b60005b8381101561073b578181015183820152602001610723565b50506000910152565b600061074e825190565b61075c818560208601610720565b9290920192915050565b60006104a08284610744565b600061077c825190565b808452602084019350610793818560208601610720565b601f01601f19169290920192915050565b60208082528101610396818461077256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122074d46e8de9a3e5294fe7b4f85337f8b52a8b902fb14551d71a6dd8277259694664736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
