{
  "_format": "hh-sol-artifact-1",
  "contractName": "TransparentUpgradeableProxy",
  "sourceName": "hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.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": [
        {
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "changeAdmin",
      "outputs": [],
      "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": "0x60806040526040516110483803806110488339810160408190526100229161048f565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61050f565b6000805160206110018339815191521461006b5761006b610522565b610077828260006100d2565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461050f565b600080516020610fe1833981519152146100c1576100c1610522565b6100ca826100fe565b5050506106d6565b6100db83610161565b6000825111806100e85750805b156100f9576100f783836101a1565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61013e600080516020610fe1833981519152546001600160a01b031690565b8260405161014d929190610547565b60405180910390a161015e816101cf565b50565b61016a81610230565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101c683836040518060600160405280602781526020016110216027913961026c565b90505b92915050565b6001600160a01b0381166101fe5760405162461bcd60e51b81526004016101f5906105a8565b60405180910390fd5b80600080516020610fe18339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102575760405162461bcd60e51b81526004016101f590610602565b8060008051602061100183398151915261020f565b60606001600160a01b0384163b6102955760405162461bcd60e51b81526004016101f590610655565b600080856001600160a01b0316856040516102b09190610687565b600060405180830381855af49150503d80600081146102eb576040519150601f19603f3d011682016040523d82523d6000602084013e6102f0565b606091505b50909250905061030182828661030d565b925050505b9392505050565b6060831561031c575081610306565b82511561032c5782518084602001fd5b8160405162461bcd60e51b81526004016101f591906106c5565b60006001600160a01b0382166101c9565b61036081610346565b811461015e57600080fd5b80516101c981610357565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156103b1576103b1610376565b6040525050565b60006103c360405190565b90506103cf828261038c565b919050565b60006001600160401b038211156103ed576103ed610376565b601f19601f83011660200192915050565b60005b83811015610419578181015183820152602001610401565b50506000910152565b6000610435610430846103d4565b6103b8565b90508281526020810184848401111561045057610450600080fd5b61045b8482856103fe565b509392505050565b600082601f83011261047757610477600080fd5b8151610487848260208601610422565b949350505050565b6000806000606084860312156104a7576104a7600080fd5b60006104b3868661036b565b93505060206104c48682870161036b565b92505060408401516001600160401b038111156104e3576104e3600080fd5b6104ef86828701610463565b9150509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156101c9576101c96104f9565b634e487b7160e01b600052600160045260246000fd5b61054181610346565b82525050565b604081016105558285610538565b6103066020830184610538565b602681526000602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016101c981610562565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291506105a1565b602080825281016101c9816105b8565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b602082015291506105a1565b602080825281016101c981610612565b600061066f825190565b61067d8185602086016103fe565b9290920192915050565b60006103068284610665565b600061069d825190565b8084526020840193506106b48185602086016103fe565b601f01601f19169290920192915050565b602080825281016101c68184610693565b6108fc806106e56000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c3578063f851a440146100e35761005d565b3661005d5761005b6100f8565b005b61005b6100f8565b34801561007157600080fd5b5061005b61008036600461058c565b610112565b61005b610093366004610607565b61014f565b3480156100a457600080fd5b506100ad6101b6565b6040516100ba9190610672565b60405180910390f35b3480156100cf57600080fd5b5061005b6100de36600461058c565b6101e7565b3480156100ef57600080fd5b506100ad610207565b610100610228565b61011061010b610260565b61026a565b565b61011a61028e565b6001600160a01b0316330361014757610144816040518060200160405280600081525060006102c1565b50565b6101446100f8565b61015761028e565b6001600160a01b031633036101ae576101a98383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506102c1915050565b505050565b6101a96100f8565b60006101c061028e565b6001600160a01b031633036101dc576101d7610260565b905090565b6101e46100f8565b90565b6101ef61028e565b6001600160a01b0316330361014757610144816102ec565b600061021161028e565b6001600160a01b031633036101dc576101d761028e565b61023061028e565b6001600160a01b031633036101105760405162461bcd60e51b815260040161025790610680565b60405180910390fd5b60006101d7610335565b3660008037600080366000845af43d6000803e808015610289573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102ca8361035d565b6000825111806102d75750805b156101a9576102e6838361039d565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61031561028e565b826040516103249291906106ec565b60405180910390a1610144816103cb565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102b2565b61036681610435565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103c283836040518060600160405280602781526020016108a060279139610483565b90505b92915050565b6001600160a01b0381166103f15760405162461bcd60e51b81526004016102579061074d565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61045c5760405162461bcd60e51b8152600401610257906107a7565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610414565b60606001600160a01b0384163b6104ac5760405162461bcd60e51b8152600401610257906107fa565b600080856001600160a01b0316856040516104c79190610850565b600060405180830381855af49150503d8060008114610502576040519150601f19603f3d011682016040523d82523d6000602084013e610507565b606091505b5091509150610517828286610523565b925050505b9392505050565b6060831561053257508161051c565b8251156105425782518084602001fd5b8160405162461bcd60e51b8152600401610257919061088e565b60006001600160a01b0382166103c5565b6105768161055c565b811461014457600080fd5b80356103c58161056d565b6000602082840312156105a1576105a1600080fd5b60006105ad8484610581565b949350505050565b60008083601f8401126105ca576105ca600080fd5b50813567ffffffffffffffff8111156105e5576105e5600080fd5b60208301915083600182028301111561060057610600600080fd5b9250929050565b60008060006040848603121561061f5761061f600080fd5b600061062b8686610581565b935050602084013567ffffffffffffffff81111561064b5761064b600080fd5b610657868287016105b5565b92509250509250925092565b61066c8161055c565b82525050565b602081016103c58284610663565b602080825281016103c581604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106fa8285610663565b61051c6020830184610663565b602681526000602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103c581610707565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529150610746565b602080825281016103c58161075d565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610746565b602080825281016103c5816107b7565b60005b8381101561082557818101518382015260200161080d565b50506000910152565b6000610838825190565b61084681856020860161080a565b9290920192915050565b600061051c828461082e565b6000610866825190565b80845260208401935061087d81856020860161080a565b601f01601f19169290920192915050565b602080825281016103c2818461085c56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e444297db3ae5fc9a9eefc71ca740bbeafc20c6972d32c6b51d1effee1baf3164736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
  "deployedBytecode": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c3578063f851a440146100e35761005d565b3661005d5761005b6100f8565b005b61005b6100f8565b34801561007157600080fd5b5061005b61008036600461058c565b610112565b61005b610093366004610607565b61014f565b3480156100a457600080fd5b506100ad6101b6565b6040516100ba9190610672565b60405180910390f35b3480156100cf57600080fd5b5061005b6100de36600461058c565b6101e7565b3480156100ef57600080fd5b506100ad610207565b610100610228565b61011061010b610260565b61026a565b565b61011a61028e565b6001600160a01b0316330361014757610144816040518060200160405280600081525060006102c1565b50565b6101446100f8565b61015761028e565b6001600160a01b031633036101ae576101a98383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506102c1915050565b505050565b6101a96100f8565b60006101c061028e565b6001600160a01b031633036101dc576101d7610260565b905090565b6101e46100f8565b90565b6101ef61028e565b6001600160a01b0316330361014757610144816102ec565b600061021161028e565b6001600160a01b031633036101dc576101d761028e565b61023061028e565b6001600160a01b031633036101105760405162461bcd60e51b815260040161025790610680565b60405180910390fd5b60006101d7610335565b3660008037600080366000845af43d6000803e808015610289573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102ca8361035d565b6000825111806102d75750805b156101a9576102e6838361039d565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61031561028e565b826040516103249291906106ec565b60405180910390a1610144816103cb565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102b2565b61036681610435565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103c283836040518060600160405280602781526020016108a060279139610483565b90505b92915050565b6001600160a01b0381166103f15760405162461bcd60e51b81526004016102579061074d565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61045c5760405162461bcd60e51b8152600401610257906107a7565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610414565b60606001600160a01b0384163b6104ac5760405162461bcd60e51b8152600401610257906107fa565b600080856001600160a01b0316856040516104c79190610850565b600060405180830381855af49150503d8060008114610502576040519150601f19603f3d011682016040523d82523d6000602084013e610507565b606091505b5091509150610517828286610523565b925050505b9392505050565b6060831561053257508161051c565b8251156105425782518084602001fd5b8160405162461bcd60e51b8152600401610257919061088e565b60006001600160a01b0382166103c5565b6105768161055c565b811461014457600080fd5b80356103c58161056d565b6000602082840312156105a1576105a1600080fd5b60006105ad8484610581565b949350505050565b60008083601f8401126105ca576105ca600080fd5b50813567ffffffffffffffff8111156105e5576105e5600080fd5b60208301915083600182028301111561060057610600600080fd5b9250929050565b60008060006040848603121561061f5761061f600080fd5b600061062b8686610581565b935050602084013567ffffffffffffffff81111561064b5761064b600080fd5b610657868287016105b5565b92509250509250925092565b61066c8161055c565b82525050565b602081016103c58284610663565b602080825281016103c581604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106fa8285610663565b61051c6020830184610663565b602681526000602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103c581610707565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529150610746565b602080825281016103c58161075d565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610746565b602080825281016103c5816107b7565b60005b8381101561082557818101518382015260200161080d565b50506000910152565b6000610838825190565b61084681856020860161080a565b9290920192915050565b600061051c828461082e565b6000610866825190565b80845260208401935061087d81856020860161080a565b601f01601f19169290920192915050565b602080825281016103c2818461085c56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e444297db3ae5fc9a9eefc71ca740bbeafc20c6972d32c6b51d1effee1baf3164736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
