60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600b908051906020019062000051929190620002a3565b5060405180608001604052806050815260200162003d0d60509139600c908051906020019062000083929190620002a3565b506000600d55660e35fa931a0000600e55610d05600f55600560105560056011556000601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff021916908315150217905550348015620000e757600080fd5b506040518060400160405280600f81526020017f4d696e69204d6f6e6b6520436c756200000000000000000000000000000000008152506040518060400160405280600381526020017f4d4d43000000000000000000000000000000000000000000000000000000000081525081600290805190602001906200016c929190620002a3565b50806003908051906020019062000185929190620002a3565b5062000196620001cc60201b60201c565b6000819055505050620001be620001b2620001d560201b60201c565b620001dd60201b60201c565b6001600981905550620003b7565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002b19062000382565b90600052602060002090601f016020900481019282620002d5576000855562000321565b82601f10620002f057805160ff191683800117855562000321565b8280016001018555821562000321579182015b828111156200032057825182559160200191906001019062000303565b5b50905062000330919062000334565b5090565b5b808211156200034f57600081600090555060010162000335565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200039b57607f821691505b602082108103620003b157620003b062000353565b5b50919050565b61394680620003c76000396000f3fe6080604052600436106102505760003560e01c8063715018a611610139578063b071401b116100b6578063da5e1f4d1161007a578063da5e1f4d1461087c578063e0a80853146108a5578063e985e9c5146108ce578063eac989f81461090b578063f2fde38b14610936578063f64849801461095f57610250565b8063b071401b1461079b578063b88d4fde146107c4578063c87b56dd146107ed578063d897833e1461082a578063d9f0a6711461085357610250565b806395d89b41116100fd57806395d89b41146106c65780639a1b2885146106f1578063a035b1fe1461071c578063a22cb46514610747578063a45ba8e71461077057610250565b8063715018a6146105f35780637871e1541461060a5780638462151c146106335780638da5cb5b1461067057806394354fd01461069b57610250565b806323b872dd116101d2578063518302271161019657806351830227146104cd5780635503a0e8146104f85780635a0b8b23146105235780636352211e1461054e5780636ad1fe021461058b57806370a08231146105b657610250565b806323b872dd1461041057806333573dc2146104395780633ccfd60b1461046457806342842e0e1461047b5780634fdd43cb146104a457610250565b8063095ea7b311610219578063095ea7b31461033f57806316ba10e01461036857806318160ddd1461039157806319d1997a146103bc57806321a3c248146103e757610250565b806275770a1461025557806301ffc9a71461027e57806306fdde03146102bb57806307883703146102e6578063081812fc14610302575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906128a3565b610988565b005b34801561028a57600080fd5b506102a560048036038101906102a09190612928565b61099a565b6040516102b29190612970565b60405180910390f35b3480156102c757600080fd5b506102d0610a2c565b6040516102dd9190612a24565b60405180910390f35b61030060048036038101906102fb91906128a3565b610abe565b005b34801561030e57600080fd5b50610329600480360381019061032491906128a3565b610c84565b6040516103369190612a87565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190612ace565b610d00565b005b34801561037457600080fd5b5061038f600480360381019061038a9190612c43565b610e41565b005b34801561039d57600080fd5b506103a6610e63565b6040516103b39190612c9b565b60405180910390f35b3480156103c857600080fd5b506103d1610e7a565b6040516103de9190612c9b565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906128a3565b610e80565b005b34801561041c57600080fd5b5061043760048036038101906104329190612cb6565b610e92565b005b34801561044557600080fd5b5061044e6111b4565b60405161045b9190612c9b565b60405180910390f35b34801561047057600080fd5b506104796111ba565b005b34801561048757600080fd5b506104a2600480360381019061049d9190612cb6565b611297565b005b3480156104b057600080fd5b506104cb60048036038101906104c69190612c43565b6112b7565b005b3480156104d957600080fd5b506104e26112d9565b6040516104ef9190612970565b60405180910390f35b34801561050457600080fd5b5061050d6112ec565b60405161051a9190612a24565b60405180910390f35b34801561052f57600080fd5b5061053861137a565b6040516105459190612c9b565b60405180910390f35b34801561055a57600080fd5b50610575600480360381019061057091906128a3565b611380565b6040516105829190612a87565b60405180910390f35b34801561059757600080fd5b506105a0611392565b6040516105ad9190612970565b60405180910390f35b3480156105c257600080fd5b506105dd60048036038101906105d89190612d09565b6113a5565b6040516105ea9190612c9b565b60405180910390f35b3480156105ff57600080fd5b5061060861145d565b005b34801561061657600080fd5b50610631600480360381019061062c9190612d36565b611471565b005b34801561063f57600080fd5b5061065a60048036038101906106559190612d09565b6114de565b6040516106679190612e34565b60405180910390f35b34801561067c57600080fd5b50610685611622565b6040516106929190612a87565b60405180910390f35b3480156106a757600080fd5b506106b061164c565b6040516106bd9190612c9b565b60405180910390f35b3480156106d257600080fd5b506106db611652565b6040516106e89190612a24565b60405180910390f35b3480156106fd57600080fd5b506107066116e4565b6040516107139190612c9b565b60405180910390f35b34801561072857600080fd5b506107316116ea565b60405161073e9190612c9b565b60405180910390f35b34801561075357600080fd5b5061076e60048036038101906107699190612e82565b611710565b005b34801561077c57600080fd5b50610785611887565b6040516107929190612a24565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd91906128a3565b611915565b005b3480156107d057600080fd5b506107eb60048036038101906107e69190612f63565b611927565b005b3480156107f957600080fd5b50610814600480360381019061080f91906128a3565b61199a565b6040516108219190612a24565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612fe6565b611af2565b005b34801561085f57600080fd5b5061087a600480360381019061087591906128a3565b611b17565b005b34801561088857600080fd5b506108a3600480360381019061089e91906128a3565b611b29565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190612fe6565b611b3b565b005b3480156108da57600080fd5b506108f560048036038101906108f09190613013565b611b60565b6040516109029190612970565b60405180910390f35b34801561091757600080fd5b50610920611bf4565b60405161092d9190612a24565b60405180910390f35b34801561094257600080fd5b5061095d60048036038101906109589190612d09565b611c82565b005b34801561096b57600080fd5b5061098660048036038101906109819190612c43565b611d05565b005b610990611d27565b80600f8190555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109f557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a255750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060028054610a3b90613082565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6790613082565b8015610ab45780601f10610a8957610100808354040283529160200191610ab4565b820191906000526020600020905b815481529060010190602001808311610a9757829003601f168201915b5050505050905090565b6000610ac8610e63565b9050601260009054906101000a900460ff16610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906130ff565b60405180910390fd5b600082118015610b2b57506010548211155b610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b619061316b565b60405180910390fd5b600f5482610b76610e63565b610b8091906131ba565b1115610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb89061325c565b60405180910390fd5b60115482610bce336113a5565b610bd891906131ba565b1115610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c10906132c8565b60405180910390fd5b81610c2382611da5565b610c2d91906132e8565b341015610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c669061338e565b60405180910390fd5b610c80610c7a611dc6565b83611dce565b5050565b6000610c8f82611dec565b610cc5576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610d0b82611380565b90508073ffffffffffffffffffffffffffffffffffffffff16610d2c611e4b565b73ffffffffffffffffffffffffffffffffffffffff1614610d8f57610d5881610d53611e4b565b611b60565b610d8e576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610e49611d27565b80600b9080519060200190610e5f929190612767565b5050565b6000610e6d611e53565b6001546000540303905090565b600f5481565b610e88611d27565b80600e8190555050565b6000610e9d82611e5c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f04576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f1084611f28565b91509150610f268187610f21611e4b565b611f4a565b610f7257610f3b86610f36611e4b565b611b60565b610f71576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fd8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fe58686866001611f8e565b8015610ff057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506110be8561109a888887611f94565b7c020000000000000000000000000000000000000000000000000000000017611fbc565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036111445760006001850190506000600460008381526020019081526020016000205403611142576000548114611141578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111ac8686866001611fe7565b505050505050565b600d5481565b6111c2611d27565b600260095403611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe906133fa565b60405180910390fd5b60026009819055506000611219611622565b73ffffffffffffffffffffffffffffffffffffffff164760405161123c9061344b565b60006040518083038185875af1925050503d8060008114611279576040519150601f19603f3d011682016040523d82523d6000602084013e61127e565b606091505b505090508061128c57600080fd5b506001600981905550565b6112b283838360405180602001604052806000815250611927565b505050565b6112bf611d27565b80600c90805190602001906112d5929190612767565b5050565b601260019054906101000a900460ff1681565b600b80546112f990613082565b80601f016020809104026020016040519081016040528092919081815260200182805461132590613082565b80156113725780601f1061134757610100808354040283529160200191611372565b820191906000526020600020905b81548152906001019060200180831161135557829003601f168201915b505050505081565b60115481565b600061138b82611e5c565b9050919050565b601260009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140c576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611465611d27565b61146f6000611fed565b565b611479611d27565b600f5482611485610e63565b61148f91906131ba565b11156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c79061325c565b60405180910390fd5b6114da8183611dce565b5050565b606060006114eb836113a5565b67ffffffffffffffff81111561150457611503612b18565b5b6040519080825280602002602001820160405280156115325781602001602082028036833780820191505090505b509050600061153f6120b3565b905060008060005b8381101561161557600061155a826120bc565b905080604001511561156c5750611608565b600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146115ac57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160657818685806001019650815181106115f9576115f8613460565b5b6020026020010181815250505b505b8080600101915050611547565b5083945050505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606003805461166190613082565b80601f016020809104026020016040519081016040528092919081815260200182805461168d90613082565b80156116da5780601f106116af576101008083540402835291602001916116da565b820191906000526020600020905b8154815290600101906020018083116116bd57829003601f168201915b5050505050905090565b600e5481565b60006105dc6116f7610e63565b101561170757600d54905061170d565b600e5490505b90565b611718611e4b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177c576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611789611e4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611836611e4b565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161187b9190612970565b60405180910390a35050565b600c805461189490613082565b80601f01602080910402602001604051908101604052809291908181526020018280546118c090613082565b801561190d5780601f106118e25761010080835404028352916020019161190d565b820191906000526020600020905b8154815290600101906020018083116118f057829003601f168201915b505050505081565b61191d611d27565b8060108190555050565b611932848484610e92565b60008373ffffffffffffffffffffffffffffffffffffffff163b146119945761195d848484846120e7565b611993576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60606119a582611dec565b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90613501565b60405180910390fd5b60001515601260019054906101000a900460ff16151503611a9157600c8054611a0c90613082565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3890613082565b8015611a855780601f10611a5a57610100808354040283529160200191611a85565b820191906000526020600020905b815481529060010190602001808311611a6857829003601f168201915b50505050509050611aed565b6000611a9b612237565b90506000815111611abb5760405180602001604052806000815250611ae9565b80611ac5846122c9565b600b604051602001611ad9939291906135f1565b6040516020818303038152906040525b9150505b919050565b611afa611d27565b80601260006101000a81548160ff02191690831515021790555050565b611b1f611d27565b8060118190555050565b611b31611d27565b80600d8190555050565b611b43611d27565b80601260016101000a81548160ff02191690831515021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600a8054611c0190613082565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2d90613082565b8015611c7a5780601f10611c4f57610100808354040283529160200191611c7a565b820191906000526020600020905b815481529060010190602001808311611c5d57829003601f168201915b505050505081565b611c8a611d27565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613694565b60405180910390fd5b611d0281611fed565b50565b611d0d611d27565b80600a9080519060200190611d23929190612767565b5050565b611d2f611dc6565b73ffffffffffffffffffffffffffffffffffffffff16611d4d611622565b73ffffffffffffffffffffffffffffffffffffffff1614611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613700565b60405180910390fd5b565b60006105dc821015611dbb57600d549050611dc1565b600e5490505b919050565b600033905090565b611de8828260405180602001604052806000815250612429565b5050565b600081611df7611e53565b11158015611e06575060005482105b8015611e44575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611e6b611e53565b11611ef157600054811015611ef05760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611eee575b60008103611ee4576004600083600190039350838152602001908152602001600020549050611eba565b8092505050611f23565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000600690508360005280602052604060002092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611fab8686846124c6565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905090565b6120c46127ed565b6120e060046000848152602001908152602001600020546124cf565b9050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261210d611e4b565b8786866040518563ffffffff1660e01b815260040161212f9493929190613775565b6020604051808303816000875af192505050801561216b57506040513d601f19601f8201168201806040525081019061216891906137d6565b60015b6121e4573d806000811461219b576040519150601f19603f3d011682016040523d82523d6000602084013e6121a0565b606091505b5060008151036121dc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a805461224690613082565b80601f016020809104026020016040519081016040528092919081815260200182805461227290613082565b80156122bf5780601f10612294576101008083540402835291602001916122bf565b820191906000526020600020905b8154815290600101906020018083116122a257829003601f168201915b5050505050905090565b606060008203612310576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612424565b600082905060005b6000821461234257808061232b90613803565b915050600a8261233b919061387a565b9150612318565b60008167ffffffffffffffff81111561235e5761235d612b18565b5b6040519080825280601f01601f1916602001820160405280156123905781602001600182028036833780820191505090505b5090505b6000851461241d576001826123a991906138ab565b9150600a856123b891906138df565b60306123c491906131ba565b60f81b8183815181106123da576123d9613460565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612416919061387a565b9450612394565b8093505050505b919050565b6124338383612585565b60008373ffffffffffffffffffffffffffffffffffffffff163b146124c157600080549050600083820390505b61247360008683806001019450866120e7565b6124a9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106124605781600054146124be57600080fd5b50505b505050565b60009392505050565b6124d76127ed565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125f1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361262b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126386000848385611f8e565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506126af836126a06000866000611f94565b6126a985612757565b17611fbc565b60046000838152602001908152602001600020819055506000819050600083830190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082106126d3578060008190555050506127526000848385611fe7565b505050565b60006001821460e11b9050919050565b82805461277390613082565b90600052602060002090601f01602090048101928261279557600085556127dc565b82601f106127ae57805160ff19168380011785556127dc565b828001600101855582156127dc579182015b828111156127db5782518255916020019190600101906127c0565b5b5090506127e9919061283c565b5090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b5b8082111561285557600081600090555060010161283d565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6128808161286d565b811461288b57600080fd5b50565b60008135905061289d81612877565b92915050565b6000602082840312156128b9576128b8612863565b5b60006128c78482850161288e565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612905816128d0565b811461291057600080fd5b50565b600081359050612922816128fc565b92915050565b60006020828403121561293e5761293d612863565b5b600061294c84828501612913565b91505092915050565b60008115159050919050565b61296a81612955565b82525050565b60006020820190506129856000830184612961565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c55780820151818401526020810190506129aa565b838111156129d4576000848401525b50505050565b6000601f19601f8301169050919050565b60006129f68261298b565b612a008185612996565b9350612a108185602086016129a7565b612a19816129da565b840191505092915050565b60006020820190508181036000830152612a3e81846129eb565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7182612a46565b9050919050565b612a8181612a66565b82525050565b6000602082019050612a9c6000830184612a78565b92915050565b612aab81612a66565b8114612ab657600080fd5b50565b600081359050612ac881612aa2565b92915050565b60008060408385031215612ae557612ae4612863565b5b6000612af385828601612ab9565b9250506020612b048582860161288e565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b50826129da565b810181811067ffffffffffffffff82111715612b6f57612b6e612b18565b5b80604052505050565b6000612b82612859565b9050612b8e8282612b47565b919050565b600067ffffffffffffffff821115612bae57612bad612b18565b5b612bb7826129da565b9050602081019050919050565b82818337600083830152505050565b6000612be6612be184612b93565b612b78565b905082815260208101848484011115612c0257612c01612b13565b5b612c0d848285612bc4565b509392505050565b600082601f830112612c2a57612c29612b0e565b5b8135612c3a848260208601612bd3565b91505092915050565b600060208284031215612c5957612c58612863565b5b600082013567ffffffffffffffff811115612c7757612c76612868565b5b612c8384828501612c15565b91505092915050565b612c958161286d565b82525050565b6000602082019050612cb06000830184612c8c565b92915050565b600080600060608486031215612ccf57612cce612863565b5b6000612cdd86828701612ab9565b9350506020612cee86828701612ab9565b9250506040612cff8682870161288e565b9150509250925092565b600060208284031215612d1f57612d1e612863565b5b6000612d2d84828501612ab9565b91505092915050565b60008060408385031215612d4d57612d4c612863565b5b6000612d5b8582860161288e565b9250506020612d6c85828601612ab9565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dab8161286d565b82525050565b6000612dbd8383612da2565b60208301905092915050565b6000602082019050919050565b6000612de182612d76565b612deb8185612d81565b9350612df683612d92565b8060005b83811015612e27578151612e0e8882612db1565b9750612e1983612dc9565b925050600181019050612dfa565b5085935050505092915050565b60006020820190508181036000830152612e4e8184612dd6565b905092915050565b612e5f81612955565b8114612e6a57600080fd5b50565b600081359050612e7c81612e56565b92915050565b60008060408385031215612e9957612e98612863565b5b6000612ea785828601612ab9565b9250506020612eb885828601612e6d565b9150509250929050565b600067ffffffffffffffff821115612edd57612edc612b18565b5b612ee6826129da565b9050602081019050919050565b6000612f06612f0184612ec2565b612b78565b905082815260208101848484011115612f2257612f21612b13565b5b612f2d848285612bc4565b509392505050565b600082601f830112612f4a57612f49612b0e565b5b8135612f5a848260208601612ef3565b91505092915050565b60008060008060808587031215612f7d57612f7c612863565b5b6000612f8b87828801612ab9565b9450506020612f9c87828801612ab9565b9350506040612fad8782880161288e565b925050606085013567ffffffffffffffff811115612fce57612fcd612868565b5b612fda87828801612f35565b91505092959194509250565b600060208284031215612ffc57612ffb612863565b5b600061300a84828501612e6d565b91505092915050565b6000806040838503121561302a57613029612863565b5b600061303885828601612ab9565b925050602061304985828601612ab9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061309a57607f821691505b6020821081036130ad576130ac613053565b5b50919050565b7f5468652053616c65206973207061757365642100000000000000000000000000600082015250565b60006130e9601383612996565b91506130f4826130b3565b602082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7421000000000000000000000000600082015250565b6000613155601483612996565b91506131608261311f565b602082019050919050565b6000602082019050818103600083015261318481613148565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131c58261286d565b91506131d08361286d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132055761320461318b565b5b828201905092915050565b7f4d617820737570706c7920657863656564656421000000000000000000000000600082015250565b6000613246601483612996565b915061325182613210565b602082019050919050565b6000602082019050818103600083015261327581613239565b9050919050565b7f4d6178206d696e74207065722077616c6c657420657863656564656421000000600082015250565b60006132b2601d83612996565b91506132bd8261327c565b602082019050919050565b600060208201905081810360008301526132e1816132a5565b9050919050565b60006132f38261286d565b91506132fe8361286d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133375761333661318b565b5b828202905092915050565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b6000613378601383612996565b915061338382613342565b602082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006133e4601f83612996565b91506133ef826133ae565b602082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b600081905092915050565b50565b600061343560008361341a565b915061344082613425565b600082019050919050565b600061345682613428565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006134eb602f83612996565b91506134f68261348f565b604082019050919050565b6000602082019050818103600083015261351a816134de565b9050919050565b600081905092915050565b60006135378261298b565b6135418185613521565b93506135518185602086016129a7565b80840191505092915050565b60008190508160005260206000209050919050565b6000815461357f81613082565b6135898186613521565b945060018216600081146135a457600181146135b5576135e8565b60ff198316865281860193506135e8565b6135be8561355d565b60005b838110156135e0578154818901526001820191506020810190506135c1565b838801955050505b50505092915050565b60006135fd828661352c565b9150613609828561352c565b91506136158284613572565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061367e602683612996565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136ea602083612996565b91506136f5826136b4565b602082019050919050565b60006020820190508181036000830152613719816136dd565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061374782613720565b613751818561372b565b93506137618185602086016129a7565b61376a816129da565b840191505092915050565b600060808201905061378a6000830187612a78565b6137976020830186612a78565b6137a46040830185612c8c565b81810360608301526137b6818461373c565b905095945050505050565b6000815190506137d0816128fc565b92915050565b6000602082840312156137ec576137eb612863565b5b60006137fa848285016137c1565b91505092915050565b600061380e8261286d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138405761383f61318b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138858261286d565b91506138908361286d565b9250826138a05761389f61384b565b5b828204905092915050565b60006138b68261286d565b91506138c18361286d565b9250828210156138d4576138d361318b565b5b828203905092915050565b60006138ea8261286d565b91506138f58361286d565b9250826139055761390461384b565b5b82820690509291505056fea26469706673582212205dae5827b94d6701d3de2237d139871c58a3d41394d48489e499e2dc5c541a9864736f6c634300080e003368747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d544d6d74556578726b4d3763374b38683575475533314472504a74544d795871754a6e787139375878515970