0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801561004357600080fd5b5061005261005760201b60201c565b6101de565b600061006761015b60201b60201c565b90508060000160089054906101000a900460ff16156100b2576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff80168160000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146101585767ffffffffffffffff8160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff60405161014f91906101c3565b60405180910390a15b50565b60008061016c61017560201b60201c565b90508091505090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0060001b905090565b600067ffffffffffffffff82169050919050565b6101bd816101a0565b82525050565b60006020820190506101d860008301846101b4565b92915050565b608051613a186102076000396000818161126f015281816112c4015261147f0152613a186000f3fe6080604052600436106101355760003560e01c80638da5cb5b116100ab578063bfdea3af1161006f578063bfdea3af14610405578063c4d66de814610442578063c87b56dd1461046b578063d204c45e146104a8578063e985e9c5146104e5578063f2fde38b1461052257610135565b80638da5cb5b1461033257806395d89b411461035d578063a22cb46514610388578063ad3cb1cc146103b1578063b88d4fde146103dc57610135565b806342842e0e116100fd57806342842e0e146102315780634f1ef2861461025a57806352d1902d146102765780636352211e146102a157806370a08231146102de578063715018a61461031b57610135565b806301ffc9a71461013a57806306fdde0314610177578063081812fc146101a2578063095ea7b3146101df57806323b872dd14610208575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612981565b61054b565b60405161016e91906129c9565b60405180910390f35b34801561018357600080fd5b5061018c61055d565b6040516101999190612a74565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c49190612acc565b6105fe565b6040516101d69190612b3a565b60405180910390f35b3480156101eb57600080fd5b5061020660048036038101906102019190612b81565b61061a565b005b34801561021457600080fd5b5061022f600480360381019061022a9190612bc1565b610630565b005b34801561023d57600080fd5b5061025860048036038101906102539190612bc1565b610732565b005b610274600480360381019061026f9190612d49565b610752565b005b34801561028257600080fd5b5061028b610771565b6040516102989190612dbe565b60405180910390f35b3480156102ad57600080fd5b506102c860048036038101906102c39190612acc565b6107a4565b6040516102d59190612b3a565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190612dd9565b6107b6565b6040516103129190612e15565b60405180910390f35b34801561032757600080fd5b5061033061087f565b005b34801561033e57600080fd5b50610347610893565b6040516103549190612b3a565b60405180910390f35b34801561036957600080fd5b506103726108cb565b60405161037f9190612a74565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612e5c565b61096c565b005b3480156103bd57600080fd5b506103c6610982565b6040516103d39190612a74565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe9190612e9c565b6109bb565b005b34801561041157600080fd5b5061042c60048036038101906104279190613169565b6109e0565b604051610439919061329f565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190612dd9565b610b33565b005b34801561047757600080fd5b50610492600480360381019061048d9190612acc565b610d3e565b60405161049f9190612a74565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca91906132c1565b610d50565b6040516104dc9190612e15565b60405180910390f35b3480156104f157600080fd5b5061050c6004803603810190610507919061331d565b610da2565b60405161051991906129c9565b60405180910390f35b34801561052e57600080fd5b5061054960048036038101906105449190612dd9565b610e44565b005b600061055682610eca565b9050919050565b60606000610569610f2b565b905080600001805461057a9061338c565b80601f01602080910402602001604051908101604052809291908181526020018280546105a69061338c565b80156105f35780601f106105c8576101008083540402835291602001916105f3565b820191906000526020600020905b8154815290600101906020018083116105d657829003601f168201915b505050505091505090565b600061060982610f53565b5061061382610fdb565b9050919050565b61062c8282610627611026565b61102e565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a25760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106999190612b3a565b60405180910390fd5b60006106b683836106b1611026565b611040565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461072c578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610723939291906133bd565b60405180910390fd5b50505050565b61074d838383604051806020016040528060008152506109bb565b505050565b61075a61126d565b61076382611353565b61076d828261135e565b5050565b600061077b61147d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60006107af82610f53565b9050919050565b6000806107c1610f2b565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108355760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161082c9190612b3a565b60405180910390fd5b8060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915050919050565b610887611504565b610891600061158b565b565b60008061089e611662565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b606060006108d7610f2b565b90508060010180546108e89061338c565b80601f01602080910402602001604051908101604052809291908181526020018280546109149061338c565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b505050505091505090565b61097e610977611026565b838361168a565b5050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6109c6848484610630565b6109da6109d1611026565b85858585611808565b50505050565b60606109ea611504565b8151835114610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2590613440565b60405180910390fd5b6000835167ffffffffffffffff811115610a4b57610a4a612c1e565b5b604051908082528060200260200182016040528015610a795781602001602082028036833780820191505090505b5090506000610a866119b9565b905060005b8551811015610b27576000826000016000815480929190610aab9061348f565b919050559050610ad5878381518110610ac757610ac66134d7565b5b6020026020010151826119e1565b610af981878481518110610aec57610aeb6134d7565b5b60200260200101516119ff565b80848381518110610b0d57610b0c6134d7565b5b602002602001018181525050508080600101915050610a8b565b50819250505092915050565b6000610b3d611a6a565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff16148015610b8b5750825b9050600060018367ffffffffffffffff16148015610bc0575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610bce575080155b15610c05576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315610c555760018560000160086101000a81548160ff0219169083151502179055505b610cc96040518060400160405280600a81526020017f53776170706572436174000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4341540000000000000000000000000000000000000000000000000000000000815250611a7e565b610cd1611a94565b610cda86611a9e565b8315610d365760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d26001604051610d2d919061355f565b60405180910390a15b505050505050565b6060610d4982611ab2565b9050919050565b6000610d5a611504565b6000610d646119b9565b90506000816000016000815480929190610d7d9061348f565b919050559050610d8d85826119e1565b610d9781856119ff565b809250505092915050565b600080610dad610f2b565b90508060050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b610e4c611504565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ebe5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610eb59190612b3a565b60405180910390fd5b610ec78161158b565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f245750610f2382611bd6565b5b9050919050565b60007f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300905090565b600080610f5f83611cb8565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fd257826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610fc99190612e15565b60405180910390fd5b80915050919050565b600080610fe6610f2b565b905080600401600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b600033905090565b61103b8383836001611d03565b505050565b60008061104b610f2b565b9050600061105885611cb8565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461109a57611099818587611ed7565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461112d576110dc600086600080611d03565b60018260030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146111b25760018260030160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8582600201600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480925050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148061131a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611301611f9b565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611351576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61135b611504565b50565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156113c657506040513d601f19601f820116820180604052508101906113c391906135a6565b60015b61140757816040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016113fe9190612b3a565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b811461146e57806040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004016114659190612dbe565b60405180910390fd5b6114788383611ff2565b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611502576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61150c611026565b73ffffffffffffffffffffffffffffffffffffffff1661152a610893565b73ffffffffffffffffffffffffffffffffffffffff16146115895761154d611026565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016115809190612b3a565b60405180910390fd5b565b6000611595611662565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b6000611694610f2b565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361170757826040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116fe9190612b3a565b60405180910390fd5b818160050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31846040516117fa91906129c9565b60405180910390a350505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156119b2578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016118679493929190613628565b6020604051808303816000875af19250505080156118a357506040513d601f19601f820116820180604052508101906118a09190613689565b60015b611927573d80600081146118d3576040519150601f19603f3d011682016040523d82523d6000602084013e6118d8565b606091505b50600081510361191f57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119169190612b3a565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119b057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119a79190612b3a565b60405180910390fd5b505b5050505050565b60007fa92457ff366fcb329c2073e701a2917ca928c082b616ec14439dd18c9d355a00905090565b6119fb828260405180602001604052806000815250612065565b5050565b6000611a09612089565b9050818160000160008581526020019081526020016000209081611a2d9190613858565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce783604051611a5d9190612e15565b60405180910390a1505050565b600080611a756120b1565b90508091505090565b611a866120dc565b611a90828261211c565b5050565b611a9c6120dc565b565b611aa66120dc565b611aaf81612159565b50565b60606000611abe612089565b9050611ac983610f53565b5060008160000160008581526020019081526020016000208054611aec9061338c565b80601f0160208091040260200160405190810160405280929190818152602001828054611b189061338c565b8015611b655780601f10611b3a57610100808354040283529160200191611b65565b820191906000526020600020905b815481529060010190602001808311611b4857829003601f168201915b505050505090506000611b766121df565b90506000815103611b8c57819350505050611bd1565b600082511115611bc2578082604051602001611ba9929190613966565b6040516020818303038152906040529350505050611bd1565b611bcb856121f6565b93505050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ca157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611cb15750611cb08261225f565b5b9050919050565b600080611cc3610f2b565b905080600201600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000611d0d610f2b565b90508180611d485750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e7c576000611d5885610f53565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611dc357508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611dd65750611dd48185610da2565b155b15611e1857836040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611e0f9190612b3a565b60405180910390fd5b8215611e7a57848673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8481600401600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b611ee28383836122c9565b611f9657600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f5757806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611f4e9190612e15565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611f8d92919061398a565b60405180910390fd5b505050565b6000611fc97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61238a565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611ffb82612394565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a2600081511115612058576120528282612461565b50612061565b612060612556565b5b5050565b61206f8383612593565b61208461207a611026565b6000858585611808565b505050565b60007f0542a41881ee128a365a727b282c86fa859579490b9bb45aab8503648c8e7900905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0060001b905090565b6120e461268c565b61211a576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6121246120dc565b600061212e610f2b565b9050828160000190816121419190613858565b50818160010190816121539190613858565b50505050565b6121616120dc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121d35760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016121ca9190612b3a565b60405180910390fd5b6121dc8161158b565b50565b606060405180602001604052806000815250905090565b606061220182610f53565b50600061220c6121df565b9050600081511161222c5760405180602001604052806000815250612257565b80612236846126ac565b604051602001612247929190613966565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561238157508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061234257506123418484610da2565b5b8061238057508273ffffffffffffffffffffffffffffffffffffffff1661236883610fdb565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000819050919050565b60008173ffffffffffffffffffffffffffffffffffffffff163b036123f057806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016123e79190612b3a565b60405180910390fd5b8061241d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61238a565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600061246f848461277a565b90508080156124a757506000612483612790565b11806124a6575060008473ffffffffffffffffffffffffffffffffffffffff163b115b5b156124bc576124b4612798565b915050612550565b80156124ff57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016124f69190612b3a565b60405180910390fd5b6000612509612790565b111561251c576125176127b6565b61254e565b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b92915050565b6000341115612591576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126055760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016125fc9190612b3a565b60405180910390fd5b600061261383836000611040565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146126875760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161267e9190612b3a565b60405180910390fd5b505050565b6000612696611a6a565b60000160089054906101000a900460ff16905090565b6060600060016126bb846127c2565b01905060008167ffffffffffffffff8111156126da576126d9612c1e565b5b6040519080825280601f01601f19166020018201604052801561270c5781602001600182028036833780820191505090505b509050600082602083010190505b60011561276f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612763576127626139b3565b5b0494506000850361271a575b819350505050919050565b6000806000835160208501865af4905092915050565b60003d905090565b606060405190503d81523d6000602083013e3d602001810160405290565b6040513d6000823e3d81fd5b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612820577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612816576128156139b3565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061285d576d04ee2d6d415b85acef81000000008381612853576128526139b3565b5b0492506020810190505b662386f26fc10000831061288c57662386f26fc100008381612882576128816139b3565b5b0492506010810190505b6305f5e10083106128b5576305f5e10083816128ab576128aa6139b3565b5b0492506008810190505b61271083106128da5761271083816128d0576128cf6139b3565b5b0492506004810190505b606483106128fd57606483816128f3576128f26139b3565b5b0492506002810190505b600a831061290c576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61295e81612929565b811461296957600080fd5b50565b60008135905061297b81612955565b92915050565b6000602082840312156129975761299661291f565b5b60006129a58482850161296c565b91505092915050565b60008115159050919050565b6129c3816129ae565b82525050565b60006020820190506129de60008301846129ba565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a1e578082015181840152602081019050612a03565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a46826129e4565b612a5081856129ef565b9350612a60818560208601612a00565b612a6981612a2a565b840191505092915050565b60006020820190508181036000830152612a8e8184612a3b565b905092915050565b6000819050919050565b612aa981612a96565b8114612ab457600080fd5b50565b600081359050612ac681612aa0565b92915050565b600060208284031215612ae257612ae161291f565b5b6000612af084828501612ab7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b2482612af9565b9050919050565b612b3481612b19565b82525050565b6000602082019050612b4f6000830184612b2b565b92915050565b612b5e81612b19565b8114612b6957600080fd5b50565b600081359050612b7b81612b55565b92915050565b60008060408385031215612b9857612b9761291f565b5b6000612ba685828601612b6c565b9250506020612bb785828601612ab7565b9150509250929050565b600080600060608486031215612bda57612bd961291f565b5b6000612be886828701612b6c565b9350506020612bf986828701612b6c565b9250506040612c0a86828701612ab7565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c5682612a2a565b810181811067ffffffffffffffff82111715612c7557612c74612c1e565b5b80604052505050565b6000612c88612915565b9050612c948282612c4d565b919050565b600067ffffffffffffffff821115612cb457612cb3612c1e565b5b612cbd82612a2a565b9050602081019050919050565b82818337600083830152505050565b6000612cec612ce784612c99565b612c7e565b905082815260208101848484011115612d0857612d07612c19565b5b612d13848285612cca565b509392505050565b600082601f830112612d3057612d2f612c14565b5b8135612d40848260208601612cd9565b91505092915050565b60008060408385031215612d6057612d5f61291f565b5b6000612d6e85828601612b6c565b925050602083013567ffffffffffffffff811115612d8f57612d8e612924565b5b612d9b85828601612d1b565b9150509250929050565b6000819050919050565b612db881612da5565b82525050565b6000602082019050612dd36000830184612daf565b92915050565b600060208284031215612def57612dee61291f565b5b6000612dfd84828501612b6c565b91505092915050565b612e0f81612a96565b82525050565b6000602082019050612e2a6000830184612e06565b92915050565b612e39816129ae565b8114612e4457600080fd5b50565b600081359050612e5681612e30565b92915050565b60008060408385031215612e7357612e7261291f565b5b6000612e8185828601612b6c565b9250506020612e9285828601612e47565b9150509250929050565b60008060008060808587031215612eb657612eb561291f565b5b6000612ec487828801612b6c565b9450506020612ed587828801612b6c565b9350506040612ee687828801612ab7565b925050606085013567ffffffffffffffff811115612f0757612f06612924565b5b612f1387828801612d1b565b91505092959194509250565b600067ffffffffffffffff821115612f3a57612f39612c1e565b5b602082029050602081019050919050565b600080fd5b6000612f63612f5e84612f1f565b612c7e565b90508083825260208201905060208402830185811115612f8657612f85612f4b565b5b835b81811015612faf5780612f9b8882612b6c565b845260208401935050602081019050612f88565b5050509392505050565b600082601f830112612fce57612fcd612c14565b5b8135612fde848260208601612f50565b91505092915050565b600067ffffffffffffffff82111561300257613001612c1e565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561302e5761302d612c1e565b5b61303782612a2a565b9050602081019050919050565b600061305761305284613013565b612c7e565b90508281526020810184848401111561307357613072612c19565b5b61307e848285612cca565b509392505050565b600082601f83011261309b5761309a612c14565b5b81356130ab848260208601613044565b91505092915050565b60006130c76130c284612fe7565b612c7e565b905080838252602082019050602084028301858111156130ea576130e9612f4b565b5b835b8181101561313157803567ffffffffffffffff81111561310f5761310e612c14565b5b80860161311c8982613086565b855260208501945050506020810190506130ec565b5050509392505050565b600082601f8301126131505761314f612c14565b5b81356131608482602086016130b4565b91505092915050565b600080604083850312156131805761317f61291f565b5b600083013567ffffffffffffffff81111561319e5761319d612924565b5b6131aa85828601612fb9565b925050602083013567ffffffffffffffff8111156131cb576131ca612924565b5b6131d78582860161313b565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61321681612a96565b82525050565b6000613228838361320d565b60208301905092915050565b6000602082019050919050565b600061324c826131e1565b61325681856131ec565b9350613261836131fd565b8060005b83811015613292578151613279888261321c565b975061328483613234565b925050600181019050613265565b5085935050505092915050565b600060208201905081810360008301526132b98184613241565b905092915050565b600080604083850312156132d8576132d761291f565b5b60006132e685828601612b6c565b925050602083013567ffffffffffffffff81111561330757613306612924565b5b61331385828601613086565b9150509250929050565b600080604083850312156133345761333361291f565b5b600061334285828601612b6c565b925050602061335385828601612b6c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133a457607f821691505b6020821081036133b7576133b661335d565b5b50919050565b60006060820190506133d26000830186612b2b565b6133df6020830185612e06565b6133ec6040830184612b2b565b949350505050565b7f4172726179206c656e677468206d69736d617463680000000000000000000000600082015250565b600061342a6015836129ef565b9150613435826133f4565b602082019050919050565b600060208201905081810360008301526134598161341d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061349a82612a96565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134cc576134cb613460565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b600061354961354461353f84613506565b613524565b613510565b9050919050565b6135598161352e565b82525050565b60006020820190506135746000830184613550565b92915050565b61358381612da5565b811461358e57600080fd5b50565b6000815190506135a08161357a565b92915050565b6000602082840312156135bc576135bb61291f565b5b60006135ca84828501613591565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60006135fa826135d3565b61360481856135de565b9350613614818560208601612a00565b61361d81612a2a565b840191505092915050565b600060808201905061363d6000830187612b2b565b61364a6020830186612b2b565b6136576040830185612e06565b818103606083015261366981846135ef565b905095945050505050565b60008151905061368381612955565b92915050565b60006020828403121561369f5761369e61291f565b5b60006136ad84828501613674565b91505092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026137187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826136db565b61372286836136db565b95508019841693508086168417925050509392505050565b600061375561375061374b84612a96565b613524565b612a96565b9050919050565b6000819050919050565b61376f8361373a565b61378361377b8261375c565b8484546136e8565b825550505050565b600090565b61379861378b565b6137a3818484613766565b505050565b5b818110156137c7576137bc600082613790565b6001810190506137a9565b5050565b601f82111561380c576137dd816136b6565b6137e6846136cb565b810160208510156137f5578190505b613809613801856136cb565b8301826137a8565b50505b505050565b600082821c905092915050565b600061382f60001984600802613811565b1980831691505092915050565b6000613848838361381e565b9150826002028217905092915050565b613861826129e4565b67ffffffffffffffff81111561387a57613879612c1e565b5b613884825461338c565b61388f8282856137cb565b600060209050601f8311600181146138c257600084156138b0578287015190505b6138ba858261383c565b865550613922565b601f1984166138d0866136b6565b60005b828110156138f8578489015182556001820191506020850194506020810190506138d3565b868310156139155784890151613911601f89168261381e565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000613940826129e4565b61394a818561392a565b935061395a818560208601612a00565b80840191505092915050565b60006139728285613935565b915061397e8284613935565b91508190509392505050565b600060408201905061399f6000830185612b2b565b6139ac6020830184612e06565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea264697066735822122097028cbb64add01b9c7ff25b93a23f2752404f1d611416f31c30a5306d764bb464736f6c634300081e0033