dgf-prototype/backend/contractArtifacts/Onboarding.json

486 lines
64 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "Onboarding",
"sourceName": "contracts/Onboarding.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract DAO",
"name": "dao_",
"type": "address"
},
{
"internalType": "contract Proposals",
"name": "proposals_",
"type": "address"
},
{
"internalType": "uint256",
"name": "price_",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
}
],
"name": "AvailabilityStaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "priceProposalIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "PriceChangeAccepted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "priceProposalIndex",
"type": "uint256"
}
],
"name": "PriceChangeProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "approval",
"type": "bool"
}
],
"name": "WorkApprovalSubmitted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
}
],
"name": "WorkAssigned",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
}
],
"name": "WorkEvidenceSubmitted",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "acceptAvailability",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "extendAvailability",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "onProposalAccepted",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "onValidate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "price",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "priceProposalCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "priceProposals",
"outputs": [
{
"internalType": "uint256",
"name": "price",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newPrice",
"type": "uint256"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"internalType": "uint256[3]",
"name": "durations",
"type": "uint256[3]"
}
],
"name": "proposeNewPrice",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "requestCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "requestPostId",
"type": "string"
}
],
"name": "requestWork",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "requests",
"outputs": [
{
"internalType": "address",
"name": "customer",
"type": "address"
},
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"internalType": "enum Work.WorkStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
},
{
"internalType": "string",
"name": "requestPostId",
"type": "string"
},
{
"internalType": "string",
"name": "evidencePostId",
"type": "string"
},
{
"internalType": "bool",
"name": "approval",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stakeCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakes",
"outputs": [
{
"internalType": "address",
"name": "worker",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTime",
"type": "uint256"
},
{
"internalType": "bool",
"name": "assigned",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approval",
"type": "bool"
}
],
"name": "submitWorkApproval",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "requestIndex",
"type": "uint256"
},
{
"internalType": "string",
"name": "evidencePostId",
"type": "string"
},
{
"components": [
{
"internalType": "int256",
"name": "weightPPM",
"type": "int256"
},
{
"internalType": "string",
"name": "targetPostId",
"type": "string"
}
],
"internalType": "struct Citation[]",
"name": "citations",
"type": "tuple[]"
}
],
"name": "submitWorkEvidence",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a06040523480156200001157600080fd5b50604051620036be380380620036be8339818101604052810190620000379190620001c4565b82828282808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050508060038190555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000220565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f882620000cb565b9050919050565b60006200010c82620000eb565b9050919050565b6200011e81620000ff565b81146200012a57600080fd5b50565b6000815190506200013e8162000113565b92915050565b60006200015182620000eb565b9050919050565b620001638162000144565b81146200016f57600080fd5b50565b600081519050620001838162000158565b92915050565b6000819050919050565b6200019e8162000189565b8114620001aa57600080fd5b50565b600081519050620001be8162000193565b92915050565b600080600060608486031215620001e057620001df620000c6565b5b6000620001f0868287016200012d565b9350506020620002038682870162000172565b92505060406200021686828701620001ad565b9150509250925092565b60805161345862000266600039600081816104dc01528181610a4901528181610b1901528181610c3601528181610e490152818161106301526110f501526134586000f3fe6080604052600436106100e85760003560e01c8063a035b1fe1161008a578063cf37625611610059578063cf376256146102de578063d0fae95f1461031c578063d5a44f8614610345578063d76b679414610385576100e8565b8063a035b1fe14610222578063b4e6a1d51461024d578063b5b20c001461028a578063c4a9e116146102b3576100e8565b8063815a0572116100c6578063815a05721461015d57806381d12c581461019a578063854b6a4f146101dd57806399ad6c5614610206576100e8565b80630d0271d6146100ed578063216ed6ad146101095780635badbe4c14610132575b600080fd5b61010760048036038101906101029190611883565b6103b0565b005b34801561011557600080fd5b50610130600480360381019061012b9190611964565b6104da565b005b34801561013e57600080fd5b5061014761067a565b60405161015491906119c6565b60405180910390f35b34801561016957600080fd5b50610184600480360381019061017f9190611a37565b610680565b60405161019191906119c6565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611aab565b6106ff565b6040516101d49796959493929190611c09565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190611cb2565b61088b565b005b610220600480360381019061021b9190611d14565b610cf6565b005b34801561022e57600080fd5b50610237610e3f565b60405161024491906119c6565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190611d88565b610e45565b60405161028191906119c6565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611e22565b6111f3565b005b3480156102bf57600080fd5b506102c8611367565b6040516102d591906119c6565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190611aab565b61136d565b604051610313929190611e62565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190611ee1565b611391565b005b34801561035157600080fd5b5061036c60048036038101906103679190611aab565b6115c9565b60405161037c9493929190611f76565b60405180910390f35b34801561039157600080fd5b5061039a611626565b6040516103a791906119c6565b60405180910390f35b6003543410156103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90612007565b60405180910390fd5b60006007600081548092919061040a90612056565b9190505590506000600660008381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034816001018190555061047b61162c565b816003018190555083838260040191826104969291906122e4565b507fd9e7f38a71691fb1db2da17057c03d381a42a9925350883f10e8e5d0bca4a3b48282600301546040516104cc929190611e62565b60405180910390a150505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f90612426565b60405180910390fd5b600082116105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a290612492565b60405180910390fd5b6000600160008154809291906105c090612056565b91905055905060008060008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160010181905550824261063491906124b2565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98260405161066b91906119c6565b60405180910390a15050505050565b60075481565b60008083838101906106929190611aab565b9050600060046000838152602001908152602001600020905080600001546003819055507f6a3843c02c26620842ae8496fd3afcb44b27463b3808e2ccdae4bcee5a2e3f20826003546040516106e9929190611e62565b60405180910390a1600092505050949350505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff169080600301549080600401805461076790612107565b80601f016020809104026020016040519081016040528092919081815260200182805461079390612107565b80156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050908060050180546107f590612107565b80601f016020809104026020016040519081016040528092919081815260200182805461082190612107565b801561086e5780601f106108435761010080835404028352916020019161086e565b820191906000526020600020905b81548152906001019060200180831161085157829003601f168201915b5050505050908060070160009054906101000a900460ff16905087565b6000600660008481526020019081526020016000209050600160038111156108b6576108b5611ae7565b5b8160020160009054906101000a900460ff1660038111156108da576108d9611ae7565b5b1461091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190612532565b60405180910390fd5b600080600083600301548152602001908152602001600020905060028260020160006101000a81548160ff0219169083600381111561095c5761095b611ae7565b5b0217905550828260070160006101000a81548160ff0219169083151502179055506000600167ffffffffffffffff81111561099a576109996120a9565b5b6040519080825280602002602001820160405280156109d357816020015b6109c06117e4565b8152602001906001900390816109b85790505b5090506040518060400160405280620f424081526020018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525081600081518110610a3c57610a3b612552565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600501866006016040518463ffffffff1660e01b8152600401610aaa939291906128ef565b600060405180830381600087803b158015610ac457600080fd5b505af1158015610ad8573d6000803e3d6000fd5b505050507f470d2978e081461f6d144c091dfd83ec06e6011da0b03bd1c0121b7fb71370dc8585604051610b0d92919061293b565b60405180910390a160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8660010154610b649190612993565b8660010154610b7391906129c4565b8660050160146040518060400160405280600181526020016003815250604051806040016040528060018152602001600281525060646001808f604051602001610bbd91906119c6565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401610bef989796959493929190612b24565b60206040518083038185885af1158015610c0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c329190612bc7565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3828560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866001015460016040518563ffffffff1660e01b8152600401610cbc9493929190612bf4565b600060405180830381600087803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b50505050505050505050565b600060056000815480929190610d0b90612056565b9190505590506000600460008381526020019081526020016000209050858160000181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cac152a434878787600188604051602001610d8691906119c6565b6040516020818303038152906040526040518763ffffffff1660e01b8152600401610db5959493929190612c8e565b60206040518083038185885af1158015610dd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df89190612bc7565b81600101819055507f71eae802097e4e77c5345dee7f35d74ac0ae45eb5a456fdaed0de4d141fc5d8c82604051610e2f91906119c6565b60405180910390a1505050505050565b60035481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc90612d55565b60405180910390fd5b60008383810190610ee69190611aab565b90506000600660008381526020019081526020016000209050881580610f0a575087155b15610f95578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a8360010154610f5e9190612993565b9081150290604051600060405180830381858888f19350505050158015610f89573d6000803e3d6000fd5b506001925050506111e9565b60606000600167ffffffffffffffff811115610fb457610fb36120a9565b5b604051908082528060200260200182016040528015610fed57816020015b610fda6117e4565b815260200190600190039081610fd25790505b5090506040518060400160405280620f424081526020018460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508160008151811061105657611055612552565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600401856040518463ffffffff1660e01b81526004016110c193929190612e9c565b600060405180830381600087803b1580156110db57600080fd5b505af11580156110ef573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a85600101546111409190612993565b856004016014604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518963ffffffff1660e01b815260040161119c9796959493929190612f0e565b60206040518083038185885af11580156111ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111df9190612bc7565b5060009450505050505b9695505050505050565b600080600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112929061300c565b60405180910390fd5b8060030160009054906101000a900460ff16156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061309e565b60405180910390fd5b806002015442111561131257814261130591906124b2565b816002018190555061132b565b81816002015461132291906124b2565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98360405161135a91906119c6565b60405180910390a1505050565b60015481565b60046020528060005260406000206000915090508060000154908060010154905082565b6000600660008781526020019081526020016000209050600060038111156113bc576113bb611ae7565b5b8160020160009054906101000a900460ff1660038111156113e0576113df611ae7565b5b14611420576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114179061310a565b60405180910390fd5b60008060008360030154815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061319c565b60405180910390fd5b60018260020160006101000a81548160ff021916908360038111156114f4576114f3611ae7565b5b0217905550858583600501918261150c9291906122e4565b5060005b84849050811015611588578260060185858381811061153257611531612552565b5b905060200281019061154491906131cb565b908060018154018082558091505060019003906000526020600020906002020160009091909190915081816115799190613377565b50508080600101915050611510565b507ffaecd3b4db089bf25a48306100dd5fb2152e3887c7815b2b221dbb7da2f8e8dc876040516115b891906119c6565b60405180910390a150505050505050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60055481565b600061163661166f565b90506000806000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055505090565b60008060005b6001548110156116f35760008082815260200190815260200160002060030160009054906101000a900460ff166116e6576000808281526020019081526020016000206002015442116116e65760008082815260200190815260200160002060010154826116e391906124b2565b91505b8080600101915050611675565b5060008111611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e906133d1565b60405180910390fd5b6000814461174591906133f1565b9050600080600090505b6001548110156117dd5760008082815260200190815260200160002060030160009054906101000a900460ff166117d0576000808281526020019081526020016000206002015442116117d05760008082815260200190815260200160002060010154826117bd91906124b2565b9150828211156117cf578094506117dd565b5b808060010191505061174f565b5050505090565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126118435761184261181e565b5b8235905067ffffffffffffffff8111156118605761185f611823565b5b60208301915083600182028301111561187c5761187b611828565b5b9250929050565b6000806020838503121561189a57611899611814565b5b600083013567ffffffffffffffff8111156118b8576118b7611819565b5b6118c48582860161182d565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118fb826118d0565b9050919050565b61190b816118f0565b811461191657600080fd5b50565b60008135905061192881611902565b92915050565b6000819050919050565b6119418161192e565b811461194c57600080fd5b50565b60008135905061195e81611938565b92915050565b60008060006060848603121561197d5761197c611814565b5b600061198b86828701611919565b935050602061199c8682870161194f565b92505060406119ad8682870161194f565b9150509250925092565b6119c08161192e565b82525050565b60006020820190506119db60008301846119b7565b92915050565b60008083601f8401126119f7576119f661181e565b5b8235905067ffffffffffffffff811115611a1457611a13611823565b5b602083019150836001820283011115611a3057611a2f611828565b5b9250929050565b60008060008060608587031215611a5157611a50611814565b5b6000611a5f8782880161194f565b9450506020611a708782880161194f565b935050604085013567ffffffffffffffff811115611a9157611a90611819565b5b611a9d878288016119e1565b925092505092959194509250565b600060208284031215611ac157611ac0611814565b5b6000611acf8482850161194f565b91505092915050565b611ae1816118f0565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611b2757611b26611ae7565b5b50565b6000819050611b3882611b16565b919050565b6000611b4882611b2a565b9050919050565b611b5881611b3d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b98578082015181840152602081019050611b7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bc082611b5e565b611bca8185611b69565b9350611bda818560208601611b7a565b611be381611ba4565b840191505092915050565b60008115159050919050565b611c0381611bee565b82525050565b600060e082019050611c1e600083018a611ad8565b611c2b60208301896119b7565b611c386040830188611b4f565b611c4560608301876119b7565b8181036080830152611c578186611bb5565b905081810360a0830152611c6b8185611bb5565b9050611c7a60c0830184611bfa565b98975050505050505050565b611c8f81611bee565b8114611c9a57600080fd5b50565b600081359050611cac81611c86565b92915050565b60008060408385031215611cc957611cc8611814565b5b6000611cd78582860161194f565b9250506020611ce885828601611c9d565b9150509250929050565b600081905082602060030282011115611d0e57611d0d611828565b5b92915050565b60008060008060a08587031215611d2e57611d2d611814565b5b6000611d3c8782880161194f565b945050602085013567ffffffffffffffff811115611d5d57611d5c611819565b5b611d698782880161182d565b93509350506040611d7c87828801611cf2565b91505092959194509250565b60008060008060008060a08789031215611da557611da4611814565b5b6000611db389828a01611c9d565b9650506020611dc489828a01611c9d565b9550506040611dd589828a0161194f565b9450506060611de689828a0161194f565b935050608087013567ffffffffffffffff811115611e0757611e06611819565b5b611e1389828a016119e1565b92509250509295509295509295565b60008060408385031215611e3957611e38611814565b5b6000611e478582860161194f565b9250506020611e588582860161194f565b9150509250929050565b6000604082019050611e7760008301856119b7565b611e8460208301846119b7565b9392505050565b60008083601f840112611ea157611ea061181e565b5b8235905067ffffffffffffffff811115611ebe57611ebd611823565b5b602083019150836020820283011115611eda57611ed9611828565b5b9250929050565b600080600080600060608688031215611efd57611efc611814565b5b6000611f0b8882890161194f565b955050602086013567ffffffffffffffff811115611f2c57611f2b611819565b5b611f388882890161182d565b9450945050604086013567ffffffffffffffff811115611f5b57611f5a611819565b5b611f6788828901611e8b565b92509250509295509295909350565b6000608082019050611f8b6000830187611ad8565b611f9860208301866119b7565b611fa560408301856119b7565b611fb26060830184611bfa565b95945050505050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b6000611ff1601083611b69565b9150611ffc82611fbb565b602082019050919050565b6000602082019050818103600083015261202081611fe4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120618261192e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361209357612092612027565b5b600182019050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061211f57607f821691505b602082108103612132576121316120d8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261219a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261215d565b6121a4868361215d565b95508019841693508086168417925050509392505050565b6000819050919050565b60006121e16121dc6121d78461192e565b6121bc565b61192e565b9050919050565b6000819050919050565b6121fb836121c6565b61220f612207826121e8565b84845461216a565b825550505050565b600090565b612224612217565b61222f8184846121f2565b505050565b5b818110156122535761224860008261221c565b600181019050612235565b5050565b601f8211156122985761226981612138565b6122728461214d565b81016020851015612281578190505b61229561228d8561214d565b830182612234565b50505b505050565b600082821c905092915050565b60006122bb6000198460080261229d565b1980831691505092915050565b60006122d483836122aa565b9150826002028217905092915050565b6122ee838361209e565b67ffffffffffffffff811115612307576123066120a9565b5b6123118254612107565b61231c828285612257565b6000601f83116001811461234b5760008415612339578287013590505b61234385826122c8565b8655506123ab565b601f19841661235986612138565b60005b828110156123815784890135825560018201915060208501945060208101905061235c565b8683101561239e578489013561239a601f8916826122aa565b8355505b6001600288020188555050505b50505050505050565b7f616363657074417661696c6162696c697479206d757374206f6e6c792062652060008201527f63616c6c65642062792044414f20636f6e747261637400000000000000000000602082015250565b6000612410603683611b69565b915061241b826123b4565b604082019050919050565b6000602082019050818103600083015261243f81612403565b9050919050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b600061247c601183611b69565b915061248782612446565b602082019050919050565b600060208201905081810360008301526124ab8161246f565b9050919050565b60006124bd8261192e565b91506124c88361192e565b92508282019050808211156124e0576124df612027565b5b92915050565b7f537461747573206d7573742062652045766964656e63655375626d6974746564600082015250565b600061251c602083611b69565b9150612527826124e6565b602082019050919050565b6000602082019050818103600083015261254b8161250f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125b68161192e565b82525050565b6125c5816118f0565b82525050565b6040820160008201516125e160008501826125ad565b5060208201516125f460208501826125bc565b50505050565b600061260683836125cb565b60408301905092915050565b6000602082019050919050565b600061262a82612581565b612634818561258c565b935061263f8361259d565b8060005b8381101561267057815161265788826125fa565b975061266283612612565b925050600181019050612643565b5085935050505092915050565b6000815461268a81612107565b6126948186611b69565b945060018216600081146126af57600181146126c5576126f8565b60ff1983168652811515602002860193506126f8565b6126ce85612138565b60005b838110156126f0578154818901526001820191506020810190506126d1565b808801955050505b50505092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b6000819050919050565b600061275c61275783612732565b61273f565b9050919050565b6000819050919050565b61277681612763565b82525050565b600082825260208201905092915050565b6000815461279a81612107565b6127a4818661277c565b945060018216600081146127bf57600181146127d557612808565b60ff198316865281151560200286019350612808565b6127de85612138565b60005b83811015612800578154818901526001820191506020810190506127e1565b808801955050505b50505092915050565b600060408301600080840154905061282881612749565b612835600087018261276d565b5060018401858303602087015261284c838261278d565b925050819250505092915050565b60006128668383612811565b905092915050565b6000600282019050919050565b600061288682612701565b612890818561270c565b9350836020820285016128a28561271d565b8060005b858110156128dd578484038952816128be858261285a565b94506128c98361286e565b925060208a019950506001810190506128a6565b50829750879550505050505092915050565b60006060820190508181036000830152612909818661261f565b9050818103602083015261291d818561267d565b90508181036040830152612931818461287b565b9050949350505050565b600060408201905061295060008301856119b7565b61295d6020830184611bfa565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061299e8261192e565b91506129a98361192e565b9250826129b9576129b8612964565b5b828204905092915050565b60006129cf8261192e565b91506129da8361192e565b92508282039050818111156129f2576129f1612027565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000612a2483836125ad565b60208301905092915050565b6000602082019050919050565b612a46816129f8565b612a508184612a03565b9250612a5b82612a0e565b8060005b83811015612a8c578151612a738782612a18565b9650612a7e83612a30565b925050600181019050612a5f565b505050505050565b6000819050919050565b6000612ab9612ab4612aaf84612a94565b6121bc565b61192e565b9050919050565b612ac981612a9e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000612af682612acf565b612b008185612ada565b9350612b10818560208601611b7a565b612b1981611ba4565b840191505092915050565b6000610140820190508181036000830152612b3f818b61267d565b9050612b4e602083018a6119b7565b612b5b6040830189612a3d565b612b686080830188612a3d565b612b7560c0830187612ac0565b612b8260e0830186611bfa565b612b90610100830185611bfa565b818103610120830152612ba38184612aeb565b90509998505050505050505050565b600081519050612bc181611938565b92915050565b600060208284031215612bdd57612bdc611814565b5b6000612beb84828501612bb2565b91505092915050565b6000608082019050612c0960008301876119b7565b612c166020830186611ad8565b612c2360408301856119b7565b612c306060830184611bfa565b95945050505050565b82818337600083830152505050565b6000612c548385611b69565b9350612c61838584612c39565b612c6a83611ba4565b840190509392505050565b82818337505050565b612c8a60608383612c75565b5050565b600060c0820190508181036000830152612ca9818789612c48565b9050612cb86020830186612c7e565b612cc56080830185611bfa565b81810360a0830152612cd78184612aeb565b90509695505050505050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612d3f603183611b69565b9150612d4a82612ce3565b604082019050919050565b60006020820190508181036000830152612d6e81612d32565b9050919050565b600081519050919050565b6000819050602082019050919050565b6000612d9b82611b5e565b612da5818561277c565b9350612db5818560208601611b7a565b612dbe81611ba4565b840191505092915050565b6000604083016000830151612de1600086018261276d565b5060208301518482036020860152612df98282612d90565b9150508091505092915050565b6000612e128383612dc9565b905092915050565b6000602082019050919050565b6000612e3282612d75565b612e3c818561270c565b935083602082028501612e4e85612d80565b8060005b85811015612e8a5784840389528151612e6b8582612e06565b9450612e7683612e1a565b925060208a01995050600181019050612e52565b50829750879550505050505092915050565b60006060820190508181036000830152612eb6818661261f565b90508181036020830152612eca818561267d565b90508181036040830152612ede8184612e27565b9050949350505050565b50565b6000612ef8600083612ada565b9150612f0382612ee8565b600082019050919050565b6000610140820190508181036000830152612f29818a61267d565b9050612f3860208301896119b7565b612f456040830188612a3d565b612f526080830187612a3d565b612f5f60c0830186612ac0565b612f6c60e0830185611bfa565b612f7a610100830184611bfa565b818103610120830152612f8c81612eeb565b905098975050505050505050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b6000612ff6603383611b69565b915061300182612f9a565b604082019050919050565b6000602082019050818103600083015261302581612fe9565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b6000613088602483611b69565b91506130938261302c565b604082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b7f537461747573206d757374206265205265717565737465640000000000000000600082015250565b60006130f4601883611b69565b91506130ff826130be565b602082019050919050565b60006020820190508181036000830152613123816130e7565b9050919050565b7f576f726b65722063616e206f6e6c79207375626d69742065766964656e63652060008201527f666f7220776f726b2074686579206172652061737369676e6564000000000000602082015250565b6000613186603a83611b69565b91506131918261312a565b604082019050919050565b600060208201905081810360008301526131b581613179565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126131e7576131e66131bc565b5b80830191505092915050565b6131fc81612763565b811461320757600080fd5b50565b60008135613217816131f3565b80915050919050565b60008160001b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61325984613220565b9350801983169250808416831791505092915050565b600061328a61328561328084612763565b6121bc565b612763565b9050919050565b6000819050919050565b6132a48261326f565b6132b76132b082613291565b835461322d565b8255505050565b600080833560016020038436030381126132db576132da6131bc565b5b80840192508235915067ffffffffffffffff8211156132fd576132fc6131c1565b5b602083019250600182023603831315613319576133186131c6565b5b509250929050565b61332c8383836122e4565b505050565b6000810160008301806133438161320a565b905061334f818461329b565b505050600181016020830161336481856132be565b61336f818386613321565b505050505050565b6133818282613331565b5050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006133bb601a83611b69565b91506133c682613385565b602082019050919050565b600060208201905081810360008301526133ea816133ae565b9050919050565b60006133fc8261192e565b91506134078361192e565b92508261341757613416612964565b5b82820690509291505056fea26469706673582212209d81f311d7361b0a2b6d962ab9820c8f6d8913dd22ebea3bbae7d4df035bbed564736f6c63430008180033",
"deployedBytecode": "0x6080604052600436106100e85760003560e01c8063a035b1fe1161008a578063cf37625611610059578063cf376256146102de578063d0fae95f1461031c578063d5a44f8614610345578063d76b679414610385576100e8565b8063a035b1fe14610222578063b4e6a1d51461024d578063b5b20c001461028a578063c4a9e116146102b3576100e8565b8063815a0572116100c6578063815a05721461015d57806381d12c581461019a578063854b6a4f146101dd57806399ad6c5614610206576100e8565b80630d0271d6146100ed578063216ed6ad146101095780635badbe4c14610132575b600080fd5b61010760048036038101906101029190611883565b6103b0565b005b34801561011557600080fd5b50610130600480360381019061012b9190611964565b6104da565b005b34801561013e57600080fd5b5061014761067a565b60405161015491906119c6565b60405180910390f35b34801561016957600080fd5b50610184600480360381019061017f9190611a37565b610680565b60405161019191906119c6565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611aab565b6106ff565b6040516101d49796959493929190611c09565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190611cb2565b61088b565b005b610220600480360381019061021b9190611d14565b610cf6565b005b34801561022e57600080fd5b50610237610e3f565b60405161024491906119c6565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190611d88565b610e45565b60405161028191906119c6565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611e22565b6111f3565b005b3480156102bf57600080fd5b506102c8611367565b6040516102d591906119c6565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190611aab565b61136d565b604051610313929190611e62565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190611ee1565b611391565b005b34801561035157600080fd5b5061036c60048036038101906103679190611aab565b6115c9565b60405161037c9493929190611f76565b60405180910390f35b34801561039157600080fd5b5061039a611626565b6040516103a791906119c6565b60405180910390f35b6003543410156103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90612007565b60405180910390fd5b60006007600081548092919061040a90612056565b9190505590506000600660008381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034816001018190555061047b61162c565b816003018190555083838260040191826104969291906122e4565b507fd9e7f38a71691fb1db2da17057c03d381a42a9925350883f10e8e5d0bca4a3b48282600301546040516104cc929190611e62565b60405180910390a150505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f90612426565b60405180910390fd5b600082116105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a290612492565b60405180910390fd5b6000600160008154809291906105c090612056565b91905055905060008060008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160010181905550824261063491906124b2565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98260405161066b91906119c6565b60405180910390a15050505050565b60075481565b60008083838101906106929190611aab565b9050600060046000838152602001908152602001600020905080600001546003819055507f6a3843c02c26620842ae8496fd3afcb44b27463b3808e2ccdae4bcee5a2e3f20826003546040516106e9929190611e62565b60405180910390a1600092505050949350505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff169080600301549080600401805461076790612107565b80601f016020809104026020016040519081016040528092919081815260200182805461079390612107565b80156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050908060050180546107f590612107565b80601f016020809104026020016040519081016040528092919081815260200182805461082190612107565b801561086e5780601f106108435761010080835404028352916020019161086e565b820191906000526020600020905b81548152906001019060200180831161085157829003601f168201915b5050505050908060070160009054906101000a900460ff16905087565b6000600660008481526020019081526020016000209050600160038111156108b6576108b5611ae7565b5b8160020160009054906101000a900460ff1660038111156108da576108d9611ae7565b5b1461091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190612532565b60405180910390fd5b600080600083600301548152602001908152602001600020905060028260020160006101000a81548160ff0219169083600381111561095c5761095b611ae7565b5b0217905550828260070160006101000a81548160ff0219169083151502179055506000600167ffffffffffffffff81111561099a576109996120a9565b5b6040519080825280602002602001820160405280156109d357816020015b6109c06117e4565b8152602001906001900390816109b85790505b5090506040518060400160405280620f424081526020018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525081600081518110610a3c57610a3b612552565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600501866006016040518463ffffffff1660e01b8152600401610aaa939291906128ef565b600060405180830381600087803b158015610ac457600080fd5b505af1158015610ad8573d6000803e3d6000fd5b505050507f470d2978e081461f6d144c091dfd83ec06e6011da0b03bd1c0121b7fb71370dc8585604051610b0d92919061293b565b60405180910390a160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8660010154610b649190612993565b8660010154610b7391906129c4565b8660050160146040518060400160405280600181526020016003815250604051806040016040528060018152602001600281525060646001808f604051602001610bbd91906119c6565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401610bef989796959493929190612b24565b60206040518083038185885af1158015610c0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c329190612bc7565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3828560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866001015460016040518563ffffffff1660e01b8152600401610cbc9493929190612bf4565b600060405180830381600087803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b50505050505050505050565b600060056000815480929190610d0b90612056565b9190505590506000600460008381526020019081526020016000209050858160000181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cac152a434878787600188604051602001610d8691906119c6565b6040516020818303038152906040526040518763ffffffff1660e01b8152600401610db5959493929190612c8e565b60206040518083038185885af1158015610dd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df89190612bc7565b81600101819055507f71eae802097e4e77c5345dee7f35d74ac0ae45eb5a456fdaed0de4d141fc5d8c82604051610e2f91906119c6565b60405180910390a1505050505050565b60035481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc90612d55565b60405180910390fd5b60008383810190610ee69190611aab565b90506000600660008381526020019081526020016000209050881580610f0a575087155b15610f95578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a8360010154610f5e9190612993565b9081150290604051600060405180830381858888f19350505050158015610f89573d6000803e3d6000fd5b506001925050506111e9565b60606000600167ffffffffffffffff811115610fb457610fb36120a9565b5b604051908082528060200260200182016040528015610fed57816020015b610fda6117e4565b815260200190600190039081610fd25790505b5090506040518060400160405280620f424081526020018460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152508160008151811061105657611055612552565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600401856040518463ffffffff1660e01b81526004016110c193929190612e9c565b600060405180830381600087803b1580156110db57600080fd5b505af11580156110ef573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a85600101546111409190612993565b856004016014604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518963ffffffff1660e01b815260040161119c9796959493929190612f0e565b60206040518083038185885af11580156111ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111df9190612bc7565b5060009450505050505b9695505050505050565b600080600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112929061300c565b60405180910390fd5b8060030160009054906101000a900460ff16156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061309e565b60405180910390fd5b806002015442111561131257814261130591906124b2565b816002018190555061132b565b81816002015461132291906124b2565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e98360405161135a91906119c6565b60405180910390a1505050565b60015481565b60046020528060005260406000206000915090508060000154908060010154905082565b6000600660008781526020019081526020016000209050600060038111156113bc576113bb611ae7565b5b8160020160009054906101000a900460ff1660038111156113e0576113df611ae7565b5b14611420576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114179061310a565b60405180910390fd5b60008060008360030154815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061319c565b60405180910390fd5b60018260020160006101000a81548160ff021916908360038111156114f4576114f3611ae7565b5b0217905550858583600501918261150c9291906122e4565b5060005b84849050811015611588578260060185858381811061153257611531612552565b5b905060200281019061154491906131cb565b908060018154018082558091505060019003906000526020600020906002020160009091909190915081816115799190613377565b50508080600101915050611510565b507ffaecd3b4db089bf25a48306100dd5fb2152e3887c7815b2b221dbb7da2f8e8dc876040516115b891906119c6565b60405180910390a150505050505050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60055481565b600061163661166f565b90506000806000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055505090565b60008060005b6001548110156116f35760008082815260200190815260200160002060030160009054906101000a900460ff166116e6576000808281526020019081526020016000206002015442116116e65760008082815260200190815260200160002060010154826116e391906124b2565b91505b8080600101915050611675565b5060008111611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e906133d1565b60405180910390fd5b6000814461174591906133f1565b9050600080600090505b6001548110156117dd5760008082815260200190815260200160002060030160009054906101000a900460ff166117d0576000808281526020019081526020016000206002015442116117d05760008082815260200190815260200160002060010154826117bd91906124b2565b9150828211156117cf578094506117dd565b5b808060010191505061174f565b5050505090565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126118435761184261181e565b5b8235905067ffffffffffffffff8111156118605761185f611823565b5b60208301915083600182028301111561187c5761187b611828565b5b9250929050565b6000806020838503121561189a57611899611814565b5b600083013567ffffffffffffffff8111156118b8576118b7611819565b5b6118c48582860161182d565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118fb826118d0565b9050919050565b61190b816118f0565b811461191657600080fd5b50565b60008135905061192881611902565b92915050565b6000819050919050565b6119418161192e565b811461194c57600080fd5b50565b60008135905061195e81611938565b92915050565b60008060006060848603121561197d5761197c611814565b5b600061198b86828701611919565b935050602061199c8682870161194f565b92505060406119ad8682870161194f565b9150509250925092565b6119c08161192e565b82525050565b60006020820190506119db60008301846119b7565b92915050565b60008083601f8401126119f7576119f661181e565b5b8235905067ffffffffffffffff811115611a1457611a13611823565b5b602083019150836001820283011115611a3057611a2f611828565b5b9250929050565b60008060008060608587031215611a5157611a50611814565b5b6000611a5f8782880161194f565b9450506020611a708782880161194f565b935050604085013567ffffffffffffffff811115611a9157611a90611819565b5b611a9d878288016119e1565b925092505092959194509250565b600060208284031215611ac157611ac0611814565b5b6000611acf8482850161194f565b91505092915050565b611ae1816118f0565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611b2757611b26611ae7565b5b50565b6000819050611b3882611b16565b919050565b6000611b4882611b2a565b9050919050565b611b5881611b3d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b98578082015181840152602081019050611b7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bc082611b5e565b611bca8185611b69565b9350611bda818560208601611b7a565b611be381611ba4565b840191505092915050565b60008115159050919050565b611c0381611bee565b82525050565b600060e082019050611c1e600083018a611ad8565b611c2b60208301896119b7565b611c386040830188611b4f565b611c4560608301876119b7565b8181036080830152611c578186611bb5565b905081810360a0830152611c6b8185611bb5565b9050611c7a60c0830184611bfa565b98975050505050505050565b611c8f81611bee565b8114611c9a57600080fd5b50565b600081359050611cac81611c86565b92915050565b60008060408385031215611cc957611cc8611814565b5b6000611cd78582860161194f565b9250506020611ce885828601611c9d565b9150509250929050565b600081905082602060030282011115611d0e57611d0d611828565b5b92915050565b60008060008060a08587031215611d2e57611d2d611814565b5b6000611d3c8782880161194f565b945050602085013567ffffffffffffffff811115611d5d57611d5c611819565b5b611d698782880161182d565b93509350506040611d7c87828801611cf2565b91505092959194509250565b60008060008060008060a08789031215611da557611da4611814565b5b6000611db389828a01611c9d565b9650506020611dc489828a01611c9d565b9550506040611dd589828a0161194f565b9450506060611de689828a0161194f565b935050608087013567ffffffffffffffff811115611e0757611e06611819565b5b611e1389828a016119e1565b92509250509295509295509295565b60008060408385031215611e3957611e38611814565b5b6000611e478582860161194f565b9250506020611e588582860161194f565b9150509250929050565b6000604082019050611e7760008301856119b7565b611e8460208301846119b7565b9392505050565b60008083601f840112611ea157611ea061181e565b5b8235905067ffffffffffffffff811115611ebe57611ebd611823565b5b602083019150836020820283011115611eda57611ed9611828565b5b9250929050565b600080600080600060608688031215611efd57611efc611814565b5b6000611f0b8882890161194f565b955050602086013567ffffffffffffffff811115611f2c57611f2b611819565b5b611f388882890161182d565b9450945050604086013567ffffffffffffffff811115611f5b57611f5a611819565b5b611f6788828901611e8b565b92509250509295509295909350565b6000608082019050611f8b6000830187611ad8565b611f9860208301866119b7565b611fa560408301856119b7565b611fb26060830184611bfa565b95945050505050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b6000611ff1601083611b69565b9150611ffc82611fbb565b602082019050919050565b6000602082019050818103600083015261202081611fe4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120618261192e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361209357612092612027565b5b600182019050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061211f57607f821691505b602082108103612132576121316120d8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261219a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261215d565b6121a4868361215d565b95508019841693508086168417925050509392505050565b6000819050919050565b60006121e16121dc6121d78461192e565b6121bc565b61192e565b9050919050565b6000819050919050565b6121fb836121c6565b61220f612207826121e8565b84845461216a565b825550505050565b600090565b612224612217565b61222f8184846121f2565b505050565b5b818110156122535761224860008261221c565b600181019050612235565b5050565b601f8211156122985761226981612138565b6122728461214d565b81016020851015612281578190505b61229561228d8561214d565b830182612234565b50505b505050565b600082821c905092915050565b60006122bb6000198460080261229d565b1980831691505092915050565b60006122d483836122aa565b9150826002028217905092915050565b6122ee838361209e565b67ffffffffffffffff811115612307576123066120a9565b5b6123118254612107565b61231c828285612257565b6000601f83116001811461234b5760008415612339578287013590505b61234385826122c8565b8655506123ab565b601f19841661235986612138565b60005b828110156123815784890135825560018201915060208501945060208101905061235c565b8683101561239e578489013561239a601f8916826122aa565b8355505b6001600288020188555050505b50505050505050565b7f616363657074417661696c6162696c697479206d757374206f6e6c792062652060008201527f63616c6c65642062792044414f20636f6e747261637400000000000000000000602082015250565b6000612410603683611b69565b915061241b826123b4565b604082019050919050565b6000602082019050818103600083015261243f81612403565b9050919050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b600061247c601183611b69565b915061248782612446565b602082019050919050565b600060208201905081810360008301526124ab8161246f565b9050919050565b60006124bd8261192e565b91506124c88361192e565b92508282019050808211156124e0576124df612027565b5b92915050565b7f537461747573206d7573742062652045766964656e63655375626d6974746564600082015250565b600061251c602083611b69565b9150612527826124e6565b602082019050919050565b6000602082019050818103600083015261254b8161250f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125b68161192e565b82525050565b6125c5816118f0565b82525050565b6040820160008201516125e160008501826125ad565b5060208201516125f460208501826125bc565b50505050565b600061260683836125cb565b60408301905092915050565b6000602082019050919050565b600061262a82612581565b612634818561258c565b935061263f8361259d565b8060005b8381101561267057815161265788826125fa565b975061266283612612565b925050600181019050612643565b5085935050505092915050565b6000815461268a81612107565b6126948186611b69565b945060018216600081146126af57600181146126c5576126f8565b60ff1983168652811515602002860193506126f8565b6126ce85612138565b60005b838110156126f0578154818901526001820191506020810190506126d1565b808801955050505b50505092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b6000819050919050565b600061275c61275783612732565b61273f565b9050919050565b6000819050919050565b61277681612763565b82525050565b600082825260208201905092915050565b6000815461279a81612107565b6127a4818661277c565b945060018216600081146127bf57600181146127d557612808565b60ff198316865281151560200286019350612808565b6127de85612138565b60005b83811015612800578154818901526001820191506020810190506127e1565b808801955050505b50505092915050565b600060408301600080840154905061282881612749565b612835600087018261276d565b5060018401858303602087015261284c838261278d565b925050819250505092915050565b60006128668383612811565b905092915050565b6000600282019050919050565b600061288682612701565b612890818561270c565b9350836020820285016128a28561271d565b8060005b858110156128dd578484038952816128be858261285a565b94506128c98361286e565b925060208a019950506001810190506128a6565b50829750879550505050505092915050565b60006060820190508181036000830152612909818661261f565b9050818103602083015261291d818561267d565b90508181036040830152612931818461287b565b9050949350505050565b600060408201905061295060008301856119b7565b61295d6020830184611bfa565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061299e8261192e565b91506129a98361192e565b9250826129b9576129b8612964565b5b828204905092915050565b60006129cf8261192e565b91506129da8361192e565b92508282039050818111156129f2576129f1612027565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000612a2483836125ad565b60208301905092915050565b6000602082019050919050565b612a46816129f8565b612a508184612a03565b9250612a5b82612a0e565b8060005b83811015612a8c578151612a738782612a18565b9650612a7e83612a30565b925050600181019050612a5f565b505050505050565b6000819050919050565b6000612ab9612ab4612aaf84612a94565b6121bc565b61192e565b9050919050565b612ac981612a9e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000612af682612acf565b612b008185612ada565b9350612b10818560208601611b7a565b612b1981611ba4565b840191505092915050565b6000610140820190508181036000830152612b3f818b61267d565b9050612b4e602083018a6119b7565b612b5b6040830189612a3d565b612b686080830188612a3d565b612b7560c0830187612ac0565b612b8260e0830186611bfa565b612b90610100830185611bfa565b818103610120830152612ba38184612aeb565b90509998505050505050505050565b600081519050612bc181611938565b92915050565b600060208284031215612bdd57612bdc611814565b5b6000612beb84828501612bb2565b91505092915050565b6000608082019050612c0960008301876119b7565b612c166020830186611ad8565b612c2360408301856119b7565b612c306060830184611bfa565b95945050505050565b82818337600083830152505050565b6000612c548385611b69565b9350612c61838584612c39565b612c6a83611ba4565b840190509392505050565b82818337505050565b612c8a60608383612c75565b5050565b600060c0820190508181036000830152612ca9818789612c48565b9050612cb86020830186612c7e565b612cc56080830185611bfa565b81810360a0830152612cd78184612aeb565b90509695505050505050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612d3f603183611b69565b9150612d4a82612ce3565b604082019050919050565b60006020820190508181036000830152612d6e81612d32565b9050919050565b600081519050919050565b6000819050602082019050919050565b6000612d9b82611b5e565b612da5818561277c565b9350612db5818560208601611b7a565b612dbe81611ba4565b840191505092915050565b6000604083016000830151612de1600086018261276d565b5060208301518482036020860152612df98282612d90565b9150508091505092915050565b6000612e128383612dc9565b905092915050565b6000602082019050919050565b6000612e3282612d75565b612e3c818561270c565b935083602082028501612e4e85612d80565b8060005b85811015612e8a5784840389528151612e6b8582612e06565b9450612e7683612e1a565b925060208a01995050600181019050612e52565b50829750879550505050505092915050565b60006060820190508181036000830152612eb6818661261f565b90508181036020830152612eca818561267d565b90508181036040830152612ede8184612e27565b9050949350505050565b50565b6000612ef8600083612ada565b9150612f0382612ee8565b600082019050919050565b6000610140820190508181036000830152612f29818a61267d565b9050612f3860208301896119b7565b612f456040830188612a3d565b612f526080830187612a3d565b612f5f60c0830186612ac0565b612f6c60e0830185611bfa565b612f7a610100830184611bfa565b818103610120830152612f8c81612eeb565b905098975050505050505050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b6000612ff6603383611b69565b915061300182612f9a565b604082019050919050565b6000602082019050818103600083015261302581612fe9565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b6000613088602483611b69565b91506130938261302c565b604082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b7f537461747573206d757374206265205265717565737465640000000000000000600082015250565b60006130f4601883611b69565b91506130ff826130be565b602082019050919050565b60006020820190508181036000830152613123816130e7565b9050919050565b7f576f726b65722063616e206f6e6c79207375626d69742065766964656e63652060008201527f666f7220776f726b2074686579206172652061737369676e6564000000000000602082015250565b6000613186603a83611b69565b91506131918261312a565b604082019050919050565b600060208201905081810360008301526131b581613179565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126131e7576131e66131bc565b5b80830191505092915050565b6131fc81612763565b811461320757600080fd5b50565b60008135613217816131f3565b80915050919050565b60008160001b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61325984613220565b9350801983169250808416831791505092915050565b600061328a61328561328084612763565b6121bc565b612763565b9050919050565b6000819050919050565b6132a48261326f565b6132b76132b082613291565b835461322d565b8255505050565b600080833560016020038436030381126132db576132da6131bc565b5b80840192508235915067ffffffffffffffff8211156132fd576132fc6131c1565b5b602083019250600182023603831315613319576133186131c6565b5b509250929050565b61332c8383836122e4565b505050565b6000810160008301806133438161320a565b905061334f818461329b565b505050600181016020830161336481856132be565b61336f818386613321565b505050505050565b6133818282613331565b5050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006133bb601a83611b69565b91506133c682613385565b602082019050919050565b600060208201905081810360008301526133ea816133ae565b9050919050565b60006133fc8261192e565b91506134078361192e565b92508261341757613416612964565b5b82820690509291505056fea26469706673582212209d81f311d7361b0a2b6d962ab9820c8f6d8913dd22ebea3bbae7d4df035bbed564736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}