@secure-ci/core
Version:
Smart contracts for the Secure Contract Interaction protocol
298 lines (297 loc) • 26.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "SCI",
"sourceName": "contracts/SCI.sol",
"abi": [
{
"inputs": [],
"name": "InvalidInitialization",
"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"
},
{
"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": "oldRegistryAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newRegistryAddress",
"type": "address"
}
],
"name": "RegistrySet",
"type": "event"
},
{
"inputs": [],
"name": "acceptOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "domainHash",
"type": "bytes32"
}
],
"name": "domainHashToRecord",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "contract IVerifier",
"name": "verifier",
"type": "address"
},
{
"internalType": "uint256",
"name": "lastOwnerSetTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastVerifierSetTime",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "domainHash",
"type": "bytes32"
},
{
"internalType": "address",
"name": "contractAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"name": "isVerifiedForDomainHash",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "domainHashes",
"type": "bytes32[]"
},
{
"internalType": "address",
"name": "contractAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"name": "isVerifiedForMultipleDomainHashes",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"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": "registry",
"outputs": [
{
"internalType": "contract ISciRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newRegistry",
"type": "address"
}
],
"name": "setRegistry",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080604052348015600f57600080fd5b506113e38061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610143578063929d1ac114610161578063a91ee0dc14610191578063c4d66de8146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae5780635b377fa2146100de578063715018a61461011157806379ba50971461011b5780637b10399914610125575b600080fd5b6100c860048036038101906100c39190610d2e565b610203565b6040516100d59190610d90565b60405180910390f35b6100f860048036038101906100f39190610dab565b61036c565b6040516101089493929190610e46565b60405180910390f35b61011961041b565b005b61012361042f565b005b61012d6104be565b60405161013a9190610eac565b60405180910390f35b61014b6104e2565b6040516101589190610ec7565b60405180910390f35b61017b6004803603810190610176919061103b565b61051a565b6040516101889190611168565b60405180910390f35b6101ab60048036038101906101a6919061118a565b6105d7565b005b6101c760048036038101906101c2919061118a565b6106a3565b005b6101d161083a565b6040516101de9190610ec7565b60405180910390f35b61020160048036038101906101fc919061118a565b610872565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f91906111c6565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611249565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112b0565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036191906112e7565b9150505b9392505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b81526004016103cb91906111c6565b608060405180830381865afa1580156103e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040c9190611249565b93509350935093509193509193565b61042361092e565b61042d60006109b5565b565b60006104396109f5565b90508073ffffffffffffffffffffffffffffffffffffffff1661045a61083a565b73ffffffffffffffffffffffffffffffffffffffff16146104b257806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104a99190610ec7565b60405180910390fd5b6104bb816109b5565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806104ed6109fd565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff81111561053957610538610ef8565b5b6040519080825280602002602001820160405280156105675781602001602082028036833780820191505090505b50905060008551905060005b818110156105ca576105a087828151811061059157610590611314565b5b60200260200101518787610203565b8382815181106105b3576105b2611314565b5b602002602001018181525050806001019050610573565b5081925050509392505050565b6105df61092e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60006106ad610a25565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156106fb5750825b9050600060018367ffffffffffffffff16148015610730575060003073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561073e575080155b15610775576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107c55760018560000160086101000a81548160ff0219169083151502179055505b6107cd610a4d565b6107d686610a57565b83156108325760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516108299190611392565b60405180910390a15b505050505050565b600080610845610a6b565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61087a61092e565b6000610884610a6b565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108e86104e2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6109366109f5565b73ffffffffffffffffffffffffffffffffffffffff166109546104e2565b73ffffffffffffffffffffffffffffffffffffffff16146109b3576109776109f5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109aa9190610ec7565b60405180910390fd5b565b60006109bf610a6b565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556109f182610a93565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610a55610b6a565b565b610a5f610b6a565b610a6881610baa565b50565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b6000610a9d6109fd565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b610b72610c30565b610ba8576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610bb2610b6a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c245760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c1b9190610ec7565b60405180910390fd5b610c2d816109b5565b50565b6000610c3a610a25565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c7781610c64565b8114610c8257600080fd5b50565b600081359050610c9481610c6e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cc582610c9a565b9050919050565b610cd581610cba565b8114610ce057600080fd5b50565b600081359050610cf281610ccc565b92915050565b6000819050919050565b610d0b81610cf8565b8114610d1657600080fd5b50565b600081359050610d2881610d02565b92915050565b600080600060608486031215610d4757610d46610c5a565b5b6000610d5586828701610c85565b9350506020610d6686828701610ce3565b9250506040610d7786828701610d19565b9150509250925092565b610d8a81610cf8565b82525050565b6000602082019050610da56000830184610d81565b92915050565b600060208284031215610dc157610dc0610c5a565b5b6000610dcf84828501610c85565b91505092915050565b610de181610cba565b82525050565b6000819050919050565b6000610e0c610e07610e0284610c9a565b610de7565b610c9a565b9050919050565b6000610e1e82610df1565b9050919050565b6000610e3082610e13565b9050919050565b610e4081610e25565b82525050565b6000608082019050610e5b6000830187610dd8565b610e686020830186610e37565b610e756040830185610d81565b610e826060830184610d81565b95945050505050565b6000610e9682610e13565b9050919050565b610ea681610e8b565b82525050565b6000602082019050610ec16000830184610e9d565b92915050565b6000602082019050610edc6000830184610dd8565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f3082610ee7565b810181811067ffffffffffffffff82111715610f4f57610f4e610ef8565b5b80604052505050565b6000610f62610c50565b9050610f6e8282610f27565b919050565b600067ffffffffffffffff821115610f8e57610f8d610ef8565b5b602082029050602081019050919050565b600080fd5b6000610fb7610fb284610f73565b610f58565b90508083825260208201905060208402830185811115610fda57610fd9610f9f565b5b835b818110156110035780610fef8882610c85565b845260208401935050602081019050610fdc565b5050509392505050565b600082601f83011261102257611021610ee2565b5b8135611032848260208601610fa4565b91505092915050565b60008060006060848603121561105457611053610c5a565b5b600084013567ffffffffffffffff81111561107257611071610c5f565b5b61107e8682870161100d565b935050602061108f86828701610ce3565b92505060406110a086828701610d19565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6110df81610cf8565b82525050565b60006110f183836110d6565b60208301905092915050565b6000602082019050919050565b6000611115826110aa565b61111f81856110b5565b935061112a836110c6565b8060005b8381101561115b57815161114288826110e5565b975061114d836110fd565b92505060018101905061112e565b5085935050505092915050565b60006020820190508181036000830152611182818461110a565b905092915050565b6000602082840312156111a05761119f610c5a565b5b60006111ae84828501610ce3565b91505092915050565b6111c081610c64565b82525050565b60006020820190506111db60008301846111b7565b92915050565b6000815190506111f081610ccc565b92915050565b600061120182610cba565b9050919050565b611211816111f6565b811461121c57600080fd5b50565b60008151905061122e81611208565b92915050565b60008151905061124381610d02565b92915050565b6000806000806080858703121561126357611262610c5a565b5b6000611271878288016111e1565b94505060206112828782880161121f565b935050604061129387828801611234565b92505060606112a487828801611234565b91505092959194509250565b60006060820190506112c560008301866111b7565b6112d26020830185610dd8565b6112df6040830184610d81565b949350505050565b6000602082840312156112fd576112fc610c5a565b5b600061130b84828501611234565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600067ffffffffffffffff82169050919050565b600061137c61137761137284611343565b610de7565b61134d565b9050919050565b61138c81611361565b82525050565b60006020820190506113a76000830184611383565b9291505056fea26469706673582212201ab8f3e8d83ebc6a7a28cc343212fca89b4982bab4de1b8f9e91d000b53858c364736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610143578063929d1ac114610161578063a91ee0dc14610191578063c4d66de8146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae5780635b377fa2146100de578063715018a61461011157806379ba50971461011b5780637b10399914610125575b600080fd5b6100c860048036038101906100c39190610d2e565b610203565b6040516100d59190610d90565b60405180910390f35b6100f860048036038101906100f39190610dab565b61036c565b6040516101089493929190610e46565b60405180910390f35b61011961041b565b005b61012361042f565b005b61012d6104be565b60405161013a9190610eac565b60405180910390f35b61014b6104e2565b6040516101589190610ec7565b60405180910390f35b61017b6004803603810190610176919061103b565b61051a565b6040516101889190611168565b60405180910390f35b6101ab60048036038101906101a6919061118a565b6105d7565b005b6101c760048036038101906101c2919061118a565b6106a3565b005b6101d161083a565b6040516101de9190610ec7565b60405180910390f35b61020160048036038101906101fc919061118a565b610872565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f91906111c6565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611249565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112b0565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036191906112e7565b9150505b9392505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b81526004016103cb91906111c6565b608060405180830381865afa1580156103e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040c9190611249565b93509350935093509193509193565b61042361092e565b61042d60006109b5565b565b60006104396109f5565b90508073ffffffffffffffffffffffffffffffffffffffff1661045a61083a565b73ffffffffffffffffffffffffffffffffffffffff16146104b257806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104a99190610ec7565b60405180910390fd5b6104bb816109b5565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806104ed6109fd565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff81111561053957610538610ef8565b5b6040519080825280602002602001820160405280156105675781602001602082028036833780820191505090505b50905060008551905060005b818110156105ca576105a087828151811061059157610590611314565b5b60200260200101518787610203565b8382815181106105b3576105b2611314565b5b602002602001018181525050806001019050610573565b5081925050509392505050565b6105df61092e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60006106ad610a25565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156106fb5750825b9050600060018367ffffffffffffffff16148015610730575060003073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561073e575080155b15610775576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107c55760018560000160086101000a81548160ff0219169083151502179055505b6107cd610a4d565b6107d686610a57565b83156108325760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516108299190611392565b60405180910390a15b505050505050565b600080610845610a6b565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61087a61092e565b6000610884610a6b565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108e86104e2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6109366109f5565b73ffffffffffffffffffffffffffffffffffffffff166109546104e2565b73ffffffffffffffffffffffffffffffffffffffff16146109b3576109776109f5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109aa9190610ec7565b60405180910390fd5b565b60006109bf610a6b565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556109f182610a93565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610a55610b6a565b565b610a5f610b6a565b610a6881610baa565b50565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b6000610a9d6109fd565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b610b72610c30565b610ba8576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610bb2610b6a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c245760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c1b9190610ec7565b60405180910390fd5b610c2d816109b5565b50565b6000610c3a610a25565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c7781610c64565b8114610c8257600080fd5b50565b600081359050610c9481610c6e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cc582610c9a565b9050919050565b610cd581610cba565b8114610ce057600080fd5b50565b600081359050610cf281610ccc565b92915050565b6000819050919050565b610d0b81610cf8565b8114610d1657600080fd5b50565b600081359050610d2881610d02565b92915050565b600080600060608486031215610d4757610d46610c5a565b5b6000610d5586828701610c85565b9350506020610d6686828701610ce3565b9250506040610d7786828701610d19565b9150509250925092565b610d8a81610cf8565b82525050565b6000602082019050610da56000830184610d81565b92915050565b600060208284031215610dc157610dc0610c5a565b5b6000610dcf84828501610c85565b91505092915050565b610de181610cba565b82525050565b6000819050919050565b6000610e0c610e07610e0284610c9a565b610de7565b610c9a565b9050919050565b6000610e1e82610df1565b9050919050565b6000610e3082610e13565b9050919050565b610e4081610e25565b82525050565b6000608082019050610e5b6000830187610dd8565b610e686020830186610e37565b610e756040830185610d81565b610e826060830184610d81565b95945050505050565b6000610e9682610e13565b9050919050565b610ea681610e8b565b82525050565b6000602082019050610ec16000830184610e9d565b92915050565b6000602082019050610edc6000830184610dd8565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f3082610ee7565b810181811067ffffffffffffffff82111715610f4f57610f4e610ef8565b5b80604052505050565b6000610f62610c50565b9050610f6e8282610f27565b919050565b600067ffffffffffffffff821115610f8e57610f8d610ef8565b5b602082029050602081019050919050565b600080fd5b6000610fb7610fb284610f73565b610f58565b90508083825260208201905060208402830185811115610fda57610fd9610f9f565b5b835b818110156110035780610fef8882610c85565b845260208401935050602081019050610fdc565b5050509392505050565b600082601f83011261102257611021610ee2565b5b8135611032848260208601610fa4565b91505092915050565b60008060006060848603121561105457611053610c5a565b5b600084013567ffffffffffffffff81111561107257611071610c5f565b5b61107e8682870161100d565b935050602061108f86828701610ce3565b92505060406110a086828701610d19565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6110df81610cf8565b82525050565b60006110f183836110d6565b60208301905092915050565b6000602082019050919050565b6000611115826110aa565b61111f81856110b5565b935061112a836110c6565b8060005b8381101561115b57815161114288826110e5565b975061114d836110fd565b92505060018101905061112e565b5085935050505092915050565b60006020820190508181036000830152611182818461110a565b905092915050565b6000602082840312156111a05761119f610c5a565b5b60006111ae84828501610ce3565b91505092915050565b6111c081610c64565b82525050565b60006020820190506111db60008301846111b7565b92915050565b6000815190506111f081610ccc565b92915050565b600061120182610cba565b9050919050565b611211816111f6565b811461121c57600080fd5b50565b60008151905061122e81611208565b92915050565b60008151905061124381610d02565b92915050565b6000806000806080858703121561126357611262610c5a565b5b6000611271878288016111e1565b94505060206112828782880161121f565b935050604061129387828801611234565b92505060606112a487828801611234565b91505092959194509250565b60006060820190506112c560008301866111b7565b6112d26020830185610dd8565b6112df6040830184610d81565b949350505050565b6000602082840312156112fd576112fc610c5a565b5b600061130b84828501611234565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600067ffffffffffffffff82169050919050565b600061137c61137761137284611343565b610de7565b61134d565b9050919050565b61138c81611361565b82525050565b60006020820190506113a76000830184611383565b9291505056fea26469706673582212201ab8f3e8d83ebc6a7a28cc343212fca89b4982bab4de1b8f9e91d000b53858c364736f6c634300081c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}