0x60806040523480156200001157600080fd5b506040518060600160405280602a815260200162003acb602a91396200003781620000d9565b506004805460ff191690556200004f600033620000eb565b6200007b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c33620000eb565b620000a77f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000eb565b620000d37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000eb565b62000300565b6002620000e7828262000234565b5050565b60008281526003602090815260408083206001600160a01b038516845290915290205460ff16620000e75760008281526003602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200014b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001ba57607f821691505b602082108103620001db57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022f57600081815260208120601f850160051c810160208610156200020a5750805b601f850160051c820191505b818110156200022b5782815560010162000216565b5050505b505050565b81516001600160401b038111156200025057620002506200018f565b6200026881620002618454620001a5565b84620001e1565b602080601f831160018114620002a05760008415620002875750858301515b600019600386901b1c1916600185901b1785556200022b565b600085815260208120601f198616915b82811015620002d157888601518255948401946001909101908401620002b0565b5085821015620002f05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6137bb80620003106000396000f3fe608060405234801561001057600080fd5b50600436106101b85760003560e01c80636b20c454116100f9578063bd85b03911610097578063e63ab1e911610071578063e63ab1e91461040f578063e985e9c514610436578063f242432a1461047f578063f5298aca1461049257600080fd5b8063bd85b039146103b5578063d5391393146103d5578063d547741f146103fc57600080fd5b80638456cb59116100d35780638456cb591461034c57806391d1485414610354578063a217fddf1461039a578063a22cb465146103a257600080fd5b80636b20c454146102ff578063731133e9146103125780637f3457101461032557600080fd5b80632eb2c2d6116101665780633f4ba83a116101405780633f4ba83a146102aa5780634e1273f4146102b25780634f558e79146102d25780635c975abb146102f457600080fd5b80632eb2c2d6146102715780632f2ff15d1461028457806336568abe1461029757600080fd5b80630e89341c116101975780630e89341c1461021b5780631f7fdffa1461023b578063248a9ca31461024e57600080fd5b8062fdd58e146101bd57806301ffc9a7146101e357806302fe530514610206575b600080fd5b6101d06101cb366004612b38565b6104a5565b6040519081526020015b60405180910390f35b6101f66101f1366004612b90565b610585565b60405190151581526020016101da565b610219610214366004612ca3565b610590565b005b61022e610229366004612cf4565b6105c7565b6040516101da9190612d7b565b610219610249366004612e43565b61065b565b6101d061025c366004612cf4565b60009081526003602052604090206001015490565b61021961027f366004612edc565b610698565b610219610292366004612f86565b61075a565b6102196102a5366004612f86565b610784565b610219610833565b6102c56102c0366004612fb2565b610868565b6040516101da91906130b8565b6101f66102e0366004612cf4565b600090815260056020526040902054151590565b60045460ff166101f6565b61021961030d3660046130cb565b6109c0565b61021961032036600461313f565b610a80565b6101d07f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c81565b610219610ab6565b6101f6610362366004612f86565b600091825260036020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101d0600081565b6102196103b0366004613194565b610ae8565b6101d06103c3366004612cf4565b60009081526005602052604090205490565b6101d07f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61021961040a366004612f86565b610af3565b6101d07f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101f66104443660046131d0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b61021961048d3660046131fa565b610b18565b6102196104a036600461325f565b610bda565b600073ffffffffffffffffffffffffffffffffffffffff831661054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201527f616c6964206f776e65720000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060008181526020818152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b600061057f82610c9a565b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c6105ba81610cf0565b6105c382610cfa565b5050565b6060600280546105d690613292565b80601f016020809104026020016040519081016040528092919081815260200182805461060290613292565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b50505050509050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661068581610cf0565b61069185858585610d06565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff85163314806106c157506106c18533610444565b61074d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610546565b6106918585858585610f8e565b60008281526003602052604090206001015461077581610cf0565b61077f83836112d6565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610546565b6105c382826113ca565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61085d81610cf0565b610865611485565b50565b606081518351146108fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d6174636800000000000000000000000000000000000000000000006064820152608401610546565b6000835167ffffffffffffffff81111561091757610917612bad565b604051908082528060200260200182016040528015610940578160200160208202803683370190505b50905060005b84518110156109b85761098b858281518110610964576109646132e5565b602002602001015185838151811061097e5761097e6132e5565b60200260200101516104a5565b82828151811061099d5761099d6132e5565b60209081029190910101526109b181613343565b9050610946565b509392505050565b73ffffffffffffffffffffffffffffffffffffffff83163314806109e957506109e98333610444565b610a75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610546565b61077f838383611502565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610aaa81610cf0565b6106918585858561183c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610ae081610cf0565b6108656119bc565b6105c3338383611a17565b600082815260036020526040902060010154610b0e81610cf0565b61077f83836113ca565b73ffffffffffffffffffffffffffffffffffffffff8516331480610b415750610b418533610444565b610bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610546565b6106918585858585611b6a565b73ffffffffffffffffffffffffffffffffffffffff8316331480610c035750610c038333610444565b610c8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201527f6572206f7220617070726f7665640000000000000000000000000000000000006064820152608401610546565b61077f838383611db6565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061057f575061057f82611fd4565b61086581336120b7565b60026105c382826133c1565b73ffffffffffffffffffffffffffffffffffffffff8416610da9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610546565b8151835114610e3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610546565b33610e4a81600087878787612171565b60005b8451811015610eff57838181518110610e6857610e686132e5565b6020026020010151600080878481518110610e8557610e856132e5565b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ee791906134db565b90915550819050610ef781613343565b915050610e4d565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610f779291906134ee565b60405180910390a461069181600087878787612187565b815183511461101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610546565b73ffffffffffffffffffffffffffffffffffffffff84166110c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610546565b336110d1818787878787612171565b60005b84518110156112415760008582815181106110f1576110f16132e5565b60200260200101519050600085838151811061110f5761110f6132e5565b6020908102919091018101516000848152808352604080822073ffffffffffffffffffffffffffffffffffffffff8e1683529093529190912054909150818110156111dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e73666572000000000000000000000000000000000000000000006064820152608401610546565b60008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8e8116855292528083208585039055908b168252812080548492906112269084906134db565b925050819055505050508061123a90613343565b90506110d4565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112b89291906134ee565b60405180910390a46112ce818787878787612187565b505050505050565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166105c357600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561136c3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156105c357600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61148d612411565b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b73ffffffffffffffffffffffffffffffffffffffff83166115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610546565b8051825114611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060448201527f6d69736d617463680000000000000000000000000000000000000000000000006064820152608401610546565b600033905061165981856000868660405180602001604052806000815250612171565b60005b83518110156117a7576000848281518110611679576116796132e5565b602002602001015190506000848381518110611697576116976132e5565b6020908102919091018101516000848152808352604080822073ffffffffffffffffffffffffffffffffffffffff8c168352909352919091205490915081811015611763576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e6365000000000000000000000000000000000000000000000000000000006064820152608401610546565b60009283526020838152604080852073ffffffffffffffffffffffffffffffffffffffff8b168652909152909220910390558061179f81613343565b91505061165c565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161181f9291906134ee565b60405180910390a460408051602081019091526000905250505050565b73ffffffffffffffffffffffffffffffffffffffff84166118df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610546565b3360006118eb8561247f565b905060006118f88561247f565b905061190983600089858589612171565b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8b168452909152812080548792906119469084906134db565b9091555050604080518781526020810187905273ffffffffffffffffffffffffffffffffffffffff808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46119b3836000898989896124ca565b50505050505050565b6119c4612677565b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114d83390565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ad2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c6600000000000000000000000000000000000000000000006064820152608401610546565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8416611c0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610546565b336000611c198561247f565b90506000611c268561247f565b9050611c36838989858589612171565b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c16845290915290205485811015611cf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201527f72207472616e73666572000000000000000000000000000000000000000000006064820152608401610546565b60008781526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8d8116855292528083208985039055908a16825281208054889290611d3e9084906134db565b9091555050604080518881526020810188905273ffffffffffffffffffffffffffffffffffffffff808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611dab848a8a8a8a8a6124ca565b505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316611e59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610546565b336000611e658461247f565b90506000611e728461247f565b9050611e9283876000858560405180602001604052806000815250612171565b60008581526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8a16845290915290205484811015611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c60448201527f616e6365000000000000000000000000000000000000000000000000000000006064820152608401610546565b60008681526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46040805160208101909152600090526119b3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a2600000000000000000000000000000000000000000000000000000000148061206757507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061057f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461057f565b600082815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166105c3576120f7816126e4565b612102836020612703565b60405160200161211392919061351c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261054691600401612d7b565b612179612677565b6112ce86868686868661294d565b73ffffffffffffffffffffffffffffffffffffffff84163b156112ce576040517fbc197c8100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063bc197c81906121fe908990899088908890889060040161359d565b6020604051808303816000875af1925050508015612257575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261225491810190613608565b60015b61234057612263613625565b806308c379a0036122b65750612277613641565b8061228257506122b8565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105469190612d7b565b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560448201527f526563656976657220696d706c656d656e7465720000000000000000000000006064820152608401610546565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146119b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e730000000000000000000000000000000000000000000000006064820152608401610546565b60045460ff1661247d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610546565b565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106124b9576124b96132e5565b602090810291909101015292915050565b73ffffffffffffffffffffffffffffffffffffffff84163b156112ce576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f23a6e619061254190899089908890889088906004016136e9565b6020604051808303816000875af192505050801561259a575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261259791810190613608565b60015b6125a657612263613625565b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146119b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a6563746560448201527f6420746f6b656e730000000000000000000000000000000000000000000000006064820152608401610546565b60045460ff161561247d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610546565b606061057f73ffffffffffffffffffffffffffffffffffffffff831660145b60606000612712836002613739565b61271d9060026134db565b67ffffffffffffffff81111561273557612735612bad565b6040519080825280601f01601f19166020018201604052801561275f576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612796576127966132e5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127f9576127f96132e5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612835846002613739565b6128409060016134db565b90505b60018111156128dd577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612881576128816132e5565b1a60f81b828281518110612897576128976132e5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936128d681613750565b9050612843565b508315612946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610546565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff85166129e15760005b83518110156129df57828181518110612986576129866132e5565b6020026020010151600560008684815181106129a4576129a46132e5565b6020026020010151815260200190815260200160002060008282546129c991906134db565b909155506129d8905081613343565b905061296b565b505b73ffffffffffffffffffffffffffffffffffffffff84166112ce5760005b83518110156119b3576000848281518110612a1c57612a1c6132e5565b602002602001015190506000848381518110612a3a57612a3a6132e5565b6020026020010151905060006005600084815260200190815260200160002054905081811015612aec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f7460448201527f616c537570706c790000000000000000000000000000000000000000000000006064820152608401610546565b60009283526005602052604090922091039055612b0881613343565b90506129ff565b803573ffffffffffffffffffffffffffffffffffffffff81168114612b3357600080fd5b919050565b60008060408385031215612b4b57600080fd5b612b5483612b0f565b946020939093013593505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461086557600080fd5b600060208284031215612ba257600080fd5b813561294681612b62565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715612c2057612c20612bad565b6040525050565b600067ffffffffffffffff831115612c4157612c41612bad565b604051612c7660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8701160182612bdc565b809150838152848484011115612c8b57600080fd5b83836020830137600060208583010152509392505050565b600060208284031215612cb557600080fd5b813567ffffffffffffffff811115612ccc57600080fd5b8201601f81018413612cdd57600080fd5b612cec84823560208401612c27565b949350505050565b600060208284031215612d0657600080fd5b5035919050565b60005b83811015612d28578181015183820152602001612d10565b50506000910152565b60008151808452612d49816020860160208601612d0d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129466020830184612d31565b600067ffffffffffffffff821115612da857612da8612bad565b5060051b60200190565b600082601f830112612dc357600080fd5b81356020612dd082612d8e565b604051612ddd8282612bdc565b83815260059390931b8501820192828101915086841115612dfd57600080fd5b8286015b84811015612e185780358352918301918301612e01565b509695505050505050565b600082601f830112612e3457600080fd5b61294683833560208501612c27565b60008060008060808587031215612e5957600080fd5b612e6285612b0f565b9350602085013567ffffffffffffffff80821115612e7f57600080fd5b612e8b88838901612db2565b94506040870135915080821115612ea157600080fd5b612ead88838901612db2565b93506060870135915080821115612ec357600080fd5b50612ed087828801612e23565b91505092959194509250565b600080600080600060a08688031215612ef457600080fd5b612efd86612b0f565b9450612f0b60208701612b0f565b9350604086013567ffffffffffffffff80821115612f2857600080fd5b612f3489838a01612db2565b94506060880135915080821115612f4a57600080fd5b612f5689838a01612db2565b93506080880135915080821115612f6c57600080fd5b50612f7988828901612e23565b9150509295509295909350565b60008060408385031215612f9957600080fd5b82359150612fa960208401612b0f565b90509250929050565b60008060408385031215612fc557600080fd5b823567ffffffffffffffff80821115612fdd57600080fd5b818501915085601f830112612ff157600080fd5b81356020612ffe82612d8e565b60405161300b8282612bdc565b83815260059390931b850182019282810191508984111561302b57600080fd5b948201945b838610156130505761304186612b0f565b82529482019490820190613030565b9650508601359250508082111561306657600080fd5b5061307385828601612db2565b9150509250929050565b600081518084526020808501945080840160005b838110156130ad57815187529582019590820190600101613091565b509495945050505050565b602081526000612946602083018461307d565b6000806000606084860312156130e057600080fd5b6130e984612b0f565b9250602084013567ffffffffffffffff8082111561310657600080fd5b61311287838801612db2565b9350604086013591508082111561312857600080fd5b5061313586828701612db2565b9150509250925092565b6000806000806080858703121561315557600080fd5b61315e85612b0f565b93506020850135925060408501359150606085013567ffffffffffffffff81111561318857600080fd5b612ed087828801612e23565b600080604083850312156131a757600080fd5b6131b083612b0f565b9150602083013580151581146131c557600080fd5b809150509250929050565b600080604083850312156131e357600080fd5b6131ec83612b0f565b9150612fa960208401612b0f565b600080600080600060a0868803121561321257600080fd5b61321b86612b0f565b945061322960208701612b0f565b93506040860135925060608601359150608086013567ffffffffffffffff81111561325357600080fd5b612f7988828901612e23565b60008060006060848603121561327457600080fd5b61327d84612b0f565b95602085013595506040909401359392505050565b600181811c908216806132a657607f821691505b6020821081036132df577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361337457613374613314565b5060010190565b601f82111561077f57600081815260208120601f850160051c810160208610156133a25750805b601f850160051c820191505b818110156112ce578281556001016133ae565b815167ffffffffffffffff8111156133db576133db612bad565b6133ef816133e98454613292565b8461337b565b602080601f831160018114613442576000841561340c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556112ce565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561348f57888601518255948401946001909101908401613470565b50858210156134cb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8082018082111561057f5761057f613314565b604081526000613501604083018561307d565b8281036020840152613513818561307d565b95945050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613554816017850160208801612d0d565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613591816028840160208801612d0d565b01602801949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526135d660a083018661307d565b82810360608401526135e8818661307d565b905082810360808401526135fc8185612d31565b98975050505050505050565b60006020828403121561361a57600080fd5b815161294681612b62565b600060033d111561363e5760046000803e5060005160e01c5b90565b600060443d101561364f5790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff816024840111818411171561369d57505050505090565b82850191508151818111156136b55750505050505090565b843d87010160208285010111156136cf5750505050505090565b6136de60208286010187612bdc565b509095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261372e60a0830184612d31565b979650505050505050565b808202811582820484141761057f5761057f613314565b60008161375f5761375f613314565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea2646970667358221220bcfdda5425ac6f481ee4f5b6ea6ea42cc4f40cd5f6e05159901fb6f549c1d9b364736f6c6343000812003368747470733a2f2f64756f65787472612e64756f2d6e66742e636f6d2f6d657461646174612f7b69647d