{ "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "dataKey", "type": "string" }, { "indexed": false, "internalType": "string", "name": "ipfsCid", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "BackupCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "phrase", "type": "string" }, { "indexed": true, "internalType": "address", "name": "proposer", "type": "address" } ], "name": "EntryProposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "rejector", "type": "address" } ], "name": "EntryRejected", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "verifier", "type": "address" } ], "name": "EntryVerified", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "researcher", "type": "address" }, { "indexed": false, "internalType": "string", "name": "newRole", "type": "string" } ], "name": "RankUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "researcher", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ReputationMinted", "type": "event" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "backups", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "string", "name": "dataType", "type": "string" }, { "internalType": "string", "name": "ipfsCid", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "address", "name": "uploader", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_dataKey", "type": "string" }, { "internalType": "string", "name": "_dataType", "type": "string" }, { "internalType": "string", "name": "_ipfsCid", "type": "string" }, { "internalType": "string", "name": "_description", "type": "string" } ], "name": "createBackup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "entries", "outputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "string", "name": "phrase", "type": "string" }, { "internalType": "string", "name": "dialect", "type": "string" }, { "internalType": "string", "name": "ipfsCid", "type": "string" }, { "internalType": "address", "name": "contributor", "type": "address" }, { "internalType": "string", "name": "licenseType", "type": "string" }, { "internalType": "uint256", "name": "verificationCount", "type": "uint256" }, { "internalType": "bool", "name": "isVerified", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "entryCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_dataKey", "type": "string" } ], "name": "getLatestBackup", "outputs": [ { "internalType": "string", "name": "ipfsCid", "type": "string" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getLicenseInfo", "outputs": [ { "internalType": "string", "name": "license", "type": "string" }, { "internalType": "address", "name": "contributor", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "hasRejected", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "hasVerified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "labAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_phrase", "type": "string" }, { "internalType": "string", "name": "_dialect", "type": "string" }, { "internalType": "string", "name": "_ipfsCid", "type": "string" }, { "internalType": "string", "name": "_license", "type": "string" }, { "internalType": "address", "name": "_contributor", "type": "address" } ], "name": "proposeEntry", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "string", "name": "_initialRole", "type": "string" } ], "name": "registerResearcher", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "rejectEntry", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rejectionCounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "researchers", "outputs": [ { "internalType": "bool", "name": "isRegistered", "type": "bool" }, { "internalType": "uint256", "name": "reputationScore", "type": "uint256" }, { "internalType": "string", "name": "role", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "verifyEntry", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "60806040523480156200001157600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060600160405280600115158152602001606481526020016040518060400160405280600581526020017f41646d696e0000000000000000000000000000000000000000000000000000008152508152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020190805190602001906200012d92919062000137565b509050506200024c565b8280546200014590620001e7565b90600052602060002090601f016020900481019282620001695760008555620001b5565b82601f106200018457805160ff1916838001178555620001b5565b82800160010185558215620001b5579182015b82811115620001b457825182559160200191906001019062000197565b5b509050620001c49190620001c8565b5090565b5b80821115620001e3576000816000905550600101620001c9565b5090565b600060028204905060018216806200020057607f821691505b602082108114156200021757620002166200021d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612f35806200025c6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638c06062c116100a2578063d17007b511610071578063d17007b5146102d6578063d40f299a14610306578063e8a3c5a714610322578063efebb04414610356578063f3c2cf65146103725761010b565b80638c06062c1461024957806395d89b4114610265578063b30906d414610283578063b6602c3a146102ba5761010b565b806356563e4a116100de57806356563e4a146101ac57806362da8313146101dc57806379a0f97b146101fa57806386c8ce7f1461022b5761010b565b806301bc237d1461011057806306fdde031461014257806308a0e3131461016057806320fb56291461017c575b600080fd5b61012a60048036038101906101259190612224565b6103a3565b6040516101399392919061292a565b60405180910390f35b61014a610462565b6040516101579190612968565b60405180910390f35b61017a600480360381019061017591906123a5565b61049b565b005b610196600480360381019061019191906124f9565b610826565b6040516101a3919061290f565b60405180910390f35b6101c660048036038101906101c191906124f9565b610855565b6040516101d3919061290f565b60405180910390f35b6101e4610884565b6040516101f19190612aea565b60405180910390f35b610214600480360381019061020f91906122a1565b61088a565b6040516102229291906129ba565b60405180910390f35b610233610bbb565b60405161024091906128f4565b60405180910390f35b610263600480360381019061025e91906124d0565b610be1565b005b61026d610e90565b60405161027a9190612968565b60405180910390f35b61029d600480360381019061029891906124d0565b610ec9565b6040516102b1989796959493929190612b6d565b60405180910390f35b6102d460048036038101906102cf91906122e2565b61115e565b005b6102f060048036038101906102eb91906124d0565b611375565b6040516102fd9190612aea565b60405180910390f35b610320600480360381019061031b919061224d565b61138d565b005b61033c6004803603810190610337919061247c565b6114d1565b60405161034d959493929190612b05565b60405180910390f35b610370600480360381019061036b91906124d0565b6116f2565b005b61038c600480360381019061038791906124d0565b611a57565b60405161039a92919061298a565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020180546103df90612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461040b90612db8565b80156104585780601f1061042d57610100808354040283529160200191610458565b820191906000526020600020905b81548152906001019060200180831161043b57829003601f168201915b5050505050905083565b6040518060400160405280601f81526020017f50757265566572736174696f6e2052657365617263682052656769737472790081525081565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052090612a6a565b60405180910390fd5b6002600081548092919061053c90612dea565b919050555060405180610100016040528060025481526020018681526020018581526020018481526020018273ffffffffffffffffffffffffffffffffffffffff16815260200183815260200160008152602001600015158152506003600060025481526020019081526020016000206000820151816000015560208201518160010190805190602001906105d29291906120ef565b5060408201518160020190805190602001906105ef9291906120ef565b50606082015181600301908051906020019061060c9291906120ef565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050190805190602001906106709291906120ef565b5060c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050508073ffffffffffffffffffffffffffffffffffffffff166002547f41bbb82aa0096a4ef6e73d180bcf005a06dae558a2bd374fefd8e9d3d116d693876040516106e79190612968565b60405180910390a36000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661081f576040518060600160405280600115158152602001600081526020016040518060400160405280600881526020017f496e6974696174650000000000000000000000000000000000000000000000008152508152506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155604082015181600201908051906020019061081a9291906120ef565b509050505b5050505050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60025481565b606060008060048460405161089f91906128b1565b908152602001604051809103902080549050116108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890612a8a565b60405180910390fd5b600060048460405161090391906128b1565b9081526020016040518091039020600160048660405161092391906128b1565b90815260200160405180910390208054905061093f9190612cfa565b81548110610976577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600502016040518060a0016040529081600082015481526020016001820180546109a990612db8565b80601f01602080910402602001604051908101604052809291908181526020018280546109d590612db8565b8015610a225780601f106109f757610100808354040283529160200191610a22565b820191906000526020600020905b815481529060010190602001808311610a0557829003601f168201915b50505050508152602001600282018054610a3b90612db8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6790612db8565b8015610ab45780601f10610a8957610100808354040283529160200191610ab4565b820191906000526020600020905b815481529060010190602001808311610a9757829003601f168201915b50505050508152602001600382018054610acd90612db8565b80601f0160208091040260200160405190810160405280929190818152602001828054610af990612db8565b8015610b465780601f10610b1b57610100808354040283529160200191610b46565b820191906000526020600020905b815481529060010190602001808311610b2957829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806040015181600001519250925050915091565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6690612a6a565b60405180910390fd5b6003600082815260200190815260200160002060070160009054906101000a900460ff1615610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca906129ea565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610d3757610d3281611b3d565b610e8d565b6006600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc90612aaa565b60405180910390fd5b60016006600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600760008281526020019081526020016000206000815480929190610e6290612dea565b91905055506003600760008381526020019081526020016000205410610e8c57610e8b81611b3d565b5b5b50565b6040518060400160405280600981526020017f564552534154494f4e000000000000000000000000000000000000000000000081525081565b6003602052806000526040600020600091509050806000015490806001018054610ef290612db8565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1e90612db8565b8015610f6b5780601f10610f4057610100808354040283529160200191610f6b565b820191906000526020600020905b815481529060010190602001808311610f4e57829003601f168201915b505050505090806002018054610f8090612db8565b80601f0160208091040260200160405190810160405280929190818152602001828054610fac90612db8565b8015610ff95780601f10610fce57610100808354040283529160200191610ff9565b820191906000526020600020905b815481529060010190602001808311610fdc57829003601f168201915b50505050509080600301805461100e90612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461103a90612db8565b80156110875780601f1061105c57610100808354040283529160200191611087565b820191906000526020600020905b81548152906001019060200180831161106a57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050180546110c290612db8565b80601f01602080910402602001604051908101604052809291908181526020018280546110ee90612db8565b801561113b5780601f106111105761010080835404028352916020019161113b565b820191906000526020600020905b81548152906001019060200180831161111e57829003601f168201915b5050505050908060060154908060070160009054906101000a900460ff16905088565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff166111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612a6a565b60405180910390fd5b60006040518060a001604052804281526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250905060048560405161123d91906128b1565b908152602001604051809103902081908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000155602082015181600101908051906020019061129b9291906120ef565b5060408201518160020190805190602001906112b89291906120ef565b5060608201518160030190805190602001906112d59291906120ef565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050508460405161132d91906128b1565b60405180910390207f55e378dbc81cbf3764f2fdc9915435a0de49effbb859d048f04415a779e4055184426040516113669291906129ba565b60405180910390a25050505050565b60076020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490612a2a565b60405180910390fd5b6040518060600160405280600115158152602001600a8152602001828152506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020190805190602001906114c09291906120ef565b509050506114cd82611bcb565b5050565b600482805160208101820180518482526020830160208501208183528095505050505050818154811061150357600080fd5b90600052602060002090600502016000915091505080600001549080600101805461152d90612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461155990612db8565b80156115a65780601f1061157b576101008083540402835291602001916115a6565b820191906000526020600020905b81548152906001019060200180831161158957829003601f168201915b5050505050908060020180546115bb90612db8565b80601f01602080910402602001604051908101604052809291908181526020018280546115e790612db8565b80156116345780601f1061160957610100808354040283529160200191611634565b820191906000526020600020905b81548152906001019060200180831161161757829003601f168201915b50505050509080600301805461164990612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461167590612db8565b80156116c25780601f10611697576101008083540402835291602001916116c2565b820191906000526020600020905b8154815290600101906020018083116116a557829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16611780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177790612a6a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90612aca565b60405180910390fd5b6003600082815260200190815260200160002060070160009054906101000a900460ff1615611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612a0a565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118ed576118e881611e8b565b611a49565b6005600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561198b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198290612a4a565b60405180910390fd5b60016005600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600360008281526020019081526020016000206006016000815480929190611a1b90612dea565b91905055506002600360008381526020019081526020016000206006015410611a4857611a4781611e8b565b5b5b611a5433600a611f42565b50565b60606000600360008481526020019081526020016000206005016003600085815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16818054611ab490612db8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ae090612db8565b8015611b2d5780601f10611b0257610100808354040283529160200191611b2d565b820191906000526020600020905b815481529060010190602001808311611b1057829003601f168201915b5050505050915091509150915091565b60006003600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611b8381600a611ff5565b3373ffffffffffffffffffffffffffffffffffffffff16827f3eacba1ffefb355646272b609f3eba7aa492e7f0eae1d9a94d019a2bbcca4b8160405160405180910390a35050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050604051602001611c1c906128df565b6040516020818303038152906040528051906020012081600201604051602001611c4691906128c8565b604051602081830303815290604052805190602001201415611c685750611e88565b60008160010154905060606105dc8210611cb9576040518060400160405280600681526020017f4f7261636c6500000000000000000000000000000000000000000000000000008152509050611dc6565b6103208210611cff576040518060400160405280600981526020017f41726368697669737400000000000000000000000000000000000000000000008152509050611dc5565b61012c8210611d45576040518060400160405280600881526020017f4c696e67756973740000000000000000000000000000000000000000000000008152509050611dc4565b60648210611d8a576040518060400160405280600581526020017f53636f75740000000000000000000000000000000000000000000000000000008152509050611dc3565b6040518060400160405280600881526020017f496e69746961746500000000000000000000000000000000000000000000000081525090505b5b5b5b80604051602001611dd791906128b1565b6040516020818303038152906040528051906020012083600201604051602001611e0191906128c8565b6040516020818303038152906040528051906020012014611e845780836002019080519060200190611e349291906120ef565b508373ffffffffffffffffffffffffffffffffffffffff167f38b44ef000ae19b1706917d3ee6c5625716848370f1af5a83e5e6e40484696a482604051611e7b9190612968565b60405180910390a25b5050505b50565b60016003600083815260200190815260200160002060070160006101000a81548160ff021916908315150217905550611efb6003600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166032611f42565b3373ffffffffffffffffffffffffffffffffffffffff16817f82a82ea54aa0cfb8695810af1805d7f37f71a2683a57dc52567342b0a001f85260405160405180910390a350565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611f939190612ca4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f42bcf4689d0211adce4e556ee455319d34e671e8b8a762034e146461fb1be82d82604051611fe09190612aea565b60405180910390a2611ff182611bcb565b5050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541061209a57806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461208e9190612cfa565b925050819055506120e2565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b6120eb82611bcb565b5050565b8280546120fb90612db8565b90600052602060002090601f01602090048101928261211d5760008555612164565b82601f1061213657805160ff1916838001178555612164565b82800160010185558215612164579182015b82811115612163578251825591602001919060010190612148565b5b5090506121719190612175565b5090565b5b8082111561218e576000816000905550600101612176565b5090565b60006121a56121a084612c38565b612c07565b9050828152602081018484840111156121bd57600080fd5b6121c8848285612d76565b509392505050565b6000813590506121df81612ed1565b92915050565b600082601f8301126121f657600080fd5b8135612206848260208601612192565b91505092915050565b60008135905061221e81612ee8565b92915050565b60006020828403121561223657600080fd5b6000612244848285016121d0565b91505092915050565b6000806040838503121561226057600080fd5b600061226e858286016121d0565b925050602083013567ffffffffffffffff81111561228b57600080fd5b612297858286016121e5565b9150509250929050565b6000602082840312156122b357600080fd5b600082013567ffffffffffffffff8111156122cd57600080fd5b6122d9848285016121e5565b91505092915050565b600080600080608085870312156122f857600080fd5b600085013567ffffffffffffffff81111561231257600080fd5b61231e878288016121e5565b945050602085013567ffffffffffffffff81111561233b57600080fd5b612347878288016121e5565b935050604085013567ffffffffffffffff81111561236457600080fd5b612370878288016121e5565b925050606085013567ffffffffffffffff81111561238d57600080fd5b612399878288016121e5565b91505092959194509250565b600080600080600060a086880312156123bd57600080fd5b600086013567ffffffffffffffff8111156123d757600080fd5b6123e3888289016121e5565b955050602086013567ffffffffffffffff81111561240057600080fd5b61240c888289016121e5565b945050604086013567ffffffffffffffff81111561242957600080fd5b612435888289016121e5565b935050606086013567ffffffffffffffff81111561245257600080fd5b61245e888289016121e5565b925050608061246f888289016121d0565b9150509295509295909350565b6000806040838503121561248f57600080fd5b600083013567ffffffffffffffff8111156124a957600080fd5b6124b5858286016121e5565b92505060206124c68582860161220f565b9150509250929050565b6000602082840312156124e257600080fd5b60006124f08482850161220f565b91505092915050565b6000806040838503121561250c57600080fd5b600061251a8582860161220f565b925050602061252b858286016121d0565b9150509250929050565b61253e81612d2e565b82525050565b61254d81612d40565b82525050565b600061255e82612c7d565b6125688185612c88565b9350612578818560208601612d85565b61258181612ec0565b840191505092915050565b600061259782612c7d565b6125a18185612c99565b93506125b1818560208601612d85565b80840191505092915050565b600081546125ca81612db8565b6125d48186612c99565b945060018216600081146125ef576001811461260057612633565b60ff19831686528186019350612633565b61260985612c68565b60005b8381101561262b5781548189015260018201915060208101905061260c565b838801955050505b50505092915050565b6000612649602783612c88565b91507f43616e6e6f742072656a65637420616e20616c7265616479207665726966696560008301527f6420656e747279000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006126af601083612c88565b91507f416c7265616479207665726966696564000000000000000000000000000000006000830152602082019050919050565b60006126ef601a83612c88565b91507f4f6e6c79204c61622041646d696e2063616e20646f20746869730000000000006000830152602082019050919050565b600061272f600583612c99565b91507f41646d696e0000000000000000000000000000000000000000000000000000006000830152600582019050919050565b600061276f601783612c88565b91507f416c726561647920766572696669656420627920796f750000000000000000006000830152602082019050919050565b60006127af601d83612c88565b91507f4d757374206265207265676973746572656420726573656172636865720000006000830152602082019050919050565b60006127ef601083612c88565b91507f4e6f206261636b75707320666f756e64000000000000000000000000000000006000830152602082019050919050565b600061282f601783612c88565b91507f416c72656164792072656a656374656420627920796f750000000000000000006000830152602082019050919050565b600061286f601783612c88565b91507f43616e6e6f7420766572696679206f776e20656e7472790000000000000000006000830152602082019050919050565b6128ab81612d6c565b82525050565b60006128bd828461258c565b915081905092915050565b60006128d482846125bd565b915081905092915050565b60006128ea82612722565b9150819050919050565b60006020820190506129096000830184612535565b92915050565b60006020820190506129246000830184612544565b92915050565b600060608201905061293f6000830186612544565b61294c60208301856128a2565b818103604083015261295e8184612553565b9050949350505050565b600060208201905081810360008301526129828184612553565b905092915050565b600060408201905081810360008301526129a48185612553565b90506129b36020830184612535565b9392505050565b600060408201905081810360008301526129d48185612553565b90506129e360208301846128a2565b9392505050565b60006020820190508181036000830152612a038161263c565b9050919050565b60006020820190508181036000830152612a23816126a2565b9050919050565b60006020820190508181036000830152612a43816126e2565b9050919050565b60006020820190508181036000830152612a6381612762565b9050919050565b60006020820190508181036000830152612a83816127a2565b9050919050565b60006020820190508181036000830152612aa3816127e2565b9050919050565b60006020820190508181036000830152612ac381612822565b9050919050565b60006020820190508181036000830152612ae381612862565b9050919050565b6000602082019050612aff60008301846128a2565b92915050565b600060a082019050612b1a60008301886128a2565b8181036020830152612b2c8187612553565b90508181036040830152612b408186612553565b90508181036060830152612b548185612553565b9050612b636080830184612535565b9695505050505050565b600061010082019050612b83600083018b6128a2565b8181036020830152612b95818a612553565b90508181036040830152612ba98189612553565b90508181036060830152612bbd8188612553565b9050612bcc6080830187612535565b81810360a0830152612bde8186612553565b9050612bed60c08301856128a2565b612bfa60e0830184612544565b9998505050505050505050565b6000604051905081810181811067ffffffffffffffff82111715612c2e57612c2d612e91565b5b8060405250919050565b600067ffffffffffffffff821115612c5357612c52612e91565b5b601f19601f8301169050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000612caf82612d6c565b9150612cba83612d6c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612cef57612cee612e33565b5b828201905092915050565b6000612d0582612d6c565b9150612d1083612d6c565b925082821015612d2357612d22612e33565b5b828203905092915050565b6000612d3982612d4c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612da3578082015181840152602081019050612d88565b83811115612db2576000848401525b50505050565b60006002820490506001821680612dd057607f821691505b60208210811415612de457612de3612e62565b5b50919050565b6000612df582612d6c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612e2857612e27612e33565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b612eda81612d2e565b8114612ee557600080fd5b50565b612ef181612d6c565b8114612efc57600080fd5b5056fea26469706673582212207aabd3bff3ed7bcf5b68e253bb08c3fc682d85f50187aa15729a5fa85b5a096364736f6c63430008000033" }