{
  "_format": "hh3-artifact-1",
  "contractName": "DirectAllocation",
  "sourceName": "contracts/allocate/DirectAllocation.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "graphToken",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessControlBadConfirmation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "neededRole",
          "type": "bytes32"
        }
      ],
      "name": "AccessControlUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EnforcedPause",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ExpectedPause",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "GovernorCannotBeZeroAddress",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "GraphTokenCannotBeZeroAddress",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "SendTokensFailed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "BeforeIssuanceAllocationChange",
      "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": "oldIssuanceAllocator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newIssuanceAllocator",
          "type": "address"
        }
      ],
      "name": "IssuanceAllocatorSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "TokensSent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GOVERNOR_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MILLION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "OPERATOR_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "beforeIssuanceAllocationChange",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "getRoleMember",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleMemberCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleMembers",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "governor",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "callerConfirmation",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "sendTokens",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "issuanceAllocator",
          "type": "address"
        }
      ],
      "name": "setIssuanceAllocator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a03461011957601f6112da38819003918201601f19168301916001600160401b0383118484101761011d5780849260209460405283398101031261011957516001600160a01b0381169081900361011957801561010a576080525f5160206112ba5f395f51905f525460ff8160401c166100fb576002600160401b03196001600160401b038216016100a5575b604051611188908161013282396080518161095e0152f35b6001600160401b0319166001600160401b039081175f5160206112ba5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61008d565b63f92ee8a960e01b5f5260045ffd5b6369e4eeb360e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610a395750806305ab421d146108cd578063248a9ca3146108a75780632f2ff15d1461087657806332bc934c1461085957806336568abe14610815578063389ed267146107ee5780633df8d682146107b85780633f4ba83a1461073a5780635c975abb1461070c5780638456cb591461069b5780639010d07c1461064a57806391d14854146105f5578063931c0ac114610592578063a217fddf14610578578063a3246ad3146104bd578063c4d66de8146101c3578063ca15c8731461018d578063ccc5749014610166578063d547741f1461012e5763f5b541a614610103575f80fd5b3461012a575f36600319011261012a5760206040515f5160206110b35f395f51905f528152f35b5f80fd5b3461012a57604036600319011261012a5761016460043561014d610b08565b9061015f61015a82610b54565b610bce565b610c81565b005b3461012a575f36600319011261012a5760206040515f5160206110935f395f51905f528152f35b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f52602052602060405f2054604051908152f35b3461012a57602036600319011261012a576101dc610af2565b5f5160206111335f395f51905f52549060ff8260401c16159167ffffffffffffffff8116801590816104b5575b60011490816104ab575b1590816104a2575b506104935767ffffffffffffffff1981166001175f5160206111335f395f51905f525582610467575b5061024d611007565b610255611007565b6001600160a01b038116908115610458575f5160206110935f395f51905f525f8181525f5160206110d35f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8048054908390556103a893929182905f5160206110335f395f51905f529080a45f5160206111135f395f51905f525f8181525f5160206110d35f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a45f5160206110b35f395f51905f525f8181525f5160206110d35f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a4610cc3565b610406575b506103b457005b60ff60401b195f5160206111335f395f51905f5254165f5160206111335f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b5f5160206110935f395f51905f525f525f5160206110535f395f51905f52602052610451907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e610ec4565b50816103ad565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111335f395f51905f525582610244565b63f92ee8a960e01b5f5260045ffd5b9050158461021b565b303b159150610213565b849150610209565b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f5260205260405f20604051806020835491828152019081935f5260205f20905f5b8181106105625750505081610517910382610b1e565b604051918291602083019060208452518091526040830191905f5b818110610540575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610532565b8254845260209093019260019283019201610501565b3461012a575f36600319011261012a5760206040515f8152f35b3461012a57602036600319011261012a576105ab610af2565b50335f9081525f5160206110735f395f51905f52602052604090205460ff16156105d157005b63e2517d3f60e01b5f52336004525f5160206110935f395f51905f5260245260445ffd5b3461012a57604036600319011261012a5761060e610b08565b6004355f525f5160206110d35f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461012a57604036600319011261012a576004355f525f5160206110535f395f51905f52602052602061068260243560405f20610e9b565b905460405160039290921b1c6001600160a01b03168152f35b3461012a575f36600319011261012a576106b3610b72565b6106bb610c14565b600160ff195f5160206110f35f395f51905f525416175f5160206110f35f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461012a575f36600319011261012a57602060ff5f5160206110f35f395f51905f5254166040519015158152f35b3461012a575f36600319011261012a57610752610b72565b5f5160206110f35f395f51905f525460ff8116156107a95760ff19165f5160206110f35f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461012a575f36600319011261012a577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194065f80a1005b3461012a575f36600319011261012a5760206040515f5160206111135f395f51905f528152f35b3461012a57604036600319011261012a5761082e610b08565b336001600160a01b0382160361084a5761016490600435610c81565b63334bd91960e11b5f5260045ffd5b3461012a575f36600319011261012a576020604051620f42408152f35b3461012a57604036600319011261012a57610164600435610895610b08565b906108a261015a82610b54565b610c3b565b3461012a57602036600319011261012a5760206108c5600435610b54565b604051908152f35b3461012a57604036600319011261012a576108e6610af2565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb4566020526040902054602435919060ff1615610a1557610929610c14565b60405163a9059cbb60e01b81526001600160a01b03918216600482018190526024820184905291602090829060449082905f907f0000000000000000000000000000000000000000000000000000000000000000165af1908115610a0a575f916109cf575b50156109ba577ff18d5a93c62c1d0c761ed52107f11d20bc2071851206b79c4dd3283bd9f006f15f80a3005b636e4cad2760e01b5f5260045260245260445ffd5b90506020813d602011610a02575b816109ea60209383610b1e565b8101031261012a5751801515810361012a578361098e565b3d91506109dd565b6040513d5f823e3d90fd5b63e2517d3f60e01b5f52336004525f5160206110b35f395f51905f5260245260445ffd5b3461012a57602036600319011261012a576004359063ffffffff60e01b821680920361012a5760209163aee4dc4360e01b8114908115610ae1575b8115610a82575b5015158152f35b631cf1473b60e31b811491508115610a9c575b5083610a7b565b635a05180f60e01b811491508115610ab6575b5083610a95565b637965db0b60e01b811491508115610ad0575b5083610aaf565b6301ffc9a760e01b14905083610ac9565b6305ab421d60e01b81149150610a74565b600435906001600160a01b038216820361012a57565b602435906001600160a01b038216820361012a57565b90601f8019910116810190811067ffffffffffffffff821117610b4057604052565b634e487b7160e01b5f52604160045260245ffd5b5f525f5160206110d35f395f51905f52602052600160405f20015490565b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615610baa57565b63e2517d3f60e01b5f52336004525f5160206111135f395f51905f5260245260445ffd5b5f8181525f5160206110d35f395f51905f526020908152604080832033845290915290205460ff1615610bfe5750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f5160206110f35f395f51905f525416610c2c57565b63d93c066560e01b5f5260045ffd5b610c458282610d5b565b9182610c5057505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610ec4565b5090565b610c8b8282610dff565b9182610c9657505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610f2e565b6001600160a01b0381165f9081525f5160206110735f395f51905f52602052604090205460ff16610d56576001600160a01b03165f8181525f5160206110735f395f51905f5260205260408120805460ff191660011790553391905f5160206110935f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b8054821015610eb0575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6001810190825f528160205260405f2054155f14610f27578054600160401b811015610b4057610f14610efe826001879401855584610e9b565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b5050505f90565b906001820191815f528260205260405f20548015155f14610fff575f198101818111610feb5782545f19810191908211610feb57818103610fb6575b50505080548015610fa2575f190190610f838282610e9b565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b610fd6610fc6610efe9386610e9b565b90549060031b1c92839286610e9b565b90555f528360205260405f20555f8080610f6a565b634e487b7160e01b5f52601160045260245ffd5b505050505f90565b60ff5f5160206111335f395f51905f525460401c161561102357565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8037935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5597667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a93583cfff6989675398f4134c525d42c7ffd7b7b98bd4b985519a0bc4e3788364736f6c63430008210033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00",
  "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610a395750806305ab421d146108cd578063248a9ca3146108a75780632f2ff15d1461087657806332bc934c1461085957806336568abe14610815578063389ed267146107ee5780633df8d682146107b85780633f4ba83a1461073a5780635c975abb1461070c5780638456cb591461069b5780639010d07c1461064a57806391d14854146105f5578063931c0ac114610592578063a217fddf14610578578063a3246ad3146104bd578063c4d66de8146101c3578063ca15c8731461018d578063ccc5749014610166578063d547741f1461012e5763f5b541a614610103575f80fd5b3461012a575f36600319011261012a5760206040515f5160206110b35f395f51905f528152f35b5f80fd5b3461012a57604036600319011261012a5761016460043561014d610b08565b9061015f61015a82610b54565b610bce565b610c81565b005b3461012a575f36600319011261012a5760206040515f5160206110935f395f51905f528152f35b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f52602052602060405f2054604051908152f35b3461012a57602036600319011261012a576101dc610af2565b5f5160206111335f395f51905f52549060ff8260401c16159167ffffffffffffffff8116801590816104b5575b60011490816104ab575b1590816104a2575b506104935767ffffffffffffffff1981166001175f5160206111335f395f51905f525582610467575b5061024d611007565b610255611007565b6001600160a01b038116908115610458575f5160206110935f395f51905f525f8181525f5160206110d35f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8048054908390556103a893929182905f5160206110335f395f51905f529080a45f5160206111135f395f51905f525f8181525f5160206110d35f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a45f5160206110b35f395f51905f525f8181525f5160206110d35f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a4610cc3565b610406575b506103b457005b60ff60401b195f5160206111335f395f51905f5254165f5160206111335f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b5f5160206110935f395f51905f525f525f5160206110535f395f51905f52602052610451907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e610ec4565b50816103ad565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111335f395f51905f525582610244565b63f92ee8a960e01b5f5260045ffd5b9050158461021b565b303b159150610213565b849150610209565b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f5260205260405f20604051806020835491828152019081935f5260205f20905f5b8181106105625750505081610517910382610b1e565b604051918291602083019060208452518091526040830191905f5b818110610540575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610532565b8254845260209093019260019283019201610501565b3461012a575f36600319011261012a5760206040515f8152f35b3461012a57602036600319011261012a576105ab610af2565b50335f9081525f5160206110735f395f51905f52602052604090205460ff16156105d157005b63e2517d3f60e01b5f52336004525f5160206110935f395f51905f5260245260445ffd5b3461012a57604036600319011261012a5761060e610b08565b6004355f525f5160206110d35f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461012a57604036600319011261012a576004355f525f5160206110535f395f51905f52602052602061068260243560405f20610e9b565b905460405160039290921b1c6001600160a01b03168152f35b3461012a575f36600319011261012a576106b3610b72565b6106bb610c14565b600160ff195f5160206110f35f395f51905f525416175f5160206110f35f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461012a575f36600319011261012a57602060ff5f5160206110f35f395f51905f5254166040519015158152f35b3461012a575f36600319011261012a57610752610b72565b5f5160206110f35f395f51905f525460ff8116156107a95760ff19165f5160206110f35f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461012a575f36600319011261012a577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194065f80a1005b3461012a575f36600319011261012a5760206040515f5160206111135f395f51905f528152f35b3461012a57604036600319011261012a5761082e610b08565b336001600160a01b0382160361084a5761016490600435610c81565b63334bd91960e11b5f5260045ffd5b3461012a575f36600319011261012a576020604051620f42408152f35b3461012a57604036600319011261012a57610164600435610895610b08565b906108a261015a82610b54565b610c3b565b3461012a57602036600319011261012a5760206108c5600435610b54565b604051908152f35b3461012a57604036600319011261012a576108e6610af2565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb4566020526040902054602435919060ff1615610a1557610929610c14565b60405163a9059cbb60e01b81526001600160a01b03918216600482018190526024820184905291602090829060449082905f907f0000000000000000000000000000000000000000000000000000000000000000165af1908115610a0a575f916109cf575b50156109ba577ff18d5a93c62c1d0c761ed52107f11d20bc2071851206b79c4dd3283bd9f006f15f80a3005b636e4cad2760e01b5f5260045260245260445ffd5b90506020813d602011610a02575b816109ea60209383610b1e565b8101031261012a5751801515810361012a578361098e565b3d91506109dd565b6040513d5f823e3d90fd5b63e2517d3f60e01b5f52336004525f5160206110b35f395f51905f5260245260445ffd5b3461012a57602036600319011261012a576004359063ffffffff60e01b821680920361012a5760209163aee4dc4360e01b8114908115610ae1575b8115610a82575b5015158152f35b631cf1473b60e31b811491508115610a9c575b5083610a7b565b635a05180f60e01b811491508115610ab6575b5083610a95565b637965db0b60e01b811491508115610ad0575b5083610aaf565b6301ffc9a760e01b14905083610ac9565b6305ab421d60e01b81149150610a74565b600435906001600160a01b038216820361012a57565b602435906001600160a01b038216820361012a57565b90601f8019910116810190811067ffffffffffffffff821117610b4057604052565b634e487b7160e01b5f52604160045260245ffd5b5f525f5160206110d35f395f51905f52602052600160405f20015490565b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615610baa57565b63e2517d3f60e01b5f52336004525f5160206111135f395f51905f5260245260445ffd5b5f8181525f5160206110d35f395f51905f526020908152604080832033845290915290205460ff1615610bfe5750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f5160206110f35f395f51905f525416610c2c57565b63d93c066560e01b5f5260045ffd5b610c458282610d5b565b9182610c5057505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610ec4565b5090565b610c8b8282610dff565b9182610c9657505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610f2e565b6001600160a01b0381165f9081525f5160206110735f395f51905f52602052604090205460ff16610d56576001600160a01b03165f8181525f5160206110735f395f51905f5260205260408120805460ff191660011790553391905f5160206110935f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b8054821015610eb0575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6001810190825f528160205260405f2054155f14610f27578054600160401b811015610b4057610f14610efe826001879401855584610e9b565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b5050505f90565b906001820191815f528260205260405f20548015155f14610fff575f198101818111610feb5782545f19810191908211610feb57818103610fb6575b50505080548015610fa2575f190190610f838282610e9b565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b610fd6610fc6610efe9386610e9b565b90549060031b1c92839286610e9b565b90555f528360205260405f20555f8080610f6a565b634e487b7160e01b5f52601160045260245ffd5b505050505f90565b60ff5f5160206111335f395f51905f525460401c161561102357565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8037935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5597667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a93583cfff6989675398f4134c525d42c7ffd7b7b98bd4b985519a0bc4e3788364736f6c63430008210033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {
    "14015": [
      {
        "length": 32,
        "start": 2398
      }
    ]
  },
  "inputSourceName": "project/contracts/allocate/DirectAllocation.sol",
  "buildInfoId": "solc-0_8_33-4b238b4fe0cedd7be5f2b0aa5999a5f7433e9c71"
}