{
  "_format": "hh-sol-artifact-1",
  "contractName": "DecryptionOracle",
  "sourceName": "contracts/DecryptionOracle.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "AddressEmptyCode",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "ERC1967InvalidImplementation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1967NonPayable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "fheTypeUint8",
          "type": "uint8"
        }
      ],
      "name": "InvalidFHEType",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "maxBitSize",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalBitSize",
          "type": "uint256"
        }
      ],
      "name": "MaxDecryptionRequestBitSizeExceeded",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UUPSUnauthorizedCallContext",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "slot",
          "type": "bytes32"
        }
      ],
      "name": "UUPSUnsupportedProxiableUUID",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "enum FheType",
          "name": "fheType",
          "type": "uint8"
        }
      ],
      "name": "UnsupportedFHEType",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "counter",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "requestID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "cts",
          "type": "bytes32[]"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "contractCaller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "callbackSelector",
          "type": "bytes4"
        }
      ],
      "name": "DecryptionRequest",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "UPGRADE_INTERFACE_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCounter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVersion",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reinitialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "requestID",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "ctsHandles",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes4",
          "name": "callbackSelector",
          "type": "bytes4"
        }
      ],
      "name": "requestDecryption",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "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"
    }
  ],
  "bytecode": "0x60a060405230608052348015610013575f80fd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516112f46100f95f395f81816107410152818161076a01526108d401526112f45ff3fe6080604052600436106100c3575f3560e01c806379ba509711610071578063ad3cb1cc1161004c578063ad3cb1cc146101e2578063e30c39781461022a578063f2fde38b1461023e575f80fd5b806379ba50971461016f5780638ada066e146101835780638da5cb5b146101b6575f80fd5b806352d1902d116100a157806352d1902d146101255780636c2eb35014610147578063715018a61461015b575f80fd5b80630d8e6e2c146100c75780633263b83b146100f15780634f1ef28614610112575b5f80fd5b3480156100d2575f80fd5b506100db61025d565b6040516100e89190610f3c565b60405180910390f35b3480156100fc575f80fd5b5061011061010b366004610f6e565b6102d8565b005b610110610120366004611047565b61038f565b348015610130575f80fd5b506101396103ae565b6040519081526020016100e8565b348015610152575f80fd5b506101106103dc565b348015610166575f80fd5b506101106104d1565b34801561017a575f80fd5b506101106104e4565b34801561018e575f80fd5b507fd86fa2a52e99634194c279afa011b5f5166614c3198dd09bbd002d5fb5c0bc0054610139565b3480156101c1575f80fd5b506101ca610531565b6040516001600160a01b0390911681526020016100e8565b3480156101ed575f80fd5b506100db6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b348015610235575f80fd5b506101ca610565565b348015610249575f80fd5b50610110610258366004611103565b61058d565b60606040518060400160405280601081526020017f44656372797074696f6e4f7261636c650000000000000000000000000000000081525061029e5f610612565b6102a86001610612565b6102b15f610612565b6040516020016102c4949392919061111c565b604051602081830303815290604052905090565b6103138383808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506106af92505050565b7fd86fa2a52e99634194c279afa011b5f5166614c3198dd09bbd002d5fb5c0bc0080546040517ff9a580b32950f598a0b7fe0edf634b8af409702fb0fedad9ec367ce0e87fcbfd9061036e9088908890889033908990611199565b60405180910390a28054815f6103838361123c565b91905055505050505050565b610397610736565b6103a0826107ed565b6103aa82826107f5565b5050565b5f6103b76108c9565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546002919068010000000000000000900460ff168061042b5750805467ffffffffffffffff808416911610155b156104495760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff8316176801000000000000000017815561048061047b610531565b610912565b805468ff00000000000000001916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050565b6104d9610923565b6104e25f610955565b565b33806104ee610565565b6001600160a01b0316146105255760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61052e81610955565b50565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610555565b610595610923565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105d9610531565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60605f61061e8361098d565b60010190505f8167ffffffffffffffff81111561063d5761063d611033565b6040519080825280601f01601f191660200182016040528015610667576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461067157509392505050565b5f805b8251811015610707575f8382815181106106ce576106ce611254565b602002602001015190505f6106e282610a6f565b90506106ed81610abb565b6106fb9061ffff1685611268565b935050506001016106b2565b506108008111156103aa5760405163e7f4895d60e01b815261080060048201526024810182905260440161051c565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107cf57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107c37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156104e25760405163703e46dd60e11b815260040160405180910390fd5b61052e610923565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561084f575060408051601f3d908101601f1916820190925261084c9181019061127b565b60015b61087757604051634c9c8ce360e01b81526001600160a01b038316600482015260240161051c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146108ba57604051632a87526960e21b81526004810182905260240161051c565b6108c48383610c4a565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e25760405163703e46dd60e11b815260040160405180910390fd5b61091a610c9f565b61052e81610ced565b3361092c610531565b6001600160a01b0316146104e25760405163118cdaa760e01b815233600482015260240161051c565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556103aa82610d1e565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106109d5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610a01576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a1f57662386f26fc10000830492506010015b6305f5e1008310610a37576305f5e100830492506008015b6127108310610a4b57612710830492506004015b60648310610a5d576064830492506002015b600a8310610a69576001015b92915050565b5f600882901c60ff166053811115610a9f5760405163641950d760e01b815260ff8216600482015260240161051c565b8060ff166053811115610ab457610ab4611292565b9392505050565b5f80826053811115610acf57610acf611292565b03610adc57506002919050565b6002826053811115610af057610af0611292565b03610afd57506008919050565b6003826053811115610b1157610b11611292565b03610b1e57506010919050565b6004826053811115610b3257610b32611292565b03610b3f57506020919050565b6005826053811115610b5357610b53611292565b03610b6057506040919050565b6006826053811115610b7457610b74611292565b03610b8157506080919050565b6007826053811115610b9557610b95611292565b03610ba2575060a0919050565b6008826053811115610bb657610bb6611292565b03610bc45750610100919050565b6009826053811115610bd857610bd8611292565b03610be65750610200919050565b600a826053811115610bfa57610bfa611292565b03610c085750610400919050565b600b826053811115610c1c57610c1c611292565b03610c2a5750610800919050565b8160405163be7830b160e01b815260040161051c91906112a6565b919050565b610c5382610d8e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115610c97576108c48282610e04565b6103aa610e76565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166104e257604051631afcd79f60e31b815260040160405180910390fd5b610cf5610c9f565b6001600160a01b03811661052557604051631e4fbdf760e01b81525f600482015260240161051c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b806001600160a01b03163b5f03610dc357604051634c9c8ce360e01b81526001600160a01b038216600482015260240161051c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b031684604051610e2091906112cc565b5f60405180830381855af49150503d805f8114610e58576040519150601f19603f3d011682016040523d82523d5f602084013e610e5d565b606091505b5091509150610e6d858383610e95565b95945050505050565b34156104e25760405163b398979f60e01b815260040160405180910390fd5b606082610eaa57610ea582610ef1565b610ab4565b8151158015610ec157506001600160a01b0384163b155b15610eea57604051639996b31560e01b81526001600160a01b038516600482015260240161051c565b5092915050565b805115610f015780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5b83811015610f34578181015183820152602001610f1c565b50505f910152565b602081525f8251806020840152610f5a816040850160208701610f1a565b601f01601f19169190910160400192915050565b5f805f8060608587031215610f81575f80fd5b84359350602085013567ffffffffffffffff80821115610f9f575f80fd5b818701915087601f830112610fb2575f80fd5b813581811115610fc0575f80fd5b8860208260051b8501011115610fd4575f80fd5b60209290920194509092505060408501357fffffffff0000000000000000000000000000000000000000000000000000000081168114611012575f80fd5b939692955090935050565b80356001600160a01b0381168114610c45575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611058575f80fd5b6110618361101d565b9150602083013567ffffffffffffffff8082111561107d575f80fd5b818501915085601f830112611090575f80fd5b8135818111156110a2576110a2611033565b604051601f8201601f19908116603f011681019083821181831017156110ca576110ca611033565b816040528281528860208487010111156110e2575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f60208284031215611113575f80fd5b610ab48261101d565b5f855161112d818460208a01610f1a565b61103b60f11b908301908152855161114c816002840160208a01610f1a565b808201915050601760f91b8060028301528551611170816003850160208a01610f1a565b6003920191820152835161118b816004840160208801610f1a565b016004019695505050505050565b858152608060208201528360808201525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8511156111d6575f80fd5b8460051b808760a08501376001600160a01b03949094166040830152507fffffffff000000000000000000000000000000000000000000000000000000009190911660608201520160a0019392505050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161124d5761124d611228565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b80820180821115610a6957610a69611228565b5f6020828403121561128b575f80fd5b5051919050565b634e487b7160e01b5f52602160045260245ffd5b60208101605483106112c657634e487b7160e01b5f52602160045260245ffd5b91905290565b5f82516112dd818460208701610f1a565b919091019291505056fea164736f6c6343000818000a",
  "deployedBytecode": "0x6080604052600436106100c3575f3560e01c806379ba509711610071578063ad3cb1cc1161004c578063ad3cb1cc146101e2578063e30c39781461022a578063f2fde38b1461023e575f80fd5b806379ba50971461016f5780638ada066e146101835780638da5cb5b146101b6575f80fd5b806352d1902d116100a157806352d1902d146101255780636c2eb35014610147578063715018a61461015b575f80fd5b80630d8e6e2c146100c75780633263b83b146100f15780634f1ef28614610112575b5f80fd5b3480156100d2575f80fd5b506100db61025d565b6040516100e89190610f3c565b60405180910390f35b3480156100fc575f80fd5b5061011061010b366004610f6e565b6102d8565b005b610110610120366004611047565b61038f565b348015610130575f80fd5b506101396103ae565b6040519081526020016100e8565b348015610152575f80fd5b506101106103dc565b348015610166575f80fd5b506101106104d1565b34801561017a575f80fd5b506101106104e4565b34801561018e575f80fd5b507fd86fa2a52e99634194c279afa011b5f5166614c3198dd09bbd002d5fb5c0bc0054610139565b3480156101c1575f80fd5b506101ca610531565b6040516001600160a01b0390911681526020016100e8565b3480156101ed575f80fd5b506100db6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b348015610235575f80fd5b506101ca610565565b348015610249575f80fd5b50610110610258366004611103565b61058d565b60606040518060400160405280601081526020017f44656372797074696f6e4f7261636c650000000000000000000000000000000081525061029e5f610612565b6102a86001610612565b6102b15f610612565b6040516020016102c4949392919061111c565b604051602081830303815290604052905090565b6103138383808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506106af92505050565b7fd86fa2a52e99634194c279afa011b5f5166614c3198dd09bbd002d5fb5c0bc0080546040517ff9a580b32950f598a0b7fe0edf634b8af409702fb0fedad9ec367ce0e87fcbfd9061036e9088908890889033908990611199565b60405180910390a28054815f6103838361123c565b91905055505050505050565b610397610736565b6103a0826107ed565b6103aa82826107f5565b5050565b5f6103b76108c9565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0080546002919068010000000000000000900460ff168061042b5750805467ffffffffffffffff808416911610155b156104495760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff8316176801000000000000000017815561048061047b610531565b610912565b805468ff00000000000000001916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050565b6104d9610923565b6104e25f610955565b565b33806104ee610565565b6001600160a01b0316146105255760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61052e81610955565b50565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610555565b610595610923565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b03831690811782556105d9610531565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60605f61061e8361098d565b60010190505f8167ffffffffffffffff81111561063d5761063d611033565b6040519080825280601f01601f191660200182016040528015610667576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461067157509392505050565b5f805b8251811015610707575f8382815181106106ce576106ce611254565b602002602001015190505f6106e282610a6f565b90506106ed81610abb565b6106fb9061ffff1685611268565b935050506001016106b2565b506108008111156103aa5760405163e7f4895d60e01b815261080060048201526024810182905260440161051c565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806107cf57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107c37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156104e25760405163703e46dd60e11b815260040160405180910390fd5b61052e610923565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561084f575060408051601f3d908101601f1916820190925261084c9181019061127b565b60015b61087757604051634c9c8ce360e01b81526001600160a01b038316600482015260240161051c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146108ba57604051632a87526960e21b81526004810182905260240161051c565b6108c48383610c4a565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e25760405163703e46dd60e11b815260040160405180910390fd5b61091a610c9f565b61052e81610ced565b3361092c610531565b6001600160a01b0316146104e25760405163118cdaa760e01b815233600482015260240161051c565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556103aa82610d1e565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106109d5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610a01576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a1f57662386f26fc10000830492506010015b6305f5e1008310610a37576305f5e100830492506008015b6127108310610a4b57612710830492506004015b60648310610a5d576064830492506002015b600a8310610a69576001015b92915050565b5f600882901c60ff166053811115610a9f5760405163641950d760e01b815260ff8216600482015260240161051c565b8060ff166053811115610ab457610ab4611292565b9392505050565b5f80826053811115610acf57610acf611292565b03610adc57506002919050565b6002826053811115610af057610af0611292565b03610afd57506008919050565b6003826053811115610b1157610b11611292565b03610b1e57506010919050565b6004826053811115610b3257610b32611292565b03610b3f57506020919050565b6005826053811115610b5357610b53611292565b03610b6057506040919050565b6006826053811115610b7457610b74611292565b03610b8157506080919050565b6007826053811115610b9557610b95611292565b03610ba2575060a0919050565b6008826053811115610bb657610bb6611292565b03610bc45750610100919050565b6009826053811115610bd857610bd8611292565b03610be65750610200919050565b600a826053811115610bfa57610bfa611292565b03610c085750610400919050565b600b826053811115610c1c57610c1c611292565b03610c2a5750610800919050565b8160405163be7830b160e01b815260040161051c91906112a6565b919050565b610c5382610d8e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115610c97576108c48282610e04565b6103aa610e76565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166104e257604051631afcd79f60e31b815260040160405180910390fd5b610cf5610c9f565b6001600160a01b03811661052557604051631e4fbdf760e01b81525f600482015260240161051c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b806001600160a01b03163b5f03610dc357604051634c9c8ce360e01b81526001600160a01b038216600482015260240161051c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b031684604051610e2091906112cc565b5f60405180830381855af49150503d805f8114610e58576040519150601f19603f3d011682016040523d82523d5f602084013e610e5d565b606091505b5091509150610e6d858383610e95565b95945050505050565b34156104e25760405163b398979f60e01b815260040160405180910390fd5b606082610eaa57610ea582610ef1565b610ab4565b8151158015610ec157506001600160a01b0384163b155b15610eea57604051639996b31560e01b81526001600160a01b038516600482015260240161051c565b5092915050565b805115610f015780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f5b83811015610f34578181015183820152602001610f1c565b50505f910152565b602081525f8251806020840152610f5a816040850160208701610f1a565b601f01601f19169190910160400192915050565b5f805f8060608587031215610f81575f80fd5b84359350602085013567ffffffffffffffff80821115610f9f575f80fd5b818701915087601f830112610fb2575f80fd5b813581811115610fc0575f80fd5b8860208260051b8501011115610fd4575f80fd5b60209290920194509092505060408501357fffffffff0000000000000000000000000000000000000000000000000000000081168114611012575f80fd5b939692955090935050565b80356001600160a01b0381168114610c45575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611058575f80fd5b6110618361101d565b9150602083013567ffffffffffffffff8082111561107d575f80fd5b818501915085601f830112611090575f80fd5b8135818111156110a2576110a2611033565b604051601f8201601f19908116603f011681019083821181831017156110ca576110ca611033565b816040528281528860208487010111156110e2575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f60208284031215611113575f80fd5b610ab48261101d565b5f855161112d818460208a01610f1a565b61103b60f11b908301908152855161114c816002840160208a01610f1a565b808201915050601760f91b8060028301528551611170816003850160208a01610f1a565b6003920191820152835161118b816004840160208801610f1a565b016004019695505050505050565b858152608060208201528360808201525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8511156111d6575f80fd5b8460051b808760a08501376001600160a01b03949094166040830152507fffffffff000000000000000000000000000000000000000000000000000000009190911660608201520160a0019392505050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161124d5761124d611228565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b80820180821115610a6957610a69611228565b5f6020828403121561128b575f80fd5b5051919050565b634e487b7160e01b5f52602160045260245ffd5b60208101605483106112c657634e487b7160e01b5f52602160045260245ffd5b91905290565b5f82516112dd818460208701610f1a565b919091019291505056fea164736f6c6343000818000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
