60806040523480156200001157600080fd5b5060408051808201909152601681527f68747470733a2f2f746573742f7b69647d2e6a736f6e000000000000000000006020820152620000518162000124565b5060408051808201909152601a81527f417263616465204c616e64204275696c6465722041737365747300000000000060208201526005906200009590826200027f565b5060408051808201909152600b81526a105490d05111509552531160aa1b6020820152600690620000c790826200027f565b5060078054336001600160b01b03199091168117607d60a21b17909155620000f29060009062000136565b6200011e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000136565b6200034b565b60026200013282826200027f565b5050565b60008281526003602090815260408083206001600160a01b038516845290915290205460ff16620001325760008281526003602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620001963390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200020557607f821691505b6020821081036200022657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027a57600081815260208120601f850160051c81016020861015620002555750805b601f850160051c820191505b81811015620002765782815560010162000261565b5050505b505050565b81516001600160401b038111156200029b576200029b620001da565b620002b381620002ac8454620001f0565b846200022c565b602080601f831160018114620002eb5760008415620002d25750858301515b600019600386901b1c1916600185901b17855562000276565b600085815260208120601f198616915b828110156200031c57888601518255948401946001909101908401620002fb565b50858210156200033b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613635806200035b6000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c806351cff8d9116100f9578063bd85b03911610097578063d81d0a1511610071578063d81d0a151461044d578063e985e9c514610460578063f242432a146104a9578063f5298aca146104bc57600080fd5b8063bd85b039146103f3578063d539139314610413578063d547741f1461043a57600080fd5b806395d89b41116100d357806395d89b41146103bd578063a217fddf146103c5578063a22cb465146103cd578063ac323a1f146103e057600080fd5b806351cff8d9146103515780636b20c4541461036457806391d148541461037757600080fd5b80632a55205a1161016657806336568abe1161014057806336568abe146102e957806341e42f30146102fc5780634e1273f41461030f5780634f558e791461032f57600080fd5b80632a55205a146102845780632eb2c2d6146102c35780632f2ff15d146102d657600080fd5b806306fdde03116101a257806306fdde03146102265780630e89341c1461023b578063156e29f61461024e578063248a9ca31461026157600080fd5b8062fdd58e146101c857806301ffc9a7146101ee57806302fe530514610211575b600080fd5b6101db6101d63660046129f3565b6104cf565b6040519081526020015b60405180910390f35b6102016101fc366004612a4d565b610595565b60405190151581526020016101e5565b61022461021f366004612b60565b6105eb565b005b61022e610603565b6040516101e59190612c1f565b61022e610249366004612c32565b610691565b61022461025c366004612c4b565b610725565b6101db61026f366004612c32565b60009081526003602052604090206001015490565b610297610292366004612c80565b610770565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101e5565b6102246102d1366004612d57565b6107cf565b6102246102e4366004612e05565b61087e565b6102246102f7366004612e05565b6108a8565b61022461030a366004612e35565b61093d565b61032261031d366004612e52565b610a19565b6040516101e59190612f5a565b61020161033d366004612c32565b600090815260046020526040902054151590565b61022461035f366004612e35565b610b57565b610224610372366004612f6d565b610c12565b610201610385366004612e05565b600091825260036020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61022e610cb8565b6101db600081565b6102246103db366004612fe3565b610cc5565b6102246103ee366004613016565b610cd0565b6101db610401366004612c32565b60009081526004602052604090205490565b6101db7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610224610448366004612e05565b610d7f565b61022461045b366004612f6d565b610da4565b61020161046e36600461303a565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6102246104b7366004613068565b610de9565b6102246104ca366004612c4b565b610e91565b600073ffffffffffffffffffffffffffffffffffffffff831661055f5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526020818152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061058f575061058f82610f37565b60006105f681610f8d565b6105ff82610f9a565b5050565b60058054610610906130d1565b80601f016020809104026020016040519081016040528092919081815260200182805461063c906130d1565b80156106895780601f1061065e57610100808354040283529160200191610689565b820191906000526020600020905b81548152906001019060200180831161066c57829003601f168201915b505050505081565b6060600280546106a0906130d1565b80601f01602080910402602001604051908101604052809291908181526020018280546106cc906130d1565b80156107195780601f106106ee57610100808354040283529160200191610719565b820191906000526020600020905b8154815290600101906020018083116106fc57829003601f168201915b50505050509050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661074f81610f8d565b61076a84848460405180602001604052806000815250610fa6565b50505050565b600754600090819073ffffffffffffffffffffffffffffffffffffffff811690612710906107ba9074010000000000000000000000000000000000000000900461ffff1686613153565b6107c4919061316a565b915091509250929050565b73ffffffffffffffffffffffffffffffffffffffff85163314806107f857506107f8853361046e565b61086a5760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610556565b610877858585858561110c565b5050505050565b60008281526003602052604090206001015461089981610f8d565b6108a38383611406565b505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109335760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610556565b6105ff82826114fa565b600061094881610f8d565b73ffffffffffffffffffffffffffffffffffffffff82166109d15760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420726f79616c747920726563697069656e742061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610556565b50600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60608151835114610a925760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610556565b6000835167ffffffffffffffff811115610aae57610aae612a6a565b604051908082528060200260200182016040528015610ad7578160200160208202803683370190505b50905060005b8451811015610b4f57610b22858281518110610afb57610afb6131a5565b6020026020010151858381518110610b1557610b156131a5565b60200260200101516104cf565b828281518110610b3457610b346131a5565b6020908102919091010152610b48816131d4565b9050610add565b509392505050565b6000610b6281610f8d565b60008273ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d8060008114610bbc576040519150601f19603f3d011682016040523d82523d6000602084013e610bc1565b606091505b50509050806108a35760405162461bcd60e51b815260206004820152601460248201527f4661696c656420746f2073656e642045746865720000000000000000000000006044820152606401610556565b73ffffffffffffffffffffffffffffffffffffffff8316331480610c3b5750610c3b833361046e565b610cad5760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610556565b6108a38383836115b5565b60068054610610906130d1565b6105ff3383836118a0565b6000610cdb81610f8d565b6127108261ffff161115610d315760405162461bcd60e51b815260206004820152601360248201527f496e76616c696420726f79616c747920666565000000000000000000000000006044820152606401610556565b506007805461ffff90921674010000000000000000000000000000000000000000027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600082815260036020526040902060010154610d9a81610f8d565b6108a383836114fa565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610dce81610f8d565b61076a848484604051806020016040528060008152506119d9565b73ffffffffffffffffffffffffffffffffffffffff8516331480610e125750610e12853361046e565b610e845760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610556565b6108778585858585611c2d565b73ffffffffffffffffffffffffffffffffffffffff8316331480610eba5750610eba833361046e565b610f2c5760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610556565b6108a3838383611e45565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061058f575061058f8261202f565b610f978133612112565b50565b60026105ff8282613252565b73ffffffffffffffffffffffffffffffffffffffff841661102f5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610556565b33600061103b856121b2565b90506000611048856121b2565b9050611059836000898585896121fd565b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8b1684529091528120805487929061109690849061336c565b9091555050604080518781526020810187905273ffffffffffffffffffffffffffffffffffffffff808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46111038360008989898961220b565b50505050505050565b81518351146111835760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610556565b73ffffffffffffffffffffffffffffffffffffffff841661120c5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610556565b3361121b8187878787876121fd565b60005b845181101561137157600085828151811061123b5761123b6131a5565b602002602001015190506000858381518110611259576112596131a5565b6020908102919091018101516000848152808352604080822073ffffffffffffffffffffffffffffffffffffffff8e16835290935291909120549091508181101561130c5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e73666572000000000000000000000000000000000000000000006064820152608401610556565b60008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8e8116855292528083208585039055908b1682528120805484929061135690849061336c565b925050819055505050508061136a906131d4565b905061121e565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516113e892919061337f565b60405180910390a46113fe818787878787612447565b505050505050565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166105ff57600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561149c3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156105ff57600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b73ffffffffffffffffffffffffffffffffffffffff831661163e5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610556565b80518251146116b55760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610556565b60003390506116d8818560008686604051806020016040528060008152506121fd565b60005b835181101561180c5760008482815181106116f8576116f86131a5565b602002602001015190506000848381518110611716576117166131a5565b6020908102919091018101516000848152808352604080822073ffffffffffffffffffffffffffffffffffffffff8c1683529093529190912054909150818110156117c85760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e6365000000000000000000000000000000000000000000000000000000006064820152608401610556565b60009283526020838152604080852073ffffffffffffffffffffffffffffffffffffffff8b1686529091529092209103905580611804816131d4565b9150506116db565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161188492919061337f565b60405180910390a460408051602081019091526000905261076a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119415760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610556565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8416611a625760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610556565b8151835114611ad95760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610556565b33611ae9816000878787876121fd565b60005b8451811015611b9e57838181518110611b0757611b076131a5565b6020026020010151600080878481518110611b2457611b246131a5565b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b86919061336c565b90915550819050611b96816131d4565b915050611aec565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611c1692919061337f565b60405180910390a461087781600087878787612447565b73ffffffffffffffffffffffffffffffffffffffff8416611cb65760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610556565b336000611cc2856121b2565b90506000611ccf856121b2565b9050611cdf8389898585896121fd565b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c16845290915290205485811015611d835760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e73666572000000000000000000000000000000000000000000006064820152608401610556565b60008781526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8d8116855292528083208985039055908a16825281208054889290611dcd90849061336c565b9091555050604080518881526020810188905273ffffffffffffffffffffffffffffffffffffffff808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611e3a848a8a8a8a8a61220b565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316611ece5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610556565b336000611eda846121b2565b90506000611ee7846121b2565b9050611f07838760008585604051806020016040528060008152506121fd565b60008581526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8a16845290915290205484811015611faa5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e6365000000000000000000000000000000000000000000000000000000006064820152608401610556565b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052611103565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014806120c257507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061058f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461058f565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166105ff57612152816125da565b61215d8360206125f9565b60405160200161216e9291906133ad565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b825261055691600401612c1f565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106121ec576121ec6131a5565b602090810291909101015292915050565b6113fe868686868686612829565b73ffffffffffffffffffffffffffffffffffffffff84163b156113fe576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f23a6e6190612282908990899088908890889060040161342e565b6020604051808303816000875af19250505080156122db575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526122d89181019061347e565b60015b612390576122e761349b565b806308c379a00361232057506122fb6134b7565b806123065750612322565b8060405162461bcd60e51b81526004016105569190612c1f565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610556565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146111035760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e730000000000000000000000000000000000000000000000006064820152608401610556565b73ffffffffffffffffffffffffffffffffffffffff84163b156113fe576040517fbc197c8100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063bc197c81906124be908990899088908890889060040161355f565b6020604051808303816000875af1925050508015612517575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526125149181019061347e565b60015b612523576122e761349b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146111035760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e730000000000000000000000000000000000000000000000006064820152608401610556565b606061058f73ffffffffffffffffffffffffffffffffffffffff831660145b60606000612608836002613153565b61261390600261336c565b67ffffffffffffffff81111561262b5761262b612a6a565b6040519080825280601f01601f191660200182016040528015612655576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061268c5761268c6131a5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106126ef576126ef6131a5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600061272b846002613153565b61273690600161336c565b90505b60018111156127d3577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612777576127776131a5565b1a60f81b82828151811061278d5761278d6131a5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936127cc816135ca565b9050612739565b5083156128225760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610556565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff85166128bd5760005b83518110156128bb57828181518110612862576128626131a5565b602002602001015160046000868481518110612880576128806131a5565b6020026020010151815260200190815260200160002060008282546128a5919061336c565b909155506128b49050816131d4565b9050612847565b505b73ffffffffffffffffffffffffffffffffffffffff84166113fe5760005b83518110156111035760008482815181106128f8576128f86131a5565b602002602001015190506000848381518110612916576129166131a5565b60200260200101519050600060046000848152602001908152602001600020549050818110156129ae5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f7460448201527f616c537570706c790000000000000000000000000000000000000000000000006064820152608401610556565b600092835260046020526040909220910390556129ca816131d4565b90506128db565b73ffffffffffffffffffffffffffffffffffffffff81168114610f9757600080fd5b60008060408385031215612a0657600080fd5b8235612a11816129d1565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610f9757600080fd5b600060208284031215612a5f57600080fd5b813561282281612a1f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715612add57612add612a6a565b6040525050565b600067ffffffffffffffff831115612afe57612afe612a6a565b604051612b3360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8701160182612a99565b809150838152848484011115612b4857600080fd5b83836020830137600060208583010152509392505050565b600060208284031215612b7257600080fd5b813567ffffffffffffffff811115612b8957600080fd5b8201601f81018413612b9a57600080fd5b612ba984823560208401612ae4565b949350505050565b60005b83811015612bcc578181015183820152602001612bb4565b50506000910152565b60008151808452612bed816020860160208601612bb1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006128226020830184612bd5565b600060208284031215612c4457600080fd5b5035919050565b600080600060608486031215612c6057600080fd5b8335612c6b816129d1565b95602085013595506040909401359392505050565b60008060408385031215612c9357600080fd5b50508035926020909101359150565b600067ffffffffffffffff821115612cbc57612cbc612a6a565b5060051b60200190565b600082601f830112612cd757600080fd5b81356020612ce482612ca2565b604051612cf18282612a99565b83815260059390931b8501820192828101915086841115612d1157600080fd5b8286015b84811015612d2c5780358352918301918301612d15565b509695505050505050565b600082601f830112612d4857600080fd5b61282283833560208501612ae4565b600080600080600060a08688031215612d6f57600080fd5b8535612d7a816129d1565b94506020860135612d8a816129d1565b9350604086013567ffffffffffffffff80821115612da757600080fd5b612db389838a01612cc6565b94506060880135915080821115612dc957600080fd5b612dd589838a01612cc6565b93506080880135915080821115612deb57600080fd5b50612df888828901612d37565b9150509295509295909350565b60008060408385031215612e1857600080fd5b823591506020830135612e2a816129d1565b809150509250929050565b600060208284031215612e4757600080fd5b8135612822816129d1565b60008060408385031215612e6557600080fd5b823567ffffffffffffffff80821115612e7d57600080fd5b818501915085601f830112612e9157600080fd5b81356020612e9e82612ca2565b604051612eab8282612a99565b83815260059390931b8501820192828101915089841115612ecb57600080fd5b948201945b83861015612ef2578535612ee3816129d1565b82529482019490820190612ed0565b96505086013592505080821115612f0857600080fd5b50612f1585828601612cc6565b9150509250929050565b600081518084526020808501945080840160005b83811015612f4f57815187529582019590820190600101612f33565b509495945050505050565b6020815260006128226020830184612f1f565b600080600060608486031215612f8257600080fd5b8335612f8d816129d1565b9250602084013567ffffffffffffffff80821115612faa57600080fd5b612fb687838801612cc6565b93506040860135915080821115612fcc57600080fd5b50612fd986828701612cc6565b9150509250925092565b60008060408385031215612ff657600080fd5b8235613001816129d1565b915060208301358015158114612e2a57600080fd5b60006020828403121561302857600080fd5b813561ffff8116811461282257600080fd5b6000806040838503121561304d57600080fd5b8235613058816129d1565b91506020830135612e2a816129d1565b600080600080600060a0868803121561308057600080fd5b853561308b816129d1565b9450602086013561309b816129d1565b93506040860135925060608601359150608086013567ffffffffffffffff8111156130c557600080fd5b612df888828901612d37565b600181811c908216806130e557607f821691505b60208210810361311e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761058f5761058f613124565b6000826131a0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361320557613205613124565b5060010190565b601f8211156108a357600081815260208120601f850160051c810160208610156132335750805b601f850160051c820191505b818110156113fe5782815560010161323f565b815167ffffffffffffffff81111561326c5761326c612a6a565b6132808161327a84546130d1565b8461320c565b602080601f8311600181146132d3576000841561329d5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556113fe565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561332057888601518255948401946001909101908401613301565b508582101561335c57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111561058f5761058f613124565b6040815260006133926040830185612f1f565b82810360208401526133a48185612f1f565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516133e5816017850160208801612bb1565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613422816028840160208801612bb1565b01602801949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261347360a0830184612bd5565b979650505050505050565b60006020828403121561349057600080fd5b815161282281612a1f565b600060033d11156134b45760046000803e5060005160e01c5b90565b600060443d10156134c55790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff816024840111818411171561351357505050505090565b828501915081518181111561352b5750505050505090565b843d87010160208285010111156135455750505050505090565b61355460208286010187612a99565b509095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a0604083015261359860a0830186612f1f565b82810360608401526135aa8186612f1f565b905082810360808401526135be8185612bd5565b98975050505050505050565b6000816135d9576135d9613124565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220d710bed6c976efe5df7552ef12cfb3b4b137883023d8f6412cf5aeb397e18cd664736f6c63430008110033