0x6080604052600436106101a05760003560e01c806379cc6790116100ec578063aacebbe31161008a578063c49b9a8011610064578063c49b9a801461061d578063dd62ed3e14610646578063e37ba8f914610683578063f2fde38b146106ac576101a7565b8063aacebbe31461058e578063b98c27e6146105b7578063bf8338b6146105e0576101a7565b806395d89b41116100c657806395d89b41146104ac578063a457c2d7146104d7578063a9059cbb14610514578063aa873c7b14610551576101a7565b806379cc67901461041b5780638b4cee08146104445780638da5cb5b14610481576101a7565b806327512f4d1161015957806342966c681161013357806342966c68146103735780634a74bb021461039c57806370a08231146103c7578063715018a614610404576101a7565b806327512f4d146102e2578063313ce5671461030b5780633950935114610336576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630cc835a3146102145780631233a8c41461025157806318160ddd1461027a57806323b872dd146102a5576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c16106d5565b6040516101ce9190613b91565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612f8d565b610777565b60405161020b9190613b76565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190613086565b610795565b6040516102489190613b76565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190613086565b610872565b005b34801561028657600080fd5b5061028f61093b565b60405161029c9190613e93565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190612f3e565b610945565b6040516102d99190613b76565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061300e565b610a04565b005b34801561031757600080fd5b50610320610a9d565b60405161032d9190613f08565b60405180910390f35b34801561034257600080fd5b5061035d60048036038101906103589190612f8d565b610aac565b60405161036a9190613b76565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613086565b610b4f565b005b3480156103a857600080fd5b506103b1610b63565b6040516103be9190613b76565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190612eb0565b610b7a565b6040516103fb9190613e93565b60405180910390f35b34801561041057600080fd5b50610419610bc3565b005b34801561042757600080fd5b50610442600480360381019061043d9190612f8d565b610c4b565b005b34801561045057600080fd5b5061046b60048036038101906104669190613086565b610c93565b6040516104789190613b76565b60405180910390f35b34801561048d57600080fd5b50610496610d70565b6040516104a39190613ad1565b60405180910390f35b3480156104b857600080fd5b506104c1610d99565b6040516104ce9190613b91565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612f8d565b610e3b565b60405161050b9190613b76565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612f8d565b610eee565b6040516105489190613b76565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190613086565b610f0c565b6040516105859190613b76565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612eb0565b610fe9565b005b3480156105c357600080fd5b506105de60048036038101906105d99190612fc9565b6111aa565b005b3480156105ec57600080fd5b5061060760048036038101906106029190613086565b6112e2565b6040516106149190613b76565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f919061300e565b6113bf565b005b34801561065257600080fd5b5061066d60048036038101906106689190612f02565b611458565b60405161067a9190613e93565b60405180910390f35b34801561068f57600080fd5b506106aa60048036038101906106a59190612eb0565b6114df565b005b3480156106b857600080fd5b506106d360048036038101906106ce9190612eb0565b6116a0565b005b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076d5780601f106107425761010080835404028352916020019161076d565b820191906000526020600020905b81548152906001019060200180831161075057829003601f168201915b5050505050905090565b600061078b610784611798565b84846117a0565b6001905092915050565b600061079f611798565b73ffffffffffffffffffffffffffffffffffffffff166107bd610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90613d53565b60405180910390fd5b6000821180156108235750606482105b610862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085990613cb3565b60405180910390fd5b8160078190555060019050919050565b61087a611798565b73ffffffffffffffffffffffffffffffffffffffff16610898610d70565b73ffffffffffffffffffffffffffffffffffffffff16146108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e590613d53565b60405180910390fd5b60008111610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092890613d33565b60405180910390fd5b80600b8190555050565b6000600454905090565b600061095284848461196b565b6109f98461095e611798565b6109f485600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ab611798565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb990919063ffffffff16565b6117a0565b600190509392505050565b610a0c611798565b73ffffffffffffffffffffffffffffffffffffffff16610a2a610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790613d53565b60405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b6000610aa7611f09565b905090565b6000610b45610ab9611798565b848460036000610ac7611798565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054016117a0565b6001905092915050565b610b60610b5a611798565b82611f31565b50565b6000600c60019054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bcb611798565b73ffffffffffffffffffffffffffffffffffffffff16610be9610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3690613d53565b60405180910390fd5b610c4960006120c7565b565b6000610c7082610c6285610c5d611798565b611458565b611eb990919063ffffffff16565b9050610c8483610c7e611798565b836117a0565b610c8e8383611f31565b505050565b6000610c9d611798565b73ffffffffffffffffffffffffffffffffffffffff16610cbb610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0890613d53565b60405180910390fd5b600082118015610d215750606482105b610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613cb3565b60405180910390fd5b8160088190555060019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e315780601f10610e0657610100808354040283529160200191610e31565b820191906000526020600020905b815481529060010190602001808311610e1457829003601f168201915b5050505050905090565b6000610ee4610e48611798565b84610edf8560036000610e59611798565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb990919063ffffffff16565b6117a0565b6001905092915050565b6000610f02610efb611798565b848461196b565b6001905092915050565b6000610f16611798565b73ffffffffffffffffffffffffffffffffffffffff16610f34610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190613d53565b60405180910390fd5b600082118015610f9a5750606482105b610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090613e73565b60405180910390fd5b81600a8190555060019050919050565b610ff1611798565b73ffffffffffffffffffffffffffffffffffffffff1661100f610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c90613d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc90613d93565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613cf3565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111b2611798565b73ffffffffffffffffffffffffffffffffffffffff166111d0610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90613d53565b60405180910390fd5b6000828290501161126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613d73565b60405180910390fd5b60005b828290508110156112dd576112cf83838381811061128957fe5b90506040020160000160208101906112a19190612eb0565b60648585858181106112af57fe5b905060400201602001356112c161093b565b02816112c957fe5b04610eee565b50808060010191505061126f565b505050565b60006112ec611798565b73ffffffffffffffffffffffffffffffffffffffff1661130a610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135790613d53565b60405180910390fd5b6000821180156113705750606482105b6113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690613e73565b60405180910390fd5b8160098190555060019050919050565b6113c7611798565b73ffffffffffffffffffffffffffffffffffffffff166113e5610d70565b73ffffffffffffffffffffffffffffffffffffffff161461143b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143290613d53565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114e7611798565b73ffffffffffffffffffffffffffffffffffffffff16611505610d70565b73ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290613d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613d93565b60405180910390fd5b600c60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561165c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165390613cf3565b60405180910390fd5b80600c60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116a8611798565b73ffffffffffffffffffffffffffffffffffffffff166116c6610d70565b73ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390613d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178390613bf3565b60405180910390fd5b611795816120c7565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790613e13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187790613c13565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195e9190613e93565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290613df3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4290613bd3565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611ab557600080fd5b505afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed9190612ed9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b7157600080fd5b505afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190612ed9565b6040518363ffffffff1660e01b8152600401611bc6929190613aec565b60206040518083038186803b158015611bde57600080fd5b505afa158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c169190612ed9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d3957600c60009054906101000a900460ff1615611cb6576064611c6b61093b565b81611c7257fe5b04821115611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613cd3565b60405180910390fd5b5b60006064600754840281611cc657fe5b04905060008184039050611cdb86868361218b565b611cf486306064600954860281611cee57fe5b0461218b565b611d3286600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600954606403860281611d2c57fe5b0461218b565b5050611eb3565b611d41610d70565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611dac5750611d7d610d70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611dc157611dbc84848461218b565b611eb2565b60006064600854840281611dd157fe5b04905060008184039050611de686868361218b565b611dff86306064600a54860281611df957fe5b0461218b565b611e3d86600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a54606403860281611e3757fe5b0461218b565b600c60019054906101000a900460ff168015611e865750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eaf576000611e9630610b7a565b9050600b548110611ead57611eac600b54612406565b5b505b50505b5b50505050565b6000828284039150811115611f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efa90613bb3565b60405180910390fd5b92915050565b60007f0000000000000000000000000000000000000000000000000000000000000012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613db3565b60405180910390fd5b611fad82600083612846565b611fff81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb990919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061205781600454611eb990919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120bb9190613e93565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f290613df3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561226b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226290613bd3565b60405180910390fd5b612276838383612846565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f490613c53565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed9190613e93565b60405180910390a361240084848461284b565b50505050565b6001600c60026101000a81548160ff0219169083151502179055506060600267ffffffffffffffff8111801561243b57600080fd5b5060405190808252806020026020018201604052801561246a5781602001602082028036833780820191505090505b509050308160008151811061247b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561251d57600080fd5b505afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190612ed9565b8160018151811061256257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125be30737a250d5630b4cf539739df2c5dacb4c659f2488d600585026117a0565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476002848161260657fe5b0460008430426040518663ffffffff1660e01b815260040161262c959493929190613eae565b600060405180830381600087803b15801561264657600080fd5b505af115801561265a573d6000803e3d6000fd5b50505050600047905060008061271e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126d257600080fd5b505afa1580156126e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270a9190612ed9565b6002888161271457fe5b0486600080612850565b91509150600061272d30610b7a565b905081841015801561273f5750828110155b1561282357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127cd96959493929190613b15565b6060604051808303818588803b1580156127e657600080fd5b505af11580156127fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061281f91906130af565b5050505b50505050506000600c60026101000a81548160ff02191690831515021790555050565b505050565b505050565b600080600080612900600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c157600080fd5b505afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f99190612ed9565b8b8b612a07565b915091506000821480156129145750600081145b1561292857878780945081955050506129fa565b6000612935898484612b19565b90508781116129905785811015612981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297890613c93565b60405180910390fd5b888180955081965050506129f8565b600061299d898486612b19565b9050898111156129a957fe5b878110156129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e390613e33565b60405180910390fd5b80898096508197505050505b505b5050965096945050505050565b6000806000612a168585612bd1565b509050600080612a27888888612cff565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612a6c57600080fd5b505afa158015612a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa49190613037565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612b03578082612b06565b81815b8095508196505050505050935093915050565b6000808411612b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5490613dd3565b60405180910390fd5b600083118015612b6d5750600082115b612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba390613d13565b60405180910390fd5b82612bc08386612d7190919063ffffffff16565b81612bc757fe5b0490509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3a90613c73565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610612c7d578284612c80565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cef90613e53565b60405180910390fd5b9250929050565b6000806000612d0e8585612bd1565b91509150858282604051602001612d26929190613a63565b60405160208183030381529060405280519060200120604051602001612d4d929190613a8f565b6040516020818303038152906040528051906020012060001c925050509392505050565b600080821480612d8e5750828283850292508281612d8b57fe5b04145b612dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc490613c33565b60405180910390fd5b92915050565b600081359050612de28161409d565b92915050565b600081519050612df78161409d565b92915050565b60008083601f840112612e0f57600080fd5b8235905067ffffffffffffffff811115612e2857600080fd5b602083019150836040820283011115612e4057600080fd5b9250929050565b600081359050612e56816140b4565b92915050565b600081519050612e6b816140cb565b92915050565b600081359050612e80816140e2565b92915050565b600081519050612e95816140e2565b92915050565b600081519050612eaa816140f9565b92915050565b600060208284031215612ec257600080fd5b6000612ed084828501612dd3565b91505092915050565b600060208284031215612eeb57600080fd5b6000612ef984828501612de8565b91505092915050565b60008060408385031215612f1557600080fd5b6000612f2385828601612dd3565b9250506020612f3485828601612dd3565b9150509250929050565b600080600060608486031215612f5357600080fd5b6000612f6186828701612dd3565b9350506020612f7286828701612dd3565b9250506040612f8386828701612e71565b9150509250925092565b60008060408385031215612fa057600080fd5b6000612fae85828601612dd3565b9250506020612fbf85828601612e71565b9150509250929050565b60008060208385031215612fdc57600080fd5b600083013567ffffffffffffffff811115612ff657600080fd5b61300285828601612dfd565b92509250509250929050565b60006020828403121561302057600080fd5b600061302e84828501612e47565b91505092915050565b60008060006060848603121561304c57600080fd5b600061305a86828701612e5c565b935050602061306b86828701612e5c565b925050604061307c86828701612e9b565b9150509250925092565b60006020828403121561309857600080fd5b60006130a684828501612e71565b91505092915050565b6000806000606084860312156130c457600080fd5b60006130d286828701612e86565b93505060206130e386828701612e86565b92505060406130f486828701612e86565b9150509250925092565b600061310a8383613116565b60208301905092915050565b61311f81613f83565b82525050565b61312e81613f83565b82525050565b61314561314082613f83565b614051565b82525050565b600061315682613f33565b6131608185613f56565b935061316b83613f23565b8060005b8381101561319c57815161318388826130fe565b975061318e83613f49565b92505060018101905061316f565b5085935050505092915050565b6131b281613f95565b82525050565b6131c96131c482613fa1565b614063565b82525050565b6131d88161400c565b82525050565b60006131e982613f3e565b6131f38185613f67565b935061320381856020860161401e565b61320c8161407f565b840191505092915050565b6000613224601583613f67565b91507f64732d6d6174682d7375622d756e646572666c6f7700000000000000000000006000830152602082019050919050565b6000613264602383613f67565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132ca602683613f67565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613330602283613f67565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613396601483613f67565b91507f64732d6d6174682d6d756c2d6f766572666c6f770000000000000000000000006000830152602082019050919050565b60006133d6602683613f67565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061343c602583613f67565b91507f556e697377617056324c6962726172793a204944454e544943414c5f4144445260008301527f45535345530000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134a2602683613f67565b91507f556e69737761705632526f757465723a20494e53554646494349454e545f425f60008301527f414d4f554e5400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613508601d83613f67565b91507f666565206d7573742062652067726561746572207468616e207a65726f0000006000830152602082019050919050565b6000613548602083613f78565b91507f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f6000830152602082019050919050565b6000613588601383613f67565b91507f45786365656420627579696e67206c696d6974000000000000000000000000006000830152602082019050919050565b60006135c8601983613f67565b91507f6164647265737320697320616c726561647920736574746564000000000000006000830152602082019050919050565b6000613608602883613f67565b91507f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008301527f49515549444954590000000000000000000000000000000000000000000000006020830152604082019050919050565b600061366e600d83613f67565b91507f4e6f742061626c65207a65726f000000000000000000000000000000000000006000830152602082019050919050565b60006136ae600183613f78565b91507fff000000000000000000000000000000000000000000000000000000000000006000830152600182019050919050565b60006136ee602083613f67565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061372e600783613f67565b91507f4e6f206c697374000000000000000000000000000000000000000000000000006000830152602082019050919050565b600061376e600f83613f67565b91507f61646472657373206973206e756c6c00000000000000000000000000000000006000830152602082019050919050565b60006137ae602183613f67565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613814602583613f67565b91507f556e697377617056324c6962726172793a20494e53554646494349454e545f4160008301527f4d4f554e540000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061387a602583613f67565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138e0602483613f67565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613946602683613f67565b91507f556e69737761705632526f757465723a20494e53554646494349454e545f415f60008301527f414d4f554e5400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139ac601e83613f67565b91507f556e697377617056324c6962726172793a205a45524f5f4144445245535300006000830152602082019050919050565b60006139ec602283613f67565b91507f646973636f756e74206d7573742062652067726561746572207468616e207a6560008301527f726f0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b613a4e81613fe5565b82525050565b613a5d81613fff565b82525050565b6000613a6f8285613134565b601482019150613a7f8284613134565b6014820191508190509392505050565b6000613a9a826136a1565b9150613aa68285613134565b601482019150613ab682846131b8565b602082019150613ac58261353b565b91508190509392505050565b6000602082019050613ae66000830184613125565b92915050565b6000604082019050613b016000830185613125565b613b0e6020830184613125565b9392505050565b600060c082019050613b2a6000830189613125565b613b376020830188613a45565b613b4460408301876131cf565b613b5160608301866131cf565b613b5e6080830185613125565b613b6b60a0830184613a45565b979650505050505050565b6000602082019050613b8b60008301846131a9565b92915050565b60006020820190508181036000830152613bab81846131de565b905092915050565b60006020820190508181036000830152613bcc81613217565b9050919050565b60006020820190508181036000830152613bec81613257565b9050919050565b60006020820190508181036000830152613c0c816132bd565b9050919050565b60006020820190508181036000830152613c2c81613323565b9050919050565b60006020820190508181036000830152613c4c81613389565b9050919050565b60006020820190508181036000830152613c6c816133c9565b9050919050565b60006020820190508181036000830152613c8c8161342f565b9050919050565b60006020820190508181036000830152613cac81613495565b9050919050565b60006020820190508181036000830152613ccc816134fb565b9050919050565b60006020820190508181036000830152613cec8161357b565b9050919050565b60006020820190508181036000830152613d0c816135bb565b9050919050565b60006020820190508181036000830152613d2c816135fb565b9050919050565b60006020820190508181036000830152613d4c81613661565b9050919050565b60006020820190508181036000830152613d6c816136e1565b9050919050565b60006020820190508181036000830152613d8c81613721565b9050919050565b60006020820190508181036000830152613dac81613761565b9050919050565b60006020820190508181036000830152613dcc816137a1565b9050919050565b60006020820190508181036000830152613dec81613807565b9050919050565b60006020820190508181036000830152613e0c8161386d565b9050919050565b60006020820190508181036000830152613e2c816138d3565b9050919050565b60006020820190508181036000830152613e4c81613939565b9050919050565b60006020820190508181036000830152613e6c8161399f565b9050919050565b60006020820190508181036000830152613e8c816139df565b9050919050565b6000602082019050613ea86000830184613a45565b92915050565b600060a082019050613ec36000830188613a45565b613ed060208301876131cf565b8181036040830152613ee2818661314b565b9050613ef16060830185613125565b613efe6080830184613a45565b9695505050505050565b6000602082019050613f1d6000830184613a54565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613f8e82613fc5565b9050919050565b60008115159050919050565b6000819050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b600061401782613fe5565b9050919050565b60005b8381101561403c578082015181840152602081019050614021565b8381111561404b576000848401525b50505050565b600061405c8261406d565b9050919050565b6000819050919050565b600061407882614090565b9050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b6140a681613f83565b81146140b157600080fd5b50565b6140bd81613f95565b81146140c857600080fd5b50565b6140d481613fab565b81146140df57600080fd5b50565b6140eb81613fe5565b81146140f657600080fd5b50565b61410281613fef565b811461410d57600080fd5b5056fea2646970667358221220aa44caa6b97b4fa5a48bf7f490215dd94984300fa86c78ae77c5c29efb1d28b564736f6c63430006060033
0x60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600755600360085560326009556032600a55683635c9adc5dea00000600b5573efb45f34a6f83b8e6e3c62c244eef828cdabaffd600c60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507316ad0dbe526fb172c4f2019aa808bd761c333cec600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200013157600080fd5b5060126040518060400160405280600781526020017f4d697a75636869000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4d697a7563686900000000000000000000000000000000000000000000000000815250620001c0620001b46200023f60201b60201c565b6200024760201b60201c565b8160059080519060200190620001d892919062000479565b508060069080519060200190620001f192919062000479565b5050508060ff1660808160ff1660f81b815250505060006b033b2e3c9fd0803ce80000009050620002386200022b6200023f60201b60201c565b826200030b60201b60201c565b50620005d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200037e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000375906200057b565b60405180910390fd5b62000392600083836200046f60201b60201c565b8060046000828254019250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044f91906200059d565b60405180910390a36200046b600083836200047460201b60201c565b5050565b505050565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004bc57805160ff1916838001178555620004ed565b82800160010185558215620004ed579182015b82811115620004ec578251825591602001919060010190620004cf565b5b509050620004fc919062000500565b5090565b6200052591905b808211156200052157600081600090555060010162000507565b5090565b90565b600062000537601f83620005ba565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200057581620005cb565b82525050565b60006020820190508181036000830152620005968162000528565b9050919050565b6000602082019050620005b460008301846200056a565b92915050565b600082825260208201905092915050565b6000819050919050565b60805160f81c614146620005f360003980611f0d52506141466000f3fe6080604052600436106101a05760003560e01c806379cc6790116100ec578063aacebbe31161008a578063c49b9a8011610064578063c49b9a801461061d578063dd62ed3e14610646578063e37ba8f914610683578063f2fde38b146106ac576101a7565b8063aacebbe31461058e578063b98c27e6146105b7578063bf8338b6146105e0576101a7565b806395d89b41116100c657806395d89b41146104ac578063a457c2d7146104d7578063a9059cbb14610514578063aa873c7b14610551576101a7565b806379cc67901461041b5780638b4cee08146104445780638da5cb5b14610481576101a7565b806327512f4d1161015957806342966c681161013357806342966c68146103735780634a74bb021461039c57806370a08231146103c7578063715018a614610404576101a7565b806327512f4d146102e2578063313ce5671461030b5780633950935114610336576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630cc835a3146102145780631233a8c41461025157806318160ddd1461027a57806323b872dd146102a5576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c16106d5565b6040516101ce9190613b91565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612f8d565b610777565b60405161020b9190613b76565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190613086565b610795565b6040516102489190613b76565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190613086565b610872565b005b34801561028657600080fd5b5061028f61093b565b60405161029c9190613e93565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c79190612f3e565b610945565b6040516102d99190613b76565b60405180910390f35b3480156102ee57600080fd5b506103096004803603810190610304919061300e565b610a04565b005b34801561031757600080fd5b50610320610a9d565b60405161032d9190613f08565b60405180910390f35b34801561034257600080fd5b5061035d60048036038101906103589190612f8d565b610aac565b60405161036a9190613b76565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190613086565b610b4f565b005b3480156103a857600080fd5b506103b1610b63565b6040516103be9190613b76565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190612eb0565b610b7a565b6040516103fb9190613e93565b60405180910390f35b34801561041057600080fd5b50610419610bc3565b005b34801561042757600080fd5b50610442600480360381019061043d9190612f8d565b610c4b565b005b34801561045057600080fd5b5061046b60048036038101906104669190613086565b610c93565b6040516104789190613b76565b60405180910390f35b34801561048d57600080fd5b50610496610d70565b6040516104a39190613ad1565b60405180910390f35b3480156104b857600080fd5b506104c1610d99565b6040516104ce9190613b91565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612f8d565b610e3b565b60405161050b9190613b76565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612f8d565b610eee565b6040516105489190613b76565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190613086565b610f0c565b6040516105859190613b76565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612eb0565b610fe9565b005b3480156105c357600080fd5b506105de60048036038101906105d99190612fc9565b6111aa565b005b3480156105ec57600080fd5b5061060760048036038101906106029190613086565b6112e2565b6040516106149190613b76565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f919061300e565b6113bf565b005b34801561065257600080fd5b5061066d60048036038101906106689190612f02565b611458565b60405161067a9190613e93565b60405180910390f35b34801561068f57600080fd5b506106aa60048036038101906106a59190612eb0565b6114df565b005b3480156106b857600080fd5b506106d360048036038101906106ce9190612eb0565b6116a0565b005b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561076d5780601f106107425761010080835404028352916020019161076d565b820191906000526020600020905b81548152906001019060200180831161075057829003601f168201915b5050505050905090565b600061078b610784611798565b84846117a0565b6001905092915050565b600061079f611798565b73ffffffffffffffffffffffffffffffffffffffff166107bd610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90613d53565b60405180910390fd5b6000821180156108235750606482105b610862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085990613cb3565b60405180910390fd5b8160078190555060019050919050565b61087a611798565b73ffffffffffffffffffffffffffffffffffffffff16610898610d70565b73ffffffffffffffffffffffffffffffffffffffff16146108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e590613d53565b60405180910390fd5b60008111610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092890613d33565b60405180910390fd5b80600b8190555050565b6000600454905090565b600061095284848461196b565b6109f98461095e611798565b6109f485600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ab611798565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb990919063ffffffff16565b6117a0565b600190509392505050565b610a0c611798565b73ffffffffffffffffffffffffffffffffffffffff16610a2a610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790613d53565b60405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b6000610aa7611f09565b905090565b6000610b45610ab9611798565b848460036000610ac7611798565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054016117a0565b6001905092915050565b610b60610b5a611798565b82611f31565b50565b6000600c60019054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bcb611798565b73ffffffffffffffffffffffffffffffffffffffff16610be9610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3690613d53565b60405180910390fd5b610c4960006120c7565b565b6000610c7082610c6285610c5d611798565b611458565b611eb990919063ffffffff16565b9050610c8483610c7e611798565b836117a0565b610c8e8383611f31565b505050565b6000610c9d611798565b73ffffffffffffffffffffffffffffffffffffffff16610cbb610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0890613d53565b60405180910390fd5b600082118015610d215750606482105b610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613cb3565b60405180910390fd5b8160088190555060019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e315780601f10610e0657610100808354040283529160200191610e31565b820191906000526020600020905b815481529060010190602001808311610e1457829003601f168201915b5050505050905090565b6000610ee4610e48611798565b84610edf8560036000610e59611798565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb990919063ffffffff16565b6117a0565b6001905092915050565b6000610f02610efb611798565b848461196b565b6001905092915050565b6000610f16611798565b73ffffffffffffffffffffffffffffffffffffffff16610f34610d70565b73ffffffffffffffffffffffffffffffffffffffff1614610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190613d53565b60405180910390fd5b600082118015610f9a5750606482105b610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090613e73565b60405180910390fd5b81600a8190555060019050919050565b610ff1611798565b73ffffffffffffffffffffffffffffffffffffffff1661100f610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c90613d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc90613d93565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613cf3565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111b2611798565b73ffffffffffffffffffffffffffffffffffffffff166111d0610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90613d53565b60405180910390fd5b6000828290501161126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613d73565b60405180910390fd5b60005b828290508110156112dd576112cf83838381811061128957fe5b90506040020160000160208101906112a19190612eb0565b60648585858181106112af57fe5b905060400201602001356112c161093b565b02816112c957fe5b04610eee565b50808060010191505061126f565b505050565b60006112ec611798565b73ffffffffffffffffffffffffffffffffffffffff1661130a610d70565b73ffffffffffffffffffffffffffffffffffffffff1614611360576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135790613d53565b60405180910390fd5b6000821180156113705750606482105b6113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690613e73565b60405180910390fd5b8160098190555060019050919050565b6113c7611798565b73ffffffffffffffffffffffffffffffffffffffff166113e5610d70565b73ffffffffffffffffffffffffffffffffffffffff161461143b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143290613d53565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114e7611798565b73ffffffffffffffffffffffffffffffffffffffff16611505610d70565b73ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290613d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613d93565b60405180910390fd5b600c60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561165c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165390613cf3565b60405180910390fd5b80600c60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116a8611798565b73ffffffffffffffffffffffffffffffffffffffff166116c6610d70565b73ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390613d53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178390613bf3565b60405180910390fd5b611795816120c7565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790613e13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187790613c13565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195e9190613e93565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290613df3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4290613bd3565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611ab557600080fd5b505afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed9190612ed9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b7157600080fd5b505afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190612ed9565b6040518363ffffffff1660e01b8152600401611bc6929190613aec565b60206040518083038186803b158015611bde57600080fd5b505afa158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c169190612ed9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d3957600c60009054906101000a900460ff1615611cb6576064611c6b61093b565b81611c7257fe5b04821115611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613cd3565b60405180910390fd5b5b60006064600754840281611cc657fe5b04905060008184039050611cdb86868361218b565b611cf486306064600954860281611cee57fe5b0461218b565b611d3286600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600954606403860281611d2c57fe5b0461218b565b5050611eb3565b611d41610d70565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611dac5750611d7d610d70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611dc157611dbc84848461218b565b611eb2565b60006064600854840281611dd157fe5b04905060008184039050611de686868361218b565b611dff86306064600a54860281611df957fe5b0461218b565b611e3d86600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a54606403860281611e3757fe5b0461218b565b600c60019054906101000a900460ff168015611e865750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eaf576000611e9630610b7a565b9050600b548110611ead57611eac600b54612406565b5b505b50505b5b50505050565b6000828284039150811115611f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efa90613bb3565b60405180910390fd5b92915050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613db3565b60405180910390fd5b611fad82600083612846565b611fff81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eb990919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061205781600454611eb990919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120bb9190613e93565b60405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f290613df3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561226b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226290613bd3565b60405180910390fd5b612276838383612846565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f490613c53565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed9190613e93565b60405180910390a361240084848461284b565b50505050565b6001600c60026101000a81548160ff0219169083151502179055506060600267ffffffffffffffff8111801561243b57600080fd5b5060405190808252806020026020018201604052801561246a5781602001602082028036833780820191505090505b509050308160008151811061247b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561251d57600080fd5b505afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190612ed9565b8160018151811061256257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125be30737a250d5630b4cf539739df2c5dacb4c659f2488d600585026117a0565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476002848161260657fe5b0460008430426040518663ffffffff1660e01b815260040161262c959493929190613eae565b600060405180830381600087803b15801561264657600080fd5b505af115801561265a573d6000803e3d6000fd5b50505050600047905060008061271e30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126d257600080fd5b505afa1580156126e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270a9190612ed9565b6002888161271457fe5b0486600080612850565b91509150600061272d30610b7a565b905081841015801561273f5750828110155b1561282357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127cd96959493929190613b15565b6060604051808303818588803b1580156127e657600080fd5b505af11580156127fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061281f91906130af565b5050505b50505050506000600c60026101000a81548160ff02191690831515021790555050565b505050565b505050565b600080600080612900600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c157600080fd5b505afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f99190612ed9565b8b8b612a07565b915091506000821480156129145750600081145b1561292857878780945081955050506129fa565b6000612935898484612b19565b90508781116129905785811015612981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297890613c93565b60405180910390fd5b888180955081965050506129f8565b600061299d898486612b19565b9050898111156129a957fe5b878110156129ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e390613e33565b60405180910390fd5b80898096508197505050505b505b5050965096945050505050565b6000806000612a168585612bd1565b509050600080612a27888888612cff565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015612a6c57600080fd5b505afa158015612a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa49190613037565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614612b03578082612b06565b81815b8095508196505050505050935093915050565b6000808411612b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5490613dd3565b60405180910390fd5b600083118015612b6d5750600082115b612bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba390613d13565b60405180910390fd5b82612bc08386612d7190919063ffffffff16565b81612bc757fe5b0490509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3a90613c73565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610612c7d578284612c80565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cef90613e53565b60405180910390fd5b9250929050565b6000806000612d0e8585612bd1565b91509150858282604051602001612d26929190613a63565b60405160208183030381529060405280519060200120604051602001612d4d929190613a8f565b6040516020818303038152906040528051906020012060001c925050509392505050565b600080821480612d8e5750828283850292508281612d8b57fe5b04145b612dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc490613c33565b60405180910390fd5b92915050565b600081359050612de28161409d565b92915050565b600081519050612df78161409d565b92915050565b60008083601f840112612e0f57600080fd5b8235905067ffffffffffffffff811115612e2857600080fd5b602083019150836040820283011115612e4057600080fd5b9250929050565b600081359050612e56816140b4565b92915050565b600081519050612e6b816140cb565b92915050565b600081359050612e80816140e2565b92915050565b600081519050612e95816140e2565b92915050565b600081519050612eaa816140f9565b92915050565b600060208284031215612ec257600080fd5b6000612ed084828501612dd3565b91505092915050565b600060208284031215612eeb57600080fd5b6000612ef984828501612de8565b91505092915050565b60008060408385031215612f1557600080fd5b6000612f2385828601612dd3565b9250506020612f3485828601612dd3565b9150509250929050565b600080600060608486031215612f5357600080fd5b6000612f6186828701612dd3565b9350506020612f7286828701612dd3565b9250506040612f8386828701612e71565b9150509250925092565b60008060408385031215612fa057600080fd5b6000612fae85828601612dd3565b9250506020612fbf85828601612e71565b9150509250929050565b60008060208385031215612fdc57600080fd5b600083013567ffffffffffffffff811115612ff657600080fd5b61300285828601612dfd565b92509250509250929050565b60006020828403121561302057600080fd5b600061302e84828501612e47565b91505092915050565b60008060006060848603121561304c57600080fd5b600061305a86828701612e5c565b935050602061306b86828701612e5c565b925050604061307c86828701612e9b565b9150509250925092565b60006020828403121561309857600080fd5b60006130a684828501612e71565b91505092915050565b6000806000606084860312156130c457600080fd5b60006130d286828701612e86565b93505060206130e386828701612e86565b92505060406130f486828701612e86565b9150509250925092565b600061310a8383613116565b60208301905092915050565b61311f81613f83565b82525050565b61312e81613f83565b82525050565b61314561314082613f83565b614051565b82525050565b600061315682613f33565b6131608185613f56565b935061316b83613f23565b8060005b8381101561319c57815161318388826130fe565b975061318e83613f49565b92505060018101905061316f565b5085935050505092915050565b6131b281613f95565b82525050565b6131c96131c482613fa1565b614063565b82525050565b6131d88161400c565b82525050565b60006131e982613f3e565b6131f38185613f67565b935061320381856020860161401e565b61320c8161407f565b840191505092915050565b6000613224601583613f67565b91507f64732d6d6174682d7375622d756e646572666c6f7700000000000000000000006000830152602082019050919050565b6000613264602383613f67565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132ca602683613f67565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613330602283613f67565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613396601483613f67565b91507f64732d6d6174682d6d756c2d6f766572666c6f770000000000000000000000006000830152602082019050919050565b60006133d6602683613f67565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061343c602583613f67565b91507f556e697377617056324c6962726172793a204944454e544943414c5f4144445260008301527f45535345530000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134a2602683613f67565b91507f556e69737761705632526f757465723a20494e53554646494349454e545f425f60008301527f414d4f554e5400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613508601d83613f67565b91507f666565206d7573742062652067726561746572207468616e207a65726f0000006000830152602082019050919050565b6000613548602083613f78565b91507f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f6000830152602082019050919050565b6000613588601383613f67565b91507f45786365656420627579696e67206c696d6974000000000000000000000000006000830152602082019050919050565b60006135c8601983613f67565b91507f6164647265737320697320616c726561647920736574746564000000000000006000830152602082019050919050565b6000613608602883613f67565b91507f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008301527f49515549444954590000000000000000000000000000000000000000000000006020830152604082019050919050565b600061366e600d83613f67565b91507f4e6f742061626c65207a65726f000000000000000000000000000000000000006000830152602082019050919050565b60006136ae600183613f78565b91507fff000000000000000000000000000000000000000000000000000000000000006000830152600182019050919050565b60006136ee602083613f67565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061372e600783613f67565b91507f4e6f206c697374000000000000000000000000000000000000000000000000006000830152602082019050919050565b600061376e600f83613f67565b91507f61646472657373206973206e756c6c00000000000000000000000000000000006000830152602082019050919050565b60006137ae602183613f67565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613814602583613f67565b91507f556e697377617056324c6962726172793a20494e53554646494349454e545f4160008301527f4d4f554e540000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061387a602583613f67565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138e0602483613f67565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613946602683613f67565b91507f556e69737761705632526f757465723a20494e53554646494349454e545f415f60008301527f414d4f554e5400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006139ac601e83613f67565b91507f556e697377617056324c6962726172793a205a45524f5f4144445245535300006000830152602082019050919050565b60006139ec602283613f67565b91507f646973636f756e74206d7573742062652067726561746572207468616e207a6560008301527f726f0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b613a4e81613fe5565b82525050565b613a5d81613fff565b82525050565b6000613a6f8285613134565b601482019150613a7f8284613134565b6014820191508190509392505050565b6000613a9a826136a1565b9150613aa68285613134565b601482019150613ab682846131b8565b602082019150613ac58261353b565b91508190509392505050565b6000602082019050613ae66000830184613125565b92915050565b6000604082019050613b016000830185613125565b613b0e6020830184613125565b9392505050565b600060c082019050613b2a6000830189613125565b613b376020830188613a45565b613b4460408301876131cf565b613b5160608301866131cf565b613b5e6080830185613125565b613b6b60a0830184613a45565b979650505050505050565b6000602082019050613b8b60008301846131a9565b92915050565b60006020820190508181036000830152613bab81846131de565b905092915050565b60006020820190508181036000830152613bcc81613217565b9050919050565b60006020820190508181036000830152613bec81613257565b9050919050565b60006020820190508181036000830152613c0c816132bd565b9050919050565b60006020820190508181036000830152613c2c81613323565b9050919050565b60006020820190508181036000830152613c4c81613389565b9050919050565b60006020820190508181036000830152613c6c816133c9565b9050919050565b60006020820190508181036000830152613c8c8161342f565b9050919050565b60006020820190508181036000830152613cac81613495565b9050919050565b60006020820190508181036000830152613ccc816134fb565b9050919050565b60006020820190508181036000830152613cec8161357b565b9050919050565b60006020820190508181036000830152613d0c816135bb565b9050919050565b60006020820190508181036000830152613d2c816135fb565b9050919050565b60006020820190508181036000830152613d4c81613661565b9050919050565b60006020820190508181036000830152613d6c816136e1565b9050919050565b60006020820190508181036000830152613d8c81613721565b9050919050565b60006020820190508181036000830152613dac81613761565b9050919050565b60006020820190508181036000830152613dcc816137a1565b9050919050565b60006020820190508181036000830152613dec81613807565b9050919050565b60006020820190508181036000830152613e0c8161386d565b9050919050565b60006020820190508181036000830152613e2c816138d3565b9050919050565b60006020820190508181036000830152613e4c81613939565b9050919050565b60006020820190508181036000830152613e6c8161399f565b9050919050565b60006020820190508181036000830152613e8c816139df565b9050919050565b6000602082019050613ea86000830184613a45565b92915050565b600060a082019050613ec36000830188613a45565b613ed060208301876131cf565b8181036040830152613ee2818661314b565b9050613ef16060830185613125565b613efe6080830184613a45565b9695505050505050565b6000602082019050613f1d6000830184613a54565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613f8e82613fc5565b9050919050565b60008115159050919050565b6000819050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b600061401782613fe5565b9050919050565b60005b8381101561403c578082015181840152602081019050614021565b8381111561404b576000848401525b50505050565b600061405c8261406d565b9050919050565b6000819050919050565b600061407882614090565b9050919050565b6000601f19601f8301169050919050565b60008160601b9050919050565b6140a681613f83565b81146140b157600080fd5b50565b6140bd81613f95565b81146140c857600080fd5b50565b6140d481613fab565b81146140df57600080fd5b50565b6140eb81613fe5565b81146140f657600080fd5b50565b61410281613fef565b811461410d57600080fd5b5056fea2646970667358221220aa44caa6b97b4fa5a48bf7f490215dd94984300fa86c78ae77c5c29efb1d28b564736f6c63430006060033