0x608060405234801561001057600080fd5b5061314b806100206000396000f3fe60806040526004361061027d5760003560e01c806370a082311161014f578063a945bf80116100c1578063e985e9c51161007a578063e985e9c5146106e9578063e9ff4a6614610709578063ea2b4ab214610724578063ecba222a1461073c578063f27c2ba014610754578063f2fde38b1461079657600080fd5b8063a945bf8014610646578063a9852bfb14610661578063b88d4fde14610681578063ba41b0c6146106a1578063c87b56dd146106b4578063dbbc853b146106d457600080fd5b80638456cb59116101135780638456cb59146105a35780638da5cb5b146105b857806395d89b41146105db578063995314c7146105f0578063a22cb46514610610578063a2309ff81461063057600080fd5b806370a0823114610541578063715018a6146105615780637353fc4e1461057657806375ba0220146105765780637c18181b1461058b57600080fd5b80633f4ba83a116101f3578063627804af116101ac578063627804af146104895780636352211e146104a957806368697129146104c9578063690d8320146104e457806369c3e794146105045780636c0360eb1461052c57600080fd5b80633f4ba83a146103e757806342842e0e146103fc57806355f804b31461041c5780635c975abb1461043c5780635ef9432a14610454578063611236a41461046957600080fd5b8063177f163e11610245578063177f163e1461035957806318160ddd1461036e57806323b872dd14610383578063255e4685146103a35780632eb4a7ab146103bb57806332cb6b0c146103d157600080fd5b806301ffc9a71461028257806306fdde03146102b7578063081812fc146102d9578063095ea7b3146103115780631566e85d14610333575b600080fd5b34801561028e57600080fd5b506102a261029d3660046129c3565b6107b6565b60405190151581526020015b60405180910390f35b3480156102c357600080fd5b506102cc610808565b6040516102ae9190612a38565b3480156102e557600080fd5b506102f96102f4366004612a4b565b6108a3565b6040516001600160a01b0390911681526020016102ae565b34801561031d57600080fd5b5061033161032c366004612a7b565b6108f0565b005b34801561033f57600080fd5b5061034b63639b60a081565b6040519081526020016102ae565b34801561036557600080fd5b5061034b600181565b34801561037a57600080fd5b5061034b6109d0565b34801561038f57600080fd5b5061033161039e366004612aa5565b6109ef565b3480156103af57600080fd5b5061034b63639b1a5081565b3480156103c757600080fd5b5061034b60cc5481565b3480156103dd57600080fd5b5061034b61271081565b3480156103f357600080fd5b50610331610ada565b34801561040857600080fd5b50610331610417366004612aa5565b610aec565b34801561042857600080fd5b50610331610437366004612b8d565b610bcc565b34801561044857600080fd5b5060655460ff166102a2565b34801561046057600080fd5b50610331610beb565b34801561047557600080fd5b50610331610484366004612a4b565b610c60565b34801561049557600080fd5b506103316104a4366004612a7b565b610c6d565b3480156104b557600080fd5b506102f96104c4366004612a4b565b610c9b565b3480156104d557600080fd5b5061034b66b1a2bc2ec5000081565b3480156104f057600080fd5b506103316104ff366004612bc2565b610ca6565b34801561051057600080fd5b506102f97325e83e339b5414909cde81f7bf0a5401b21201f981565b34801561053857600080fd5b506102cc610d99565b34801561054d57600080fd5b5061034b61055c366004612bc2565b610e27565b34801561056d57600080fd5b50610331610e90565b34801561058257600080fd5b5061034b600281565b34801561059757600080fd5b5061034b63639b367081565b3480156105af57600080fd5b50610331610ea2565b3480156105c457600080fd5b5060975461010090046001600160a01b03166102f9565b3480156105e757600080fd5b506102cc610eb2565b3480156105fc57600080fd5b5061033161060b366004612bdd565b610eca565b34801561061c57600080fd5b5061033161062b366004612c58565b611179565b34801561063c57600080fd5b5061034b60cb5481565b34801561065257600080fd5b5061034b66f8b0a10e47000081565b34801561066d57600080fd5b5061033161067c366004612b8d565b61124f565b34801561068d57600080fd5b5061033161069c366004612c8f565b61126a565b6103316106af366004612d0b565b611358565b3480156106c057600080fd5b506102cc6106cf366004612a4b565b6117d0565b3480156106e057600080fd5b506102cc611804565b3480156106f557600080fd5b506102a2610704366004612d8a565b611811565b34801561071557600080fd5b5061034b666a94d74f43000081565b34801561073057600080fd5b5061034b6363a48d1081565b34801561074857600080fd5b5060975460ff166102a2565b34801561076057600080fd5b5061077461076f366004612bc2565b61184e565b60408051825181526020808401519082015291810151908201526060016102ae565b3480156107a257600080fd5b506103316107b1366004612bc2565b611974565b60006301ffc9a760e01b6001600160e01b0319831614806107e757506380ac58cd60e01b6001600160e01b03198316145b806108025750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606108126119ed565b600201805461082090612dbd565b80601f016020809104026020016040519081016040528092919081815260200182805461084c90612dbd565b80156108995780601f1061086e57610100808354040283529160200191610899565b820191906000526020600020905b81548152906001019060200180831161087c57829003601f168201915b5050505050905090565b60006108ae82611a11565b6108cb576040516333d1c03960e21b815260040160405180910390fd5b6108d36119ed565b60009283526006016020525060409020546001600160a01b031690565b609754829060ff1615801561091357506daaeb6d7670e522a718067333cd4e3b15155b156109c157604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610970573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109949190612df7565b6109c157604051633b79c77360e21b81526001600160a01b03821660048201526024015b60405180910390fd5b6109cb8383611a4d565b505050565b6000806109db6119ed565b600101546109e76119ed565b540303919050565b609754839060ff16158015610a1257506daaeb6d7670e522a718067333cd4e3b15155b15610ac957336001600160a01b03821603610a3757610a32848484611afb565b610ad4565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa9190612df7565b610ac957604051633b79c77360e21b81523360048201526024016109b8565b610ad4848484611afb565b50505050565b610ae2611cf2565b610aea611d52565b565b609754839060ff16158015610b0f57506daaeb6d7670e522a718067333cd4e3b15155b15610bc157336001600160a01b03821603610b2f57610a32848484611da4565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba29190612df7565b610bc157604051633b79c77360e21b81523360048201526024016109b8565b610ad4848484611da4565b610bd4611cf2565b8051610be79060c9906020840190612914565b5050565b60975461010090046001600160a01b03166001600160a01b0316336001600160a01b031614610c2d57604051635fc483c560e01b815260040160405180910390fd5b60975460ff1615610c515760405163905e710760e01b815260040160405180910390fd5b6097805460ff19166001179055565b610c68611cf2565b60cc55565b610c75611cf2565b61271060cb5482610c869190612e2a565b1115610c9157600080fd5b610be78282611dbf565b600061080282611e34565b610cae611cf2565b6001600160a01b038116610d045760405162461bcd60e51b815260206004820152601b60248201527f43616e74207472616e7366657220746f2030206164647265737321000000000060448201526064016109b8565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610d51576040519150601f19603f3d011682016040523d82523d6000602084013e610d56565b606091505b5050905080610be75760405162461bcd60e51b815260206004820152600f60248201526e15da5d1a191c985dc811985a5b1959608a1b60448201526064016109b8565b60c98054610da690612dbd565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd290612dbd565b8015610e1f5780601f10610df457610100808354040283529160200191610e1f565b820191906000526020600020905b815481529060010190602001808311610e0257829003601f168201915b505050505081565b60006001600160a01b038216610e50576040516323d3ad8160e21b815260040160405180910390fd5b67ffffffffffffffff610e616119ed565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b610e98611cf2565b610aea6000611ec7565b610eaa611cf2565b610aea611f21565b6060610ebc6119ed565b600301805461082090612dbd565b6000805160206130f683398151915254610100900460ff16610eff576000805160206130f68339815191525460ff1615610f03565b303b155b610f755760405162461bcd60e51b815260206004820152603760248201527f455243373231415f5f496e697469616c697a61626c653a20636f6e747261637460448201527f20697320616c726561647920696e697469616c697a656400000000000000000060648201526084016109b8565b6000805160206130f683398151915254610100900460ff16158015610fb1576000805160206130f6833981519152805461ffff19166101011790555b600054610100900460ff1615808015610fd15750600054600160ff909116105b80610feb5750303b158015610feb575060005460ff166001145b61104e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109b8565b6000805460ff191660011790558015611071576000805461ff0019166101001790555b6110cc6040518060400160405280601781526020017f44657061727465644170657347436f6c6c656374696f6e000000000000000000815250604051806040016040528060048152602001634441474360e01b815250611f5e565b6110d4611f9c565b6110dc611fcb565b84516110ef9060c9906020880190612914565b5083516111039060ca906020870190612914565b50600060cb5560cc8390558015611154576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b508015610ad45750506000805160206130f6833981519152805461ff00191690555050565b609754829060ff1615801561119c57506daaeb6d7670e522a718067333cd4e3b15155b1561124557604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156111f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121d9190612df7565b61124557604051633b79c77360e21b81526001600160a01b03821660048201526024016109b8565b6109cb8383612011565b611257611cf2565b8051610be79060ca906020840190612914565b609754849060ff1615801561128d57506daaeb6d7670e522a718067333cd4e3b15155b1561134557336001600160a01b038216036112b3576112ae858585856120b7565b611351565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113269190612df7565b61134557604051633b79c77360e21b81523360048201526024016109b8565b611351858585856120b7565b5050505050565b6113606120fb565b611368612154565b4263639b1a501115801561137f5750426363a48d10115b6113c15760405162461bcd60e51b815260206004820152601360248201527226b4b73a1034b9903737ba1030b1ba34bb329760691b60448201526064016109b8565b6127108360cb546113d29190612e2a565b111561140c5760405162461bcd60e51b8152602060048201526009602482015268534f4c44204f55542160b81b60448201526064016109b8565b63639b36704211611563576114203361219a565b61149c5760405162461bcd60e51b815260206004820152604160248201527f536f7272792c20796f7520646f6e2774206f776e20616e7920666f7274756e6560448201527f20636f6f6b6965732c20706c6561736520636f6d65206261636b206c617465726064820152601760f91b608482015260a4016109b8565b33600090815260cd60205260409020546002906114ba908590612e2a565b11156114d85760405162461bcd60e51b81526004016109b890612e42565b6114e983666a94d74f430000612e9f565b341461152f5760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103830bcb6b2b73a1760591b60448201526064016109b8565b6115393384611dbf565b33600090815260cd602052604081208054859290611558908490612e2a565b909155506117c79050565b63639b60a042116116b657604080513360601b6bffffffffffffffffffffffff191660208083019190915282516014818403018152603490920190925280519101206115e29083838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061222592505050565b6116695760405162461bcd60e51b815260206004820152604c60248201527f536f7272792c20796f7520617265206e6f7420696e207468697320776169746c60448201527f6973742c20706c6561736520636f6d65206261636b206c61746572206174207060648201526b3ab13634b1903937bab7321760a11b608482015260a4016109b8565b33600090815260cd6020526040902054600290611687908590612e2a565b11156116a55760405162461bcd60e51b81526004016109b890612e42565b6114e98366b1a2bc2ec50000612e9f565b33600090815260ce60205260409020546001906116d4908590612e2a565b11156117415760405162461bcd60e51b815260206004820152603660248201527f536f7272792c20796f752068617665206d696e74656420616c6c20796f75722060448201527538bab7ba309034b710383ab13634b1903937bab7321760511b60648201526084016109b8565b6117528366f8b0a10e470000612e9f565b34146117985760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103830bcb6b2b73a1760591b60448201526064016109b8565b6117a23384611dbf565b33600090815260ce6020526040812080548592906117c1908490612e2a565b90915550505b6109cb60018055565b60606117db82612234565b60ca6040516020016117ee929190612ebe565b6040516020818303038152906040529050919050565b60ca8054610da690612dbd565b600061181b6119ed565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b61187260405180606001604052806000815260200160008152602001600081525090565b63639b367042116118ca57604080516060810182526001600160a01b038416600090815260cd602052919091205481906118ad906002612f6e565b815260026020820152666a94d74f43000060409091015292915050565b63639b60a0421161192257604080516060810182526001600160a01b038416600090815260cd60205291909120548190611905906002612f6e565b81526002602082015266b1a2bc2ec5000060409091015292915050565b604080516060810182526001600160a01b038416600090815260ce60205291909120548190611952906001612f6e565b81526001602082015266f8b0a10e47000060409091015292915050565b919050565b61197c611cf2565b6001600160a01b0381166119e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b8565b6119ea81611ec7565b50565b7f2569078dfb4b0305704d3008e7403993ae9601b85f7ae5e742de3de8f8011c4090565b6000611a1b6119ed565b54821080156108025750600160e01b611a326119ed565b60008481526004919091016020526040902054161592915050565b6000611a5882610c9b565b9050336001600160a01b03821614611a9157611a748133611811565b611a91576040516367d9dca160e11b815260040160405180910390fd5b82611a9a6119ed565b6000848152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551849286811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a4505050565b6000611b0682611e34565b9050836001600160a01b0316816001600160a01b031614611b395760405162a1148160e81b815260040160405180910390fd5b600080611b45846122b7565b91509150611b6a8187611b553390565b6001600160a01b039081169116811491141790565b611b9557611b788633611811565b611b9557604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516611bbc57604051633a954ecd60e21b815260040160405180910390fd5b8015611bc757600082555b611bcf6119ed565b6001600160a01b0387166000908152600591909101602052604090208054600019019055611bfb6119ed565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17611c326119ed565b60008681526004919091016020526040812091909155600160e11b84169003611ca85760018401611c616119ed565b600082815260049190910160205260408120549003611ca657611c826119ed565b548114611ca65783611c926119ed565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6097546001600160a01b03610100909104163314610aea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109b8565b611d5a6122df565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6109cb8383836040518060200160405280600081525061126a565b60008111611e0f5760405162461bcd60e51b815260206004820152601f60248201527f5175616e74697479206d7573742062652067726561746572207468616e20300060448201526064016109b8565b611e198282612328565b8060cb6000828254611e2b9190612e2a565b90915550505050565b600081611e3f6119ed565b54811015611eae576000611e516119ed565b600083815260049190910160205260408120549150600160e01b82169003611eac575b80600003611ea557611e846119ed565b60001990920160008181526004939093016020526040909220549050611e74565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b609780546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611f29612154565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d873390565b6000805160206130f683398151915254610100900460ff16611f925760405162461bcd60e51b81526004016109b890612f85565b610be78282612342565b600054610100900460ff16611fc35760405162461bcd60e51b81526004016109b890612fd9565b610aea6123c5565b600054610100900460ff16611ff25760405162461bcd60e51b81526004016109b890612fd9565b610aea733cc6cdda760b79bafa08df41ecfa224f810dceb660016123f5565b336001600160a01b0383160361203a5760405163b06307db60e01b815260040160405180910390fd5b806120436119ed565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6120c28484846109ef565b6001600160a01b0383163b15610ad4576120de848484846123ff565b610ad4576040516368d2bf6b60e11b815260040160405180910390fd5b60026001540361214d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109b8565b6002600155565b60655460ff1615610aea5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109b8565b6040516370a0823160e01b81526001600160a01b03821660048201526000907325e83e339b5414909cde81f7bf0a5401b21201f99081906370a0823190602401602060405180830381865afa1580156121f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221b9190613024565b6001149392505050565b6000611ea58260cc54856124eb565b606061223f82611a11565b61225c57604051630a14c4b560e41b815260040160405180910390fd5b6000612266612501565b905080516000036122865760405180602001604052806000815250611ea5565b8061229084612510565b6040516020016122a192919061303d565b6040516020818303038152906040529392505050565b60008060006122c46119ed565b60009485526006016020525050604090912080549092909150565b60655460ff16610aea5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109b8565b610be7828260405180602001604052806000815250612548565b6000805160206130f683398151915254610100900460ff166123765760405162461bcd60e51b81526004016109b890612f85565b8161237f6119ed565b6002019080519060200190612395929190612914565b508061239f6119ed565b60030190805190602001906123b5929190612914565b5060006123c06119ed565b555050565b600054610100900460ff166123ec5760405162461bcd60e51b81526004016109b890612fd9565b610aea33611ec7565b610be782826125be565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061243490339089908890889060040161306c565b6020604051808303816000875af192505050801561246f575060408051601f3d908101601f1916820190925261246c918101906130a9565b60015b6124cd573d80801561249d576040519150601f19603f3d011682016040523d82523d6000602084013e6124a2565b606091505b5080516000036124c5576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6000826124f8858461275d565b14949350505050565b606060c9805461082090612dbd565b604080516080019081905280825b600183039250600a81066030018353600a90048061251e5750819003601f19909101908152919050565b61255283836127aa565b6001600160a01b0383163b156109cb57600061256c6119ed565b5490508281035b61258660008683806001019450866123ff565b6125a3576040516368d2bf6b60e11b815260040160405180910390fd5b81811061257357816125b36119ed565b541461135157600080fd5b600054610100900460ff166125e55760405162461bcd60e51b81526004016109b890612fd9565b6daaeb6d7670e522a718067333cd4e3b15610be75760405163c3c5a54760e01b81523060048201526daaeb6d7670e522a718067333cd4e9063c3c5a547906024016020604051808303816000875af1158015612645573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126699190612df7565b610be75780156126dd57604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156126c957600080fd5b505af1158015611cea573d6000803e3d6000fd5b6001600160a01b0382161561272c5760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af2903906044016126af565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e486906024016126af565b600081815b84518110156127a25761278e82868381518110612781576127816130c6565b60200260200101516128e5565b91508061279a816130dc565b915050612762565b509392505050565b60006127b46119ed565b54905060008290036127d95760405163b562e8dd60e01b815260040160405180910390fd5b6801000000000000000182026127ed6119ed565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b17176128286119ed565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146128b257808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460010161287a565b50816000036128d357604051622e076360e81b815260040160405180910390fd5b806128dc6119ed565b55506109cb9050565b6000818310612901576000828152602084905260409020611ea5565b6000838152602083905260409020611ea5565b82805461292090612dbd565b90600052602060002090601f0160209004810192826129425760008555612988565b82601f1061295b57805160ff1916838001178555612988565b82800160010185558215612988579182015b8281111561298857825182559160200191906001019061296d565b50612994929150612998565b5090565b5b808211156129945760008155600101612999565b6001600160e01b0319811681146119ea57600080fd5b6000602082840312156129d557600080fd5b8135611ea5816129ad565b60005b838110156129fb5781810151838201526020016129e3565b83811115610ad45750506000910152565b60008151808452612a248160208601602086016129e0565b601f01601f19169290920160200192915050565b602081526000611ea56020830184612a0c565b600060208284031215612a5d57600080fd5b5035919050565b80356001600160a01b038116811461196f57600080fd5b60008060408385031215612a8e57600080fd5b612a9783612a64565b946020939093013593505050565b600080600060608486031215612aba57600080fd5b612ac384612a64565b9250612ad160208501612a64565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612b1257612b12612ae1565b604051601f8501601f19908116603f01168101908282118183101715612b3a57612b3a612ae1565b81604052809350858152868686011115612b5357600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612b7e57600080fd5b611ea583833560208501612af7565b600060208284031215612b9f57600080fd5b813567ffffffffffffffff811115612bb657600080fd5b6124e384828501612b6d565b600060208284031215612bd457600080fd5b611ea582612a64565b600080600060608486031215612bf257600080fd5b833567ffffffffffffffff80821115612c0a57600080fd5b612c1687838801612b6d565b94506020860135915080821115612c2c57600080fd5b50612c3986828701612b6d565b925050604084013590509250925092565b80151581146119ea57600080fd5b60008060408385031215612c6b57600080fd5b612c7483612a64565b91506020830135612c8481612c4a565b809150509250929050565b60008060008060808587031215612ca557600080fd5b612cae85612a64565b9350612cbc60208601612a64565b925060408501359150606085013567ffffffffffffffff811115612cdf57600080fd5b8501601f81018713612cf057600080fd5b612cff87823560208401612af7565b91505092959194509250565b600080600060408486031215612d2057600080fd5b83359250602084013567ffffffffffffffff80821115612d3f57600080fd5b818601915086601f830112612d5357600080fd5b813581811115612d6257600080fd5b8760208260051b8501011115612d7757600080fd5b6020830194508093505050509250925092565b60008060408385031215612d9d57600080fd5b612da683612a64565b9150612db460208401612a64565b90509250929050565b600181811c90821680612dd157607f821691505b602082108103612df157634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612e0957600080fd5b8151611ea581612c4a565b634e487b7160e01b600052601160045260246000fd5b60008219821115612e3d57612e3d612e14565b500190565b6020808252603a908201527f536f7272792c20796f752068617665206d696e74656420616c6c20796f75722060408201527f71756f746120696e206e6f6e2d7075626c696320726f756e642e000000000000606082015260800190565b6000816000190483118215151615612eb957612eb9612e14565b500290565b600083516020612ed182858389016129e0565b845491840191600090600181811c9080831680612eef57607f831692505b8583108103612f0c57634e487b7160e01b85526022600452602485fd5b808015612f205760018114612f3157612f5e565b60ff19851688528388019550612f5e565b60008b81526020902060005b85811015612f565781548a820152908401908801612f3d565b505083880195505b50939a9950505050505050505050565b600082821015612f8057612f80612e14565b500390565b60208082526034908201527f455243373231415f5f496e697469616c697a61626c653a20636f6e7472616374604082015273206973206e6f7420696e697469616c697a696e6760601b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561303657600080fd5b5051919050565b6000835161304f8184602088016129e0565b8351908301906130638183602088016129e0565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061309f90830184612a0c565b9695505050505050565b6000602082840312156130bb57600080fd5b8151611ea5816129ad565b634e487b7160e01b600052603260045260246000fd5b6000600182016130ee576130ee612e14565b506001019056feee151c8401928dc223602bb187aff91b9a56c7cae5476ef1b3287b085a16c85fa264697066735822122028d8805285737c3329c4316d2417da10459574eace6e0b9b0b816ca850dae78364736f6c634300080e0033