60806040526040518060400160405280600581526020017f302e302e310000000000000000000000000000000000000000000000000000008152506008908051906020019062000051929190620001f9565b503480156200005f57600080fd5b5060405162003c4038038062003c4083398181016040528101906200008591906200031b565b818181600090805190602001906200009f929190620001f9565b508060019080519060200190620000b8929190620001f9565b5050506000600760006101000a81548160ff021916908315150217905550620000f6620000ea6200011560201b60201c565b6200011d60201b60201c565b6200010d6009620001e360201b62000c571760201c565b5050620004fe565b600033905090565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001816000016000828254019250508190555050565b828054620002079062000423565b90600052602060002090601f0160209004810192826200022b576000855562000277565b82601f106200024657805160ff191683800117855562000277565b8280016001018555821562000277579182015b828111156200027657825182559160200191906001019062000259565b5b5090506200028691906200028a565b5090565b5b80821115620002a55760008160009055506001016200028b565b5090565b6000620002c0620002ba84620003b7565b6200038e565b905082815260208101848484011115620002d957600080fd5b620002e6848285620003ed565b509392505050565b600082601f8301126200030057600080fd5b815162000312848260208601620002a9565b91505092915050565b600080604083850312156200032f57600080fd5b600083015167ffffffffffffffff8111156200034a57600080fd5b6200035885828601620002ee565b925050602083015167ffffffffffffffff8111156200037657600080fd5b6200038485828601620002ee565b9150509250929050565b60006200039a620003ad565b9050620003a8828262000459565b919050565b6000604051905090565b600067ffffffffffffffff821115620003d557620003d4620004be565b5b620003e082620004ed565b9050602081019050919050565b60005b838110156200040d578082015181840152602081019050620003f0565b838111156200041d576000848401525b50505050565b600060028204905060018216806200043c57607f821691505b602082108114156200045357620004526200048f565b5b50919050565b6200046482620004ed565b810181811067ffffffffffffffff82111715620004865762000485620004be565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b613732806200050e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80635c975abb116100c357806395d89b411161007c57806395d89b4114610352578063a22cb46514610370578063b88d4fde1461038c578063c87b56dd146103a8578063e985e9c5146103d8578063f2fde38b146104085761014d565b80635c975abb146102a25780636352211e146102c057806370a08231146102f0578063715018a6146103205780638456cb591461032a5780638da5cb5b146103345761014d565b806323b872dd1161011557806323b872dd1461020a5780633f4ba83a1461022657806340d097c31461023057806342842e0e1461024c57806342966c681461026857806354fd4d50146102845761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806318160ddd146101ec575b600080fd5b61016c60048036038101906101679190612585565b610424565b6040516101799190612ad7565b60405180910390f35b61018a610436565b6040516101979190612af2565b60405180910390f35b6101ba60048036038101906101b591906125d7565b6104c8565b6040516101c79190612a70565b60405180910390f35b6101ea60048036038101906101e59190612549565b61050e565b005b6101f4610626565b6040516102019190612d14565b60405180910390f35b610224600480360381019061021f9190612443565b610643565b005b61022e6106a3565b005b61024a600480360381019061024591906123de565b6106b5565b005b61026660048036038101906102619190612443565b6106db565b005b610282600480360381019061027d91906125d7565b6106fb565b005b61028c610757565b6040516102999190612af2565b60405180910390f35b6102aa6107e9565b6040516102b79190612ad7565b60405180910390f35b6102da60048036038101906102d591906125d7565b610800565b6040516102e79190612a70565b60405180910390f35b61030a600480360381019061030591906123de565b610887565b6040516103179190612d14565b60405180910390f35b61032861093f565b005b610332610953565b005b61033c610965565b6040516103499190612a70565b60405180910390f35b61035a61098f565b6040516103679190612af2565b60405180910390f35b61038a6004803603810190610385919061250d565b610a21565b005b6103a660048036038101906103a19190612492565b610a37565b005b6103c260048036038101906103bd91906125d7565b610a99565b6040516103cf9190612af2565b60405180910390f35b6103f260048036038101906103ed9190612407565b610b3f565b6040516103ff9190612ad7565b60405180910390f35b610422600480360381019061041d91906123de565b610bd3565b005b600061042f82610c6d565b9050919050565b60606000805461044590612f93565b80601f016020809104026020016040519081016040528092919081815260200182805461047190612f93565b80156104be5780601f10610493576101008083540402835291602001916104be565b820191906000526020600020905b8154815290600101906020018083116104a157829003601f168201915b5050505050905090565b60006104d382610cce565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061051982610800565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561058a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058190612cd4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105a9610d19565b73ffffffffffffffffffffffffffffffffffffffff1614806105d857506105d7816105d2610d19565b610b3f565b5b610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e90612cf4565b60405180910390fd5b6106218383610d21565b505050565b600060016106346009610dda565b61063e9190612ea9565b905090565b61065461064e610d19565b82610de8565b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90612b34565b60405180910390fd5b61069e838383610e7d565b505050565b6106ab611177565b6106b36111f5565b565b60006106c16009610dda565b90506106cd6009610c57565b6106d78282611258565b5050565b6106f683838360405180602001604052806000815250610a37565b505050565b61070c610706610d19565b82610de8565b61074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074290612b34565b60405180910390fd5b61075481611276565b50565b60606008805461076690612f93565b80601f016020809104026020016040519081016040528092919081815260200182805461079290612f93565b80156107df5780601f106107b4576101008083540402835291602001916107df565b820191906000526020600020905b8154815290600101906020018083116107c257829003601f168201915b5050505050905090565b6000600760009054906101000a900460ff16905090565b60008061080c83611282565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561087e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087590612cb4565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef90612c34565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610947611177565b61095160006112bf565b565b61095b611177565b610963611385565b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461099e90612f93565b80601f01602080910402602001604051908101604052809291908181526020018280546109ca90612f93565b8015610a175780601f106109ec57610100808354040283529160200191610a17565b820191906000526020600020905b8154815290600101906020018083116109fa57829003601f168201915b5050505050905090565b610a33610a2c610d19565b83836113e8565b5050565b610a48610a42610d19565b83610de8565b610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90612b34565b60405180910390fd5b610a9384848484611555565b50505050565b6060610aa4826115b1565b610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada90612c94565b60405180910390fd5b6000610aee836115f2565b604051602001610afe91906129f5565b6040516020818303038152906040529050610b1881611716565b604051602001610b289190612a4e565b604051602081830303815290604052915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610bdb611177565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290612b74565b60405180910390fd5b610c54816112bf565b50565b6001816000016000828254019250508190555050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610cc75750610cc6826118a0565b5b9050919050565b610cd7816115b1565b610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90612cb4565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610d9483610800565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b600080610df483610800565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610e365750610e358185610b3f565b5b80610e7457508373ffffffffffffffffffffffffffffffffffffffff16610e5c846104c8565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610e9d82610800565b73ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612b94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90612bd4565b60405180910390fd5b610f708383836001611982565b8273ffffffffffffffffffffffffffffffffffffffff16610f9082610800565b73ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd90612b94565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611172838383600161199c565b505050565b61117f610d19565b73ffffffffffffffffffffffffffffffffffffffff1661119d610965565b73ffffffffffffffffffffffffffffffffffffffff16146111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea90612c74565b60405180910390fd5b565b6111fd6119a2565b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611241610d19565b60405161124e9190612a70565b60405180910390a1565b6112728282604051806020016040528060008152506119eb565b5050565b61127f81611a46565b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61138d611a99565b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113d1610d19565b6040516113de9190612a70565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90612bf4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115489190612ad7565b60405180910390a3505050565b611560848484610e7d565b61156c84848484611ae3565b6115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290612b54565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166115d383611282565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60606000600161160184611c7a565b01905060008167ffffffffffffffff811115611646577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156116785781602001600182028036833780820191505090505b509050600082602001820190505b60011561170b578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816116f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b04945060008514156117065761170b565b611686565b819350505050919050565b60606000825114156117395760405180602001604052806000815250905061189b565b60006040518060600160405280604081526020016136bd60409139905060006003600285516117689190612dc8565b6117729190612e1e565b600461177e9190612e4f565b67ffffffffffffffff8111156117bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156117ef5781602001600182028036833780820191505090505b509050600182016020820185865187015b8082101561185b576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845360018401935050611800565b5050600386510660018114611877576002811461188a57611892565b603d6001830353603d6002830353611892565b603d60018303535b50505080925050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061196b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061197b575061197a82611eb1565b5b9050919050565b61198a611a99565b61199684848484611f1b565b50505050565b50505050565b6119aa6107e9565b6119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e090612b14565b60405180910390fd5b565b6119f58383611f21565b611a026000848484611ae3565b611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890612b54565b60405180910390fd5b505050565b611a4f8161213f565b6000600660008381526020019081526020016000208054611a6f90612f93565b905014611a9657600660008281526020019081526020016000206000611a9591906122b0565b5b50565b611aa16107e9565b15611ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad890612c14565b60405180910390fd5b565b6000611b048473ffffffffffffffffffffffffffffffffffffffff1661228d565b15611c6d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611b2d610d19565b8786866040518563ffffffff1660e01b8152600401611b4f9493929190612a8b565b602060405180830381600087803b158015611b6957600080fd5b505af1925050508015611b9a57506040513d601f19601f82011682018060405250810190611b9791906125ae565b60015b611c1d573d8060008114611bca576040519150601f19603f3d011682016040523d82523d6000602084013e611bcf565b606091505b50600081511415611c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0c90612b54565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611c72565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611cfe577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611cf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611d61576d04ee2d6d415b85acef81000000008381611d57577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506020810190505b662386f26fc100008310611db657662386f26fc100008381611dac577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506010810190505b6305f5e1008310611e05576305f5e1008381611dfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506008810190505b6127108310611e50576127108381611e46577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506004810190505b60648310611e995760648381611e8f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506002810190505b600a8310611ea8576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8890612c54565b60405180910390fd5b611f9a816115b1565b15611fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd190612bb4565b60405180910390fd5b611fe8600083836001611982565b611ff1816115b1565b15612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202890612bb4565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461213b60008383600161199c565b5050565b600061214a82610800565b905061215a816000846001611982565b61216382610800565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461228981600084600161199c565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5080546122bc90612f93565b6000825580601f106122ce57506122ed565b601f0160209004906000526020600020908101906122ec91906122f0565b5b50565b5b808211156123095760008160009055506001016122f1565b5090565b600061232061231b84612d54565b612d2f565b90508281526020810184848401111561233857600080fd5b612343848285612f51565b509392505050565b60008135905061235a81613660565b92915050565b60008135905061236f81613677565b92915050565b6000813590506123848161368e565b92915050565b6000815190506123998161368e565b92915050565b600082601f8301126123b057600080fd5b81356123c084826020860161230d565b91505092915050565b6000813590506123d8816136a5565b92915050565b6000602082840312156123f057600080fd5b60006123fe8482850161234b565b91505092915050565b6000806040838503121561241a57600080fd5b60006124288582860161234b565b92505060206124398582860161234b565b9150509250929050565b60008060006060848603121561245857600080fd5b60006124668682870161234b565b93505060206124778682870161234b565b9250506040612488868287016123c9565b9150509250925092565b600080600080608085870312156124a857600080fd5b60006124b68782880161234b565b94505060206124c78782880161234b565b93505060406124d8878288016123c9565b925050606085013567ffffffffffffffff8111156124f557600080fd5b6125018782880161239f565b91505092959194509250565b6000806040838503121561252057600080fd5b600061252e8582860161234b565b925050602061253f85828601612360565b9150509250929050565b6000806040838503121561255c57600080fd5b600061256a8582860161234b565b925050602061257b858286016123c9565b9150509250929050565b60006020828403121561259757600080fd5b60006125a584828501612375565b91505092915050565b6000602082840312156125c057600080fd5b60006125ce8482850161238a565b91505092915050565b6000602082840312156125e957600080fd5b60006125f7848285016123c9565b91505092915050565b61260981612edd565b82525050565b61261881612eef565b82525050565b600061262982612d85565b6126338185612d9b565b9350612643818560208601612f60565b61264c816130b2565b840191505092915050565b600061266282612d90565b61266c8185612dac565b935061267c818560208601612f60565b612685816130b2565b840191505092915050565b600061269b82612d90565b6126a58185612dbd565b93506126b5818560208601612f60565b80840191505092915050565b60006126ce601483612dac565b91506126d9826130c3565b602082019050919050565b60006126f1602d83612dac565b91506126fc826130ec565b604082019050919050565b6000612714603283612dac565b915061271f8261313b565b604082019050919050565b6000612737602683612dac565b91506127428261318a565b604082019050919050565b600061275a602583612dac565b9150612765826131d9565b604082019050919050565b600061277d601c83612dac565b915061278882613228565b602082019050919050565b60006127a0602483612dac565b91506127ab82613251565b604082019050919050565b60006127c3601983612dac565b91506127ce826132a0565b602082019050919050565b60006127e6602383612dbd565b91506127f1826132c9565b602382019050919050565b6000612809601083612dac565b915061281482613318565b602082019050919050565b600061282c602983612dac565b915061283782613341565b604082019050919050565b600061284f602083612dac565b915061285a82613390565b602082019050919050565b6000612872600183612dbd565b915061287d826133b9565b600182019050919050565b6000612895602083612dac565b91506128a0826133e2565b602082019050919050565b60006128b8602f83612dac565b91506128c38261340b565b604082019050919050565b60006128db600183612dbd565b91506128e68261345a565b600182019050919050565b60006128fe601883612dac565b915061290982613483565b602082019050919050565b6000612921602183612dac565b915061292c826134ac565b604082019050919050565b6000612944601d83612dbd565b915061294f826134fb565b601d82019050919050565b6000612967603d83612dac565b915061297282613524565b604082019050919050565b600061298a601583612dbd565b915061299582613573565b601582019050919050565b60006129ad600383612dbd565b91506129b88261359c565b600382019050919050565b60006129d0606383612dbd565b91506129db826135c5565b606382019050919050565b6129ef81612f47565b82525050565b6000612a00826128ce565b9150612a0b8261297d565b9150612a178284612690565b9150612a22826129a0565b9150612a2d826127d9565b9150612a38826129c3565b9150612a4382612865565b915081905092915050565b6000612a5982612937565b9150612a658284612690565b915081905092915050565b6000602082019050612a856000830184612600565b92915050565b6000608082019050612aa06000830187612600565b612aad6020830186612600565b612aba60408301856129e6565b8181036060830152612acc818461261e565b905095945050505050565b6000602082019050612aec600083018461260f565b92915050565b60006020820190508181036000830152612b0c8184612657565b905092915050565b60006020820190508181036000830152612b2d816126c1565b9050919050565b60006020820190508181036000830152612b4d816126e4565b9050919050565b60006020820190508181036000830152612b6d81612707565b9050919050565b60006020820190508181036000830152612b8d8161272a565b9050919050565b60006020820190508181036000830152612bad8161274d565b9050919050565b60006020820190508181036000830152612bcd81612770565b9050919050565b60006020820190508181036000830152612bed81612793565b9050919050565b60006020820190508181036000830152612c0d816127b6565b9050919050565b60006020820190508181036000830152612c2d816127fc565b9050919050565b60006020820190508181036000830152612c4d8161281f565b9050919050565b60006020820190508181036000830152612c6d81612842565b9050919050565b60006020820190508181036000830152612c8d81612888565b9050919050565b60006020820190508181036000830152612cad816128ab565b9050919050565b60006020820190508181036000830152612ccd816128f1565b9050919050565b60006020820190508181036000830152612ced81612914565b9050919050565b60006020820190508181036000830152612d0d8161295a565b9050919050565b6000602082019050612d2960008301846129e6565b92915050565b6000612d39612d4a565b9050612d458282612fc5565b919050565b6000604051905090565b600067ffffffffffffffff821115612d6f57612d6e613083565b5b612d78826130b2565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612dd382612f47565b9150612dde83612f47565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e1357612e12612ff6565b5b828201905092915050565b6000612e2982612f47565b9150612e3483612f47565b925082612e4457612e43613025565b5b828204905092915050565b6000612e5a82612f47565b9150612e6583612f47565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e9e57612e9d612ff6565b5b828202905092915050565b6000612eb482612f47565b9150612ebf83612f47565b925082821015612ed257612ed1612ff6565b5b828203905092915050565b6000612ee882612f27565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612f7e578082015181840152602081019050612f63565b83811115612f8d576000848401525b50505050565b60006002820490506001821680612fab57607f821691505b60208210811415612fbf57612fbe613054565b5b50919050565b612fce826130b2565b810181811067ffffffffffffffff82111715612fed57612fec613083565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f2270726f6a6563744e616d65223a20224e46546669205465737420546f6b656e60008201527f222c200000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f7b00000000000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b7f226e616d65223a20225465737420546f6b656e20230000000000000000000000600082015250565b7f222c200000000000000000000000000000000000000000000000000000000000600082015250565b7f22696d61676555726c223a202268747470733a2f2f73746f726167652e676f6f60008201527f676c65617069732e636f6d2f6e667466692d6d657461646174612e617070737060208201527f6f742e636f6d2f6d6574612f6e667466692d746573742d746f6b656e2f312e6a60408201527f7067220000000000000000000000000000000000000000000000000000000000606082015250565b61366981612edd565b811461367457600080fd5b50565b61368081612eef565b811461368b57600080fd5b50565b61369781612efb565b81146136a257600080fd5b50565b6136ae81612f47565b81146136b957600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220c42abfc1989abd3b141cc07e2e74911ade701b98f2ac21c36bd80ba2fb1f351664736f6c634300080400330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000104e46544649205465737420546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e46545454000000000000000000000000000000000000000000000000000000