dgf-prototype/backend/contractArtifacts/Onboarding.json

486 lines
63 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": "contentId",
"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": "requestContentId",
"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 WorkContract.WorkStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
},
{
"internalType": "string",
"name": "requestContentId",
"type": "string"
},
{
"internalType": "string",
"name": "evidenceContentId",
"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": "evidenceContentId",
"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": "0x60a06040523480156200001157600080fd5b50604051620035ac380380620035ac8339818101604052810190620000379190620001c1565b828282828073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505080600181905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200021d565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f582620000c8565b9050919050565b60006200010982620000e8565b9050919050565b6200011b81620000fc565b81146200012757600080fd5b50565b6000815190506200013b8162000110565b92915050565b60006200014e82620000e8565b9050919050565b620001608162000141565b81146200016c57600080fd5b50565b600081519050620001808162000155565b92915050565b6000819050919050565b6200019b8162000186565b8114620001a757600080fd5b50565b600081519050620001bb8162000190565b92915050565b600080600060608486031215620001dd57620001dc620000c3565b5b6000620001ed868287016200012a565b935050602062000200868287016200016f565b92505060406200021386828701620001aa565b9150509250925092565b6080516133506200025c6000396000818161098101528181610a5101528181610b6e01528181610d8101528181610f9b015261102d01526133506000f3fe6080604052600436106100e85760003560e01c8063a035b1fe1161008a578063cf37625611610059578063cf376256146102de578063d0fae95f1461031c578063d5a44f8614610345578063d76b679414610385576100e8565b8063a035b1fe14610222578063b4e6a1d51461024d578063b5b20c001461028a578063c4a9e116146102b3576100e8565b8063815a0572116100c6578063815a05721461015d57806381d12c581461019a578063854b6a4f146101dd57806399ad6c5614610206576100e8565b80630d0271d6146100ed578063216ed6ad146101095780635badbe4c14610132575b600080fd5b610107600480360381019061010291906117ff565b6103b0565b005b34801561011557600080fd5b50610130600480360381019061012b91906118e0565b61049e565b005b34801561013e57600080fd5b506101476105b1565b6040516101549190611942565b60405180910390f35b34801561016957600080fd5b50610184600480360381019061017f91906119b3565b6105b7565b6040516101919190611942565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611a27565b610636565b6040516101d49796959493929190611b85565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190611c2e565b6107c2565b005b610220600480360381019061021b9190611c90565b610c2e565b005b34801561022e57600080fd5b50610237610d77565b6040516102449190611942565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190611d04565b610d7d565b6040516102819190611942565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611d9e565b61112b565b005b3480156102bf57600080fd5b506102c86112a0565b6040516102d59190611942565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190611a27565b6112a6565b604051610313929190611dde565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190611e5d565b6112ca565b005b34801561035157600080fd5b5061036c60048036038101906103679190611a27565b611503565b60405161037c9493929190611ef2565b60405180910390f35b34801561039157600080fd5b5061039a611560565b6040516103a79190611942565b60405180910390f35b6001543410156103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90611f83565b60405180910390fd5b60006007600081548092919061040a90611fd2565b9190505590506000600660008381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034816001018190555061047c82611566565b81600301819055508383826004019182610497929190612260565b5050505050565b600082116104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d89061237c565b60405180910390fd5b6000600560008154809291906104f690611fd2565b9190505590506000600460008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160010181905550824261056b919061239c565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e9826040516105a29190611942565b60405180910390a15050505050565b60075481565b60008083838101906105c99190611a27565b9050600060026000838152602001908152602001600020905080600001546001819055507f6a3843c02c26620842ae8496fd3afcb44b27463b3808e2ccdae4bcee5a2e3f2082600154604051610620929190611dde565b60405180910390a1600092505050949350505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff169080600301549080600401805461069e90612083565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca90612083565b80156107175780601f106106ec57610100808354040283529160200191610717565b820191906000526020600020905b8154815290600101906020018083116106fa57829003601f168201915b50505050509080600501805461072c90612083565b80601f016020809104026020016040519081016040528092919081815260200182805461075890612083565b80156107a55780601f1061077a576101008083540402835291602001916107a5565b820191906000526020600020905b81548152906001019060200180831161078857829003601f168201915b5050505050908060070160009054906101000a900460ff16905087565b6000600660008481526020019081526020016000209050600160038111156107ed576107ec611a63565b5b8160020160009054906101000a900460ff16600381111561081157610810611a63565b5b14610851576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108489061241c565b60405180910390fd5b60006004600083600301548152602001908152602001600020905060028260020160006101000a81548160ff0219169083600381111561089457610893611a63565b5b0217905550828260070160006101000a81548160ff0219169083151502179055506000600167ffffffffffffffff8111156108d2576108d1612025565b5b60405190808252806020026020018201604052801561090b57816020015b6108f8611760565b8152602001906001900390816108f05790505b5090506040518060400160405280620f424081526020018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250816000815181106109745761097361243c565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600501866006016040518463ffffffff1660e01b81526004016109e2939291906127d9565b600060405180830381600087803b1580156109fc57600080fd5b505af1158015610a10573d6000803e3d6000fd5b505050507f470d2978e081461f6d144c091dfd83ec06e6011da0b03bd1c0121b7fb71370dc8585604051610a45929190612825565b60405180910390a160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8660010154610a9c919061287d565b8660010154610aab91906128ae565b8660050160146040518060400160405280600181526020016003815250604051806040016040528060018152602001600281525060646001808f604051602001610af59190611942565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401610b27989796959493929190612a0e565b60206040518083038185885af1158015610b45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b6a9190612ab1565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3828560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866001015460016040518563ffffffff1660e01b8152600401610bf49493929190612ade565b600060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b50505050505050505050565b600060036000815480929190610c4390611fd2565b919050559050600060026000838152602001908152602001600020905085816000018190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632805b5d93487873388600189604051602001610cbd9190611942565b6040516020818303038152906040526040518863ffffffff1660e01b8152600401610ced96959493929190612b78565b60206040518083038185885af1158015610d0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d309190612ab1565b81600101819055507f71eae802097e4e77c5345dee7f35d74ac0ae45eb5a456fdaed0de4d141fc5d8c82604051610d679190611942565b60405180910390a1505050505050565b60015481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490612c4d565b60405180910390fd5b60008383810190610e1e9190611a27565b90506000600660008381526020019081526020016000209050881580610e42575087155b15610ecd578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a8360010154610e96919061287d565b9081150290604051600060405180830381858888f19350505050158015610ec1573d6000803e3d6000fd5b50600192505050611121565b60606000600167ffffffffffffffff811115610eec57610eeb612025565b5b604051908082528060200260200182016040528015610f2557816020015b610f12611760565b815260200190600190039081610f0a5790505b5090506040518060400160405280620f424081526020018460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525081600081518110610f8e57610f8d61243c565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600401856040518463ffffffff1660e01b8152600401610ff993929190612d94565b600060405180830381600087803b15801561101357600080fd5b505af1158015611027573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8560010154611078919061287d565b856004016014604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518963ffffffff1660e01b81526004016110d49796959493929190612e06565b60206040518083038185885af11580156110f2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111179190612ab1565b5060009450505050505b9695505050505050565b60006004600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90612f04565b60405180910390fd5b8060030160009054906101000a900460ff1615611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90612f96565b60405180910390fd5b806002015442111561124b57814261123e919061239c565b8160020181905550611264565b81816002015461125b919061239c565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e9836040516112939190611942565b60405180910390a1505050565b60055481565b60026020528060005260406000206000915090508060000154908060010154905082565b6000600660008781526020019081526020016000209050600060038111156112f5576112f4611a63565b5b8160020160009054906101000a900460ff16600381111561131957611318611a63565b5b14611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090613002565b60405180910390fd5b6000600460008360030154815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90613094565b60405180910390fd5b60018260020160006101000a81548160ff0219169083600381111561142e5761142d611a63565b5b02179055508585836005019182611446929190612260565b5060005b848490508110156114c2578260060185858381811061146c5761146b61243c565b5b905060200281019061147e91906130c3565b908060018154018082558091505060019003906000526020600020906002020160009091909190915081816114b3919061326f565b5050808060010191505061144a565b507ffaecd3b4db089bf25a48306100dd5fb2152e3887c7815b2b221dbb7da2f8e8dc876040516114f29190611942565b60405180910390a150505050505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60035481565b60006115706115e5565b9050600060046000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055507fd9e7f38a71691fb1db2da17057c03d381a42a9925350883f10e8e5d0bca4a3b483836040516115d7929190611dde565b60405180910390a150919050565b60008060005b60055481101561166c576004600082815260200190815260200160002060030160009054906101000a900460ff1661165f576004600082815260200190815260200160002060020154421161165f5760046000828152602001908152602001600020600101548261165c919061239c565b91505b80806001019150506115eb565b50600081116116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a7906132c9565b60405180910390fd5b600081446116be91906132e9565b9050600080600090505b600554811015611759576004600082815260200190815260200160002060030160009054906101000a900460ff1661174c576004600082815260200190815260200160002060020154421161174c57600460008281526020019081526020016000206001015482611739919061239c565b91508282111561174b57809450611759565b5b80806001019150506116c8565b5050505090565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126117bf576117be61179a565b5b8235905067ffffffffffffffff8111156117dc576117db61179f565b5b6020830191508360018202830111156117f8576117f76117a4565b5b9250929050565b6000806020838503121561181657611815611790565b5b600083013567ffffffffffffffff81111561183457611833611795565b5b611840858286016117a9565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118778261184c565b9050919050565b6118878161186c565b811461189257600080fd5b50565b6000813590506118a48161187e565b92915050565b6000819050919050565b6118bd816118aa565b81146118c857600080fd5b50565b6000813590506118da816118b4565b92915050565b6000806000606084860312156118f9576118f8611790565b5b600061190786828701611895565b9350506020611918868287016118cb565b9250506040611929868287016118cb565b9150509250925092565b61193c816118aa565b82525050565b60006020820190506119576000830184611933565b92915050565b60008083601f8401126119735761197261179a565b5b8235905067ffffffffffffffff8111156119905761198f61179f565b5b6020830191508360018202830111156119ac576119ab6117a4565b5b9250929050565b600080600080606085870312156119cd576119cc611790565b5b60006119db878288016118cb565b94505060206119ec878288016118cb565b935050604085013567ffffffffffffffff811115611a0d57611a0c611795565b5b611a198782880161195d565b925092505092959194509250565b600060208284031215611a3d57611a3c611790565b5b6000611a4b848285016118cb565b91505092915050565b611a5d8161186c565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611aa357611aa2611a63565b5b50565b6000819050611ab482611a92565b919050565b6000611ac482611aa6565b9050919050565b611ad481611ab9565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b14578082015181840152602081019050611af9565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3c82611ada565b611b468185611ae5565b9350611b56818560208601611af6565b611b5f81611b20565b840191505092915050565b60008115159050919050565b611b7f81611b6a565b82525050565b600060e082019050611b9a600083018a611a54565b611ba76020830189611933565b611bb46040830188611acb565b611bc16060830187611933565b8181036080830152611bd38186611b31565b905081810360a0830152611be78185611b31565b9050611bf660c0830184611b76565b98975050505050505050565b611c0b81611b6a565b8114611c1657600080fd5b50565b600081359050611c2881611c02565b92915050565b60008060408385031215611c4557611c44611790565b5b6000611c53858286016118cb565b9250506020611c6485828601611c19565b9150509250929050565b600081905082602060030282011115611c8a57611c896117a4565b5b92915050565b60008060008060a08587031215611caa57611ca9611790565b5b6000611cb8878288016118cb565b945050602085013567ffffffffffffffff811115611cd957611cd8611795565b5b611ce5878288016117a9565b93509350506040611cf887828801611c6e565b91505092959194509250565b60008060008060008060a08789031215611d2157611d20611790565b5b6000611d2f89828a01611c19565b9650506020611d4089828a01611c19565b9550506040611d5189828a016118cb565b9450506060611d6289828a016118cb565b935050608087013567ffffffffffffffff811115611d8357611d82611795565b5b611d8f89828a0161195d565b92509250509295509295509295565b60008060408385031215611db557611db4611790565b5b6000611dc3858286016118cb565b9250506020611dd4858286016118cb565b9150509250929050565b6000604082019050611df36000830185611933565b611e006020830184611933565b9392505050565b60008083601f840112611e1d57611e1c61179a565b5b8235905067ffffffffffffffff811115611e3a57611e3961179f565b5b602083019150836020820283011115611e5657611e556117a4565b5b9250929050565b600080600080600060608688031215611e7957611e78611790565b5b6000611e87888289016118cb565b955050602086013567ffffffffffffffff811115611ea857611ea7611795565b5b611eb4888289016117a9565b9450945050604086013567ffffffffffffffff811115611ed757611ed6611795565b5b611ee388828901611e07565b92509250509295509295909350565b6000608082019050611f076000830187611a54565b611f146020830186611933565b611f216040830185611933565b611f2e6060830184611b76565b95945050505050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b6000611f6d601083611ae5565b9150611f7882611f37565b602082019050919050565b60006020820190508181036000830152611f9c81611f60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fdd826118aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361200f5761200e611fa3565b5b600182019050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061209b57607f821691505b6020821081036120ae576120ad612054565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026121167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120d9565b61212086836120d9565b95508019841693508086168417925050509392505050565b6000819050919050565b600061215d612158612153846118aa565b612138565b6118aa565b9050919050565b6000819050919050565b61217783612142565b61218b61218382612164565b8484546120e6565b825550505050565b600090565b6121a0612193565b6121ab81848461216e565b505050565b5b818110156121cf576121c4600082612198565b6001810190506121b1565b5050565b601f821115612214576121e5816120b4565b6121ee846120c9565b810160208510156121fd578190505b612211612209856120c9565b8301826121b0565b50505b505050565b600082821c905092915050565b600061223760001984600802612219565b1980831691505092915050565b60006122508383612226565b9150826002028217905092915050565b61226a838361201a565b67ffffffffffffffff81111561228357612282612025565b5b61228d8254612083565b6122988282856121d3565b6000601f8311600181146122c757600084156122b5578287013590505b6122bf8582612244565b865550612327565b601f1984166122d5866120b4565b60005b828110156122fd578489013582556001820191506020850194506020810190506122d8565b8683101561231a5784890135612316601f891682612226565b8355505b6001600288020188555050505b50505050505050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b6000612366601183611ae5565b915061237182612330565b602082019050919050565b6000602082019050818103600083015261239581612359565b9050919050565b60006123a7826118aa565b91506123b2836118aa565b92508282019050808211156123ca576123c9611fa3565b5b92915050565b7f537461747573206d7573742062652045766964656e63655375626d6974746564600082015250565b6000612406602083611ae5565b9150612411826123d0565b602082019050919050565b60006020820190508181036000830152612435816123f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124a0816118aa565b82525050565b6124af8161186c565b82525050565b6040820160008201516124cb6000850182612497565b5060208201516124de60208501826124a6565b50505050565b60006124f083836124b5565b60408301905092915050565b6000602082019050919050565b60006125148261246b565b61251e8185612476565b935061252983612487565b8060005b8381101561255a57815161254188826124e4565b975061254c836124fc565b92505060018101905061252d565b5085935050505092915050565b6000815461257481612083565b61257e8186611ae5565b9450600182166000811461259957600181146125af576125e2565b60ff1983168652811515602002860193506125e2565b6125b8856120b4565b60005b838110156125da578154818901526001820191506020810190506125bb565b808801955050505b50505092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b6000819050919050565b60006126466126418361261c565b612629565b9050919050565b6000819050919050565b6126608161264d565b82525050565b600082825260208201905092915050565b6000815461268481612083565b61268e8186612666565b945060018216600081146126a957600181146126bf576126f2565b60ff1983168652811515602002860193506126f2565b6126c8856120b4565b60005b838110156126ea578154818901526001820191506020810190506126cb565b808801955050505b50505092915050565b600060408301600080840154905061271281612633565b61271f6000870182612657565b506001840185830360208701526127368382612677565b925050819250505092915050565b600061275083836126fb565b905092915050565b6000600282019050919050565b6000612770826125eb565b61277a81856125f6565b93508360208202850161278c85612607565b8060005b858110156127c7578484038952816127a88582612744565b94506127b383612758565b925060208a01995050600181019050612790565b50829750879550505050505092915050565b600060608201905081810360008301526127f38186612509565b905081810360208301526128078185612567565b9050818103604083015261281b8184612765565b9050949350505050565b600060408201905061283a6000830185611933565b6128476020830184611b76565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612888826118aa565b9150612893836118aa565b9250826128a3576128a261284e565b5b828204905092915050565b60006128b9826118aa565b91506128c4836118aa565b92508282039050818111156128dc576128db611fa3565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b600061290e8383612497565b60208301905092915050565b6000602082019050919050565b612930816128e2565b61293a81846128ed565b9250612945826128f8565b8060005b8381101561297657815161295d8782612902565b96506129688361291a565b925050600181019050612949565b505050505050565b6000819050919050565b60006129a361299e6129998461297e565b612138565b6118aa565b9050919050565b6129b381612988565b82525050565b600081519050919050565b600082825260208201905092915050565b60006129e0826129b9565b6129ea81856129c4565b93506129fa818560208601611af6565b612a0381611b20565b840191505092915050565b6000610140820190508181036000830152612a29818b612567565b9050612a38602083018a611933565b612a456040830189612927565b612a526080830188612927565b612a5f60c08301876129aa565b612a6c60e0830186611b76565b612a7a610100830185611b76565b818103610120830152612a8d81846129d5565b90509998505050505050505050565b600081519050612aab816118b4565b92915050565b600060208284031215612ac757612ac6611790565b5b6000612ad584828501612a9c565b91505092915050565b6000608082019050612af36000830187611933565b612b006020830186611a54565b612b0d6040830185611933565b612b1a6060830184611b76565b95945050505050565b82818337600083830152505050565b6000612b3e8385611ae5565b9350612b4b838584612b23565b612b5483611b20565b840190509392505050565b82818337505050565b612b7460608383612b5f565b5050565b600060e0820190508181036000830152612b9381888a612b32565b9050612ba26020830187611a54565b612baf6040830186612b68565b612bbc60a0830185611b76565b81810360c0830152612bce81846129d5565b9050979650505050505050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c37603183611ae5565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b600081519050919050565b6000819050602082019050919050565b6000612c9382611ada565b612c9d8185612666565b9350612cad818560208601611af6565b612cb681611b20565b840191505092915050565b6000604083016000830151612cd96000860182612657565b5060208301518482036020860152612cf18282612c88565b9150508091505092915050565b6000612d0a8383612cc1565b905092915050565b6000602082019050919050565b6000612d2a82612c6d565b612d3481856125f6565b935083602082028501612d4685612c78565b8060005b85811015612d825784840389528151612d638582612cfe565b9450612d6e83612d12565b925060208a01995050600181019050612d4a565b50829750879550505050505092915050565b60006060820190508181036000830152612dae8186612509565b90508181036020830152612dc28185612567565b90508181036040830152612dd68184612d1f565b9050949350505050565b50565b6000612df06000836129c4565b9150612dfb82612de0565b600082019050919050565b6000610140820190508181036000830152612e21818a612567565b9050612e306020830189611933565b612e3d6040830188612927565b612e4a6080830187612927565b612e5760c08301866129aa565b612e6460e0830185611b76565b612e72610100830184611b76565b818103610120830152612e8481612de3565b905098975050505050505050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b6000612eee603383611ae5565b9150612ef982612e92565b604082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b6000612f80602483611ae5565b9150612f8b82612f24565b604082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f537461747573206d757374206265205265717565737465640000000000000000600082015250565b6000612fec601883611ae5565b9150612ff782612fb6565b602082019050919050565b6000602082019050818103600083015261301b81612fdf565b9050919050565b7f576f726b65722063616e206f6e6c79207375626d69742065766964656e63652060008201527f666f7220776f726b2074686579206172652061737369676e6564000000000000602082015250565b600061307e603a83611ae5565b915061308982613022565b604082019050919050565b600060208201905081810360008301526130ad81613071565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126130df576130de6130b4565b5b80830191505092915050565b6130f48161264d565b81146130ff57600080fd5b50565b6000813561310f816130eb565b80915050919050565b60008160001b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61315184613118565b9350801983169250808416831791505092915050565b600061318261317d6131788461264d565b612138565b61264d565b9050919050565b6000819050919050565b61319c82613167565b6131af6131a882613189565b8354613125565b8255505050565b600080833560016020038436030381126131d3576131d26130b4565b5b80840192508235915067ffffffffffffffff8211156131f5576131f46130b9565b5b602083019250600182023603831315613211576132106130be565b5b509250929050565b613224838383612260565b505050565b60008101600083018061323b81613102565b90506132478184613193565b505050600181016020830161325c81856131b6565b613267818386613219565b505050505050565b6132798282613229565b5050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006132b3601a83611ae5565b91506132be8261327d565b602082019050919050565b600060208201905081810360008301526132e2816132a6565b9050919050565b60006132f4826118aa565b91506132ff836118aa565b92508261330f5761330e61284e565b5b82820690509291505056fea26469706673582212206e18b5b44c6fcdd479868a02ae8ae98200838357ab90af830d1b0e4af00035ba64736f6c63430008180033",
"deployedBytecode": "0x6080604052600436106100e85760003560e01c8063a035b1fe1161008a578063cf37625611610059578063cf376256146102de578063d0fae95f1461031c578063d5a44f8614610345578063d76b679414610385576100e8565b8063a035b1fe14610222578063b4e6a1d51461024d578063b5b20c001461028a578063c4a9e116146102b3576100e8565b8063815a0572116100c6578063815a05721461015d57806381d12c581461019a578063854b6a4f146101dd57806399ad6c5614610206576100e8565b80630d0271d6146100ed578063216ed6ad146101095780635badbe4c14610132575b600080fd5b610107600480360381019061010291906117ff565b6103b0565b005b34801561011557600080fd5b50610130600480360381019061012b91906118e0565b61049e565b005b34801561013e57600080fd5b506101476105b1565b6040516101549190611942565b60405180910390f35b34801561016957600080fd5b50610184600480360381019061017f91906119b3565b6105b7565b6040516101919190611942565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611a27565b610636565b6040516101d49796959493929190611b85565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190611c2e565b6107c2565b005b610220600480360381019061021b9190611c90565b610c2e565b005b34801561022e57600080fd5b50610237610d77565b6040516102449190611942565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190611d04565b610d7d565b6040516102819190611942565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190611d9e565b61112b565b005b3480156102bf57600080fd5b506102c86112a0565b6040516102d59190611942565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190611a27565b6112a6565b604051610313929190611dde565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190611e5d565b6112ca565b005b34801561035157600080fd5b5061036c60048036038101906103679190611a27565b611503565b60405161037c9493929190611ef2565b60405180910390f35b34801561039157600080fd5b5061039a611560565b6040516103a79190611942565b60405180910390f35b6001543410156103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90611f83565b60405180910390fd5b60006007600081548092919061040a90611fd2565b9190505590506000600660008381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034816001018190555061047c82611566565b81600301819055508383826004019182610497929190612260565b5050505050565b600082116104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d89061237c565b60405180910390fd5b6000600560008154809291906104f690611fd2565b9190505590506000600460008381526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838160010181905550824261056b919061239c565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e9826040516105a29190611942565b60405180910390a15050505050565b60075481565b60008083838101906105c99190611a27565b9050600060026000838152602001908152602001600020905080600001546001819055507f6a3843c02c26620842ae8496fd3afcb44b27463b3808e2ccdae4bcee5a2e3f2082600154604051610620929190611dde565b60405180910390a1600092505050949350505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff169080600301549080600401805461069e90612083565b80601f01602080910402602001604051908101604052809291908181526020018280546106ca90612083565b80156107175780601f106106ec57610100808354040283529160200191610717565b820191906000526020600020905b8154815290600101906020018083116106fa57829003601f168201915b50505050509080600501805461072c90612083565b80601f016020809104026020016040519081016040528092919081815260200182805461075890612083565b80156107a55780601f1061077a576101008083540402835291602001916107a5565b820191906000526020600020905b81548152906001019060200180831161078857829003601f168201915b5050505050908060070160009054906101000a900460ff16905087565b6000600660008481526020019081526020016000209050600160038111156107ed576107ec611a63565b5b8160020160009054906101000a900460ff16600381111561081157610810611a63565b5b14610851576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108489061241c565b60405180910390fd5b60006004600083600301548152602001908152602001600020905060028260020160006101000a81548160ff0219169083600381111561089457610893611a63565b5b0217905550828260070160006101000a81548160ff0219169083151502179055506000600167ffffffffffffffff8111156108d2576108d1612025565b5b60405190808252806020026020018201604052801561090b57816020015b6108f8611760565b8152602001906001900390816108f05790505b5090506040518060400160405280620f424081526020018360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250816000815181106109745761097361243c565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600501866006016040518463ffffffff1660e01b81526004016109e2939291906127d9565b600060405180830381600087803b1580156109fc57600080fd5b505af1158015610a10573d6000803e3d6000fd5b505050507f470d2978e081461f6d144c091dfd83ec06e6011da0b03bd1c0121b7fb71370dc8585604051610a45929190612825565b60405180910390a160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8660010154610a9c919061287d565b8660010154610aab91906128ae565b8660050160146040518060400160405280600181526020016003815250604051806040016040528060018152602001600281525060646001808f604051602001610af59190611942565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401610b27989796959493929190612a0e565b60206040518083038185885af1158015610b45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b6a9190612ab1565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3828560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866001015460016040518563ffffffff1660e01b8152600401610bf49493929190612ade565b600060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b50505050505050505050565b600060036000815480929190610c4390611fd2565b919050559050600060026000838152602001908152602001600020905085816000018190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632805b5d93487873388600189604051602001610cbd9190611942565b6040516020818303038152906040526040518863ffffffff1660e01b8152600401610ced96959493929190612b78565b60206040518083038185885af1158015610d0b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d309190612ab1565b81600101819055507f71eae802097e4e77c5345dee7f35d74ac0ae45eb5a456fdaed0de4d141fc5d8c82604051610d679190611942565b60405180910390a1505050505050565b60015481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490612c4d565b60405180910390fd5b60008383810190610e1e9190611a27565b90506000600660008381526020019081526020016000209050881580610e42575087155b15610ecd578060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600a8360010154610e96919061287d565b9081150290604051600060405180830381858888f19350505050158015610ec1573d6000803e3d6000fd5b50600192505050611121565b60606000600167ffffffffffffffff811115610eec57610eeb612025565b5b604051908082528060200260200182016040528015610f2557816020015b610f12611760565b815260200190600190039081610f0a5790505b5090506040518060400160405280620f424081526020018460000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525081600081518110610f8e57610f8d61243c565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d8278285600401856040518463ffffffff1660e01b8152600401610ff993929190612d94565b600060405180830381600087803b15801561101357600080fd5b505af1158015611027573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c73600a8560010154611078919061287d565b856004016014604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518963ffffffff1660e01b81526004016110d49796959493929190612e06565b60206040518083038185885af11580156110f2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111179190612ab1565b5060009450505050505b9695505050505050565b60006004600084815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90612f04565b60405180910390fd5b8060030160009054906101000a900460ff1615611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90612f96565b60405180910390fd5b806002015442111561124b57814261123e919061239c565b8160020181905550611264565b81816002015461125b919061239c565b81600201819055505b7fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e9836040516112939190611942565b60405180910390a1505050565b60055481565b60026020528060005260406000206000915090508060000154908060010154905082565b6000600660008781526020019081526020016000209050600060038111156112f5576112f4611a63565b5b8160020160009054906101000a900460ff16600381111561131957611318611a63565b5b14611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090613002565b60405180910390fd5b6000600460008360030154815260200190815260200160002090503373ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90613094565b60405180910390fd5b60018260020160006101000a81548160ff0219169083600381111561142e5761142d611a63565b5b02179055508585836005019182611446929190612260565b5060005b848490508110156114c2578260060185858381811061146c5761146b61243c565b5b905060200281019061147e91906130c3565b908060018154018082558091505060019003906000526020600020906002020160009091909190915081816114b3919061326f565b5050808060010191505061144a565b507ffaecd3b4db089bf25a48306100dd5fb2152e3887c7815b2b221dbb7da2f8e8dc876040516114f29190611942565b60405180910390a150505050505050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60035481565b60006115706115e5565b9050600060046000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055507fd9e7f38a71691fb1db2da17057c03d381a42a9925350883f10e8e5d0bca4a3b483836040516115d7929190611dde565b60405180910390a150919050565b60008060005b60055481101561166c576004600082815260200190815260200160002060030160009054906101000a900460ff1661165f576004600082815260200190815260200160002060020154421161165f5760046000828152602001908152602001600020600101548261165c919061239c565b91505b80806001019150506115eb565b50600081116116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a7906132c9565b60405180910390fd5b600081446116be91906132e9565b9050600080600090505b600554811015611759576004600082815260200190815260200160002060030160009054906101000a900460ff1661174c576004600082815260200190815260200160002060020154421161174c57600460008281526020019081526020016000206001015482611739919061239c565b91508282111561174b57809450611759565b5b80806001019150506116c8565b5050505090565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126117bf576117be61179a565b5b8235905067ffffffffffffffff8111156117dc576117db61179f565b5b6020830191508360018202830111156117f8576117f76117a4565b5b9250929050565b6000806020838503121561181657611815611790565b5b600083013567ffffffffffffffff81111561183457611833611795565b5b611840858286016117a9565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118778261184c565b9050919050565b6118878161186c565b811461189257600080fd5b50565b6000813590506118a48161187e565b92915050565b6000819050919050565b6118bd816118aa565b81146118c857600080fd5b50565b6000813590506118da816118b4565b92915050565b6000806000606084860312156118f9576118f8611790565b5b600061190786828701611895565b9350506020611918868287016118cb565b9250506040611929868287016118cb565b9150509250925092565b61193c816118aa565b82525050565b60006020820190506119576000830184611933565b92915050565b60008083601f8401126119735761197261179a565b5b8235905067ffffffffffffffff8111156119905761198f61179f565b5b6020830191508360018202830111156119ac576119ab6117a4565b5b9250929050565b600080600080606085870312156119cd576119cc611790565b5b60006119db878288016118cb565b94505060206119ec878288016118cb565b935050604085013567ffffffffffffffff811115611a0d57611a0c611795565b5b611a198782880161195d565b925092505092959194509250565b600060208284031215611a3d57611a3c611790565b5b6000611a4b848285016118cb565b91505092915050565b611a5d8161186c565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110611aa357611aa2611a63565b5b50565b6000819050611ab482611a92565b919050565b6000611ac482611aa6565b9050919050565b611ad481611ab9565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b14578082015181840152602081019050611af9565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3c82611ada565b611b468185611ae5565b9350611b56818560208601611af6565b611b5f81611b20565b840191505092915050565b60008115159050919050565b611b7f81611b6a565b82525050565b600060e082019050611b9a600083018a611a54565b611ba76020830189611933565b611bb46040830188611acb565b611bc16060830187611933565b8181036080830152611bd38186611b31565b905081810360a0830152611be78185611b31565b9050611bf660c0830184611b76565b98975050505050505050565b611c0b81611b6a565b8114611c1657600080fd5b50565b600081359050611c2881611c02565b92915050565b60008060408385031215611c4557611c44611790565b5b6000611c53858286016118cb565b9250506020611c6485828601611c19565b9150509250929050565b600081905082602060030282011115611c8a57611c896117a4565b5b92915050565b60008060008060a08587031215611caa57611ca9611790565b5b6000611cb8878288016118cb565b945050602085013567ffffffffffffffff811115611cd957611cd8611795565b5b611ce5878288016117a9565b93509350506040611cf887828801611c6e565b91505092959194509250565b60008060008060008060a08789031215611d2157611d20611790565b5b6000611d2f89828a01611c19565b9650506020611d4089828a01611c19565b9550506040611d5189828a016118cb565b9450506060611d6289828a016118cb565b935050608087013567ffffffffffffffff811115611d8357611d82611795565b5b611d8f89828a0161195d565b92509250509295509295509295565b60008060408385031215611db557611db4611790565b5b6000611dc3858286016118cb565b9250506020611dd4858286016118cb565b9150509250929050565b6000604082019050611df36000830185611933565b611e006020830184611933565b9392505050565b60008083601f840112611e1d57611e1c61179a565b5b8235905067ffffffffffffffff811115611e3a57611e3961179f565b5b602083019150836020820283011115611e5657611e556117a4565b5b9250929050565b600080600080600060608688031215611e7957611e78611790565b5b6000611e87888289016118cb565b955050602086013567ffffffffffffffff811115611ea857611ea7611795565b5b611eb4888289016117a9565b9450945050604086013567ffffffffffffffff811115611ed757611ed6611795565b5b611ee388828901611e07565b92509250509295509295909350565b6000608082019050611f076000830187611a54565b611f146020830186611933565b611f216040830185611933565b611f2e6060830184611b76565b95945050505050565b7f496e73756666696369656e742066656500000000000000000000000000000000600082015250565b6000611f6d601083611ae5565b9150611f7882611f37565b602082019050919050565b60006020820190508181036000830152611f9c81611f60565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fdd826118aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361200f5761200e611fa3565b5b600182019050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061209b57607f821691505b6020821081036120ae576120ad612054565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026121167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826120d9565b61212086836120d9565b95508019841693508086168417925050509392505050565b6000819050919050565b600061215d612158612153846118aa565b612138565b6118aa565b9050919050565b6000819050919050565b61217783612142565b61218b61218382612164565b8484546120e6565b825550505050565b600090565b6121a0612193565b6121ab81848461216e565b505050565b5b818110156121cf576121c4600082612198565b6001810190506121b1565b5050565b601f821115612214576121e5816120b4565b6121ee846120c9565b810160208510156121fd578190505b612211612209856120c9565b8301826121b0565b50505b505050565b600082821c905092915050565b600061223760001984600802612219565b1980831691505092915050565b60006122508383612226565b9150826002028217905092915050565b61226a838361201a565b67ffffffffffffffff81111561228357612282612025565b5b61228d8254612083565b6122988282856121d3565b6000601f8311600181146122c757600084156122b5578287013590505b6122bf8582612244565b865550612327565b601f1984166122d5866120b4565b60005b828110156122fd578489013582556001820191506020850194506020810190506122d8565b8683101561231a5784890135612316601f891682612226565b8355505b6001600288020188555050505b50505050505050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b6000612366601183611ae5565b915061237182612330565b602082019050919050565b6000602082019050818103600083015261239581612359565b9050919050565b60006123a7826118aa565b91506123b2836118aa565b92508282019050808211156123ca576123c9611fa3565b5b92915050565b7f537461747573206d7573742062652045766964656e63655375626d6974746564600082015250565b6000612406602083611ae5565b9150612411826123d0565b602082019050919050565b60006020820190508181036000830152612435816123f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124a0816118aa565b82525050565b6124af8161186c565b82525050565b6040820160008201516124cb6000850182612497565b5060208201516124de60208501826124a6565b50505050565b60006124f083836124b5565b60408301905092915050565b6000602082019050919050565b60006125148261246b565b61251e8185612476565b935061252983612487565b8060005b8381101561255a57815161254188826124e4565b975061254c836124fc565b92505060018101905061252d565b5085935050505092915050565b6000815461257481612083565b61257e8186611ae5565b9450600182166000811461259957600181146125af576125e2565b60ff1983168652811515602002860193506125e2565b6125b8856120b4565b60005b838110156125da578154818901526001820191506020810190506125bb565b808801955050505b50505092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b6000819050919050565b60006126466126418361261c565b612629565b9050919050565b6000819050919050565b6126608161264d565b82525050565b600082825260208201905092915050565b6000815461268481612083565b61268e8186612666565b945060018216600081146126a957600181146126bf576126f2565b60ff1983168652811515602002860193506126f2565b6126c8856120b4565b60005b838110156126ea578154818901526001820191506020810190506126cb565b808801955050505b50505092915050565b600060408301600080840154905061271281612633565b61271f6000870182612657565b506001840185830360208701526127368382612677565b925050819250505092915050565b600061275083836126fb565b905092915050565b6000600282019050919050565b6000612770826125eb565b61277a81856125f6565b93508360208202850161278c85612607565b8060005b858110156127c7578484038952816127a88582612744565b94506127b383612758565b925060208a01995050600181019050612790565b50829750879550505050505092915050565b600060608201905081810360008301526127f38186612509565b905081810360208301526128078185612567565b9050818103604083015261281b8184612765565b9050949350505050565b600060408201905061283a6000830185611933565b6128476020830184611b76565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612888826118aa565b9150612893836118aa565b9250826128a3576128a261284e565b5b828204905092915050565b60006128b9826118aa565b91506128c4836118aa565b92508282039050818111156128dc576128db611fa3565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b600061290e8383612497565b60208301905092915050565b6000602082019050919050565b612930816128e2565b61293a81846128ed565b9250612945826128f8565b8060005b8381101561297657815161295d8782612902565b96506129688361291a565b925050600181019050612949565b505050505050565b6000819050919050565b60006129a361299e6129998461297e565b612138565b6118aa565b9050919050565b6129b381612988565b82525050565b600081519050919050565b600082825260208201905092915050565b60006129e0826129b9565b6129ea81856129c4565b93506129fa818560208601611af6565b612a0381611b20565b840191505092915050565b6000610140820190508181036000830152612a29818b612567565b9050612a38602083018a611933565b612a456040830189612927565b612a526080830188612927565b612a5f60c08301876129aa565b612a6c60e0830186611b76565b612a7a610100830185611b76565b818103610120830152612a8d81846129d5565b90509998505050505050505050565b600081519050612aab816118b4565b92915050565b600060208284031215612ac757612ac6611790565b5b6000612ad584828501612a9c565b91505092915050565b6000608082019050612af36000830187611933565b612b006020830186611a54565b612b0d6040830185611933565b612b1a6060830184611b76565b95945050505050565b82818337600083830152505050565b6000612b3e8385611ae5565b9350612b4b838584612b23565b612b5483611b20565b840190509392505050565b82818337505050565b612b7460608383612b5f565b5050565b600060e0820190508181036000830152612b9381888a612b32565b9050612ba26020830187611a54565b612baf6040830186612b68565b612bbc60a0830185611b76565b81810360c0830152612bce81846129d5565b9050979650505050505050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c37603183611ae5565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b600081519050919050565b6000819050602082019050919050565b6000612c9382611ada565b612c9d8185612666565b9350612cad818560208601611af6565b612cb681611b20565b840191505092915050565b6000604083016000830151612cd96000860182612657565b5060208301518482036020860152612cf18282612c88565b9150508091505092915050565b6000612d0a8383612cc1565b905092915050565b6000602082019050919050565b6000612d2a82612c6d565b612d3481856125f6565b935083602082028501612d4685612c78565b8060005b85811015612d825784840389528151612d638582612cfe565b9450612d6e83612d12565b925060208a01995050600181019050612d4a565b50829750879550505050505092915050565b60006060820190508181036000830152612dae8186612509565b90508181036020830152612dc28185612567565b90508181036040830152612dd68184612d1f565b9050949350505050565b50565b6000612df06000836129c4565b9150612dfb82612de0565b600082019050919050565b6000610140820190508181036000830152612e21818a612567565b9050612e306020830189611933565b612e3d6040830188612927565b612e4a6080830187612927565b612e5760c08301866129aa565b612e6460e0830185611b76565b612e72610100830184611b76565b818103610120830152612e8481612de3565b905098975050505050505050565b7f576f726b65722063616e206f6e6c7920657874656e64207468656972206f776e60008201527f20617661696c6162696c697479207374616b6500000000000000000000000000602082015250565b6000612eee603383611ae5565b9150612ef982612e92565b604082019050919050565b60006020820190508181036000830152612f1d81612ee1565b9050919050565b7f5374616b652068617320616c7265616479206265656e2061737369676e65642060008201527f776f726b00000000000000000000000000000000000000000000000000000000602082015250565b6000612f80602483611ae5565b9150612f8b82612f24565b604082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f537461747573206d757374206265205265717565737465640000000000000000600082015250565b6000612fec601883611ae5565b9150612ff782612fb6565b602082019050919050565b6000602082019050818103600083015261301b81612fdf565b9050919050565b7f576f726b65722063616e206f6e6c79207375626d69742065766964656e63652060008201527f666f7220776f726b2074686579206172652061737369676e6564000000000000602082015250565b600061307e603a83611ae5565b915061308982613022565b604082019050919050565b600060208201905081810360008301526130ad81613071565b9050919050565b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126130df576130de6130b4565b5b80830191505092915050565b6130f48161264d565b81146130ff57600080fd5b50565b6000813561310f816130eb565b80915050919050565b60008160001b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61315184613118565b9350801983169250808416831791505092915050565b600061318261317d6131788461264d565b612138565b61264d565b9050919050565b6000819050919050565b61319c82613167565b6131af6131a882613189565b8354613125565b8255505050565b600080833560016020038436030381126131d3576131d26130b4565b5b80840192508235915067ffffffffffffffff8211156131f5576131f46130b9565b5b602083019250600182023603831315613211576132106130be565b5b509250929050565b613224838383612260565b505050565b60008101600083018061323b81613102565b90506132478184613193565b505050600181016020830161325c81856131b6565b613267818386613219565b505050505050565b6132798282613229565b5050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006132b3601a83611ae5565b91506132be8261327d565b602082019050919050565b600060208201905081810360008301526132e2816132a6565b9050919050565b60006132f4826118aa565b91506132ff836118aa565b92508261330f5761330e61284e565b5b82820690509291505056fea26469706673582212206e18b5b44c6fcdd479868a02ae8ae98200838357ab90af830d1b0e4af00035ba64736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}