0x60a06040523480156200001157600080fd5b50604051620020d1380380620020d1833981810160405281019062000037919062000565565b8282620000596200004d620000cc60201b60201c565b620000d460201b60201c565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000ab816200019860201b60201c565b5050806a52b7d2dcc80cd2e4000000901c6080818152505050505062000755565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001a8620001fd60201b60201c565b8060019080519060200190620001c0929190620002b7565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df81604051620001f29190620006ae565b60405180910390a150565b6200020d620000cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002336200028e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200028c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002839062000733565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054828255906000526020600020908101928215620002f6579160200282015b82811115620002f5578251825591602001919060010190620002d8565b5b50905062000305919062000309565b5090565b5b80821115620003245760008160009055506001016200030a565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000369826200033c565b9050919050565b60006200037d826200035c565b9050919050565b6200038f8162000370565b81146200039b57600080fd5b50565b600081519050620003af8162000384565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200040582620003ba565b810181811067ffffffffffffffff82111715620004275762000426620003cb565b5b80604052505050565b60006200043c62000328565b90506200044a8282620003fa565b919050565b600067ffffffffffffffff8211156200046d576200046c620003cb565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b620004988162000483565b8114620004a457600080fd5b50565b600081519050620004b8816200048d565b92915050565b6000620004d5620004cf846200044f565b62000430565b90508083825260208201905060208402830185811115620004fb57620004fa6200047e565b5b835b81811015620005285780620005138882620004a7565b845260208401935050602081019050620004fd565b5050509392505050565b600082601f8301126200054a5762000549620003b5565b5b81516200055c848260208601620004be565b91505092915050565b60008060006060848603121562000581576200058062000332565b5b600062000591868287016200039e565b935050602084015167ffffffffffffffff811115620005b557620005b462000337565b5b620005c38682870162000532565b9250506040620005d686828701620004a7565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b620006178162000483565b82525050565b60006200062b83836200060c565b60208301905092915050565b6000602082019050919050565b60006200065182620005e0565b6200065d8185620005eb565b93506200066a83620005fc565b8060005b83811015620006a15781516200068588826200061d565b9750620006928362000637565b9250506001810190506200066e565b5085935050505092915050565b60006020820190508181036000830152620006ca818462000644565b905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200071b602083620006d2565b91506200072882620006e3565b602082019050919050565b600060208201905081810360008301526200074e816200070c565b9050919050565b608051611959620007786000396000818161095f015261098601526119596000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806379cf92d31161006657806379cf92d31461016d5780637adbf973146101895780638da5cb5b146101a5578063a34e3596146101c3578063f2fde38b146101f35761009e565b806301ffc9a7146100a357806306d5d0b6146100d357806350e9a7151461010357806359e1777c14610133578063715018a614610163575b600080fd5b6100bd60048036038101906100b89190611060565b61020f565b6040516100ca91906110a8565b60405180910390f35b6100ed60048036038101906100e891906110f9565b610221565b6040516100fa9190611135565b60405180910390f35b61011d600480360381019061011891906111b5565b610245565b60405161012a9190611135565b60405180910390f35b61014d60048036038101906101489190611229565b610372565b60405161015a9190611135565b60405180910390f35b61016b61041f565b005b610187600480360381019061018291906113b8565b610433565b005b6101a3600480360381019061019e9190611471565b61048c565b005b6101ad61050f565b6040516101ba91906114ad565b60405180910390f35b6101dd60048036038101906101d891906111b5565b610538565b6040516101ea9190611135565b60405180910390f35b61020d600480360381019061020891906114f4565b6105a0565b005b600061021a82610623565b9050919050565b6001818154811061023157600080fd5b906000526020600020016000915090505481565b60008061029586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610717565b90506001805490508111156102ad5760018054905090505b600081116102ba57600080fd5b60006102f884600180856102ce9190611550565b815481106102df576102de611584565b5b90600052602060002001546108cc90919063ffffffff16565b905061035b61034c88888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508787610910565b826109c790919063ffffffff16565b9050610366816109ef565b92505050949350505050565b60008062015180670de0b6b3a76400008461038d91906115b3565b6103979190611624565b90506000670de0b6b3a7640000826103af9190611624565b905060008186901c90506000670de0b6b3a7640000836103cf91906115b3565b846103da9190611550565b90506000670de0b6b3a764000062010000836103f691906115b3565b6104009190611624565b9050600061040e8285610ab6565b905080965050505050505092915050565b610427610e18565b6104316000610e96565b565b61043b610e18565b8060019080519060200190610451929190610f8a565b507f73422d94aedd596c2d4d39f27a01033adc390a9054efaf259afefd95ef7331df816040516104819190611713565b60405180910390a150565b610494610e18565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e05ae75e8b926552cf6fcd744d19f422561e3ced1e426868730852702dbe4188160405161050491906114ad565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008061059261058d87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508686610910565b6109ef565b905080915050949350505050565b6105a8610e18565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060e906117b8565b60405180910390fd5b61062081610e96565b50565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061071057507fa34e3596c835a2bb0c76af3bc7896686f9d9abbb37ea27272246c0e9dab761c57f50e9a715a506f81ba3cfca69197fa8231c19274521697ca4e52316238d69d8a9187bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60008060008084519050600092505b808210156108c157600085838151811061074357610742611584565b5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156107925760018361078b91906117d8565b92506108ad565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156107d4576002836107cd91906117d8565b92506108ac565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156108165760038361080f91906117d8565b92506108ab565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156108575760048361085091906117d8565b92506108aa565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191610156108995760058361089291906117d8565b92506108a9565b6006836108a691906117d8565b92505b5b5b5b5b5082806108b99061180c565b935050610726565b829350505050919050565b60008083036108de576000905061090a565b600082846108ec91906115b3565b90508284826108fb9190611624565b1461090557600080fd5b809150505b92915050565b60006276a7008361092191906117d8565b92504283111561093457600090506109c0565b600083426109429190611550565b9050600061095b6a52b7d2dcc80cd2e400000083610372565b90507f000000000000000000000000000000000000000000000000000000000000000081106109b9577f0000000000000000000000000000000000000000000000000000000000000000816109b09190611550565b925050506109c0565b6000925050505b9392505050565b60008082846109d691906117d8565b9050838110156109e557600080fd5b8091505092915050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a83919061188a565b9050610aae81610aa06305f5e100866108cc90919063ffffffff16565b610f5a90919063ffffffff16565b915050919050565b6000806001841614610aec57670de0b6b3a7640000670de0ad151d09418083610adf91906115b3565b610ae99190611624565b91505b60006002841614610b2157670de0b6b3a7640000670de0a3769959680083610b1491906115b3565b610b1e9190611624565b91505b60006004841614610b5657670de0b6b3a7640000670de09039a5fa510083610b4991906115b3565b610b539190611624565b91505b60006008841614610b8b57670de0b6b3a7640000670de069c00f3e120083610b7e91906115b3565b610b889190611624565b91505b60006010841614610bc057670de0b6b3a7640000670de01cce21c9440083610bb391906115b3565b610bbd9190611624565b91505b60006020841614610bf557670de0b6b3a7640000670ddf82ef46ce100083610be891906115b3565b610bf29190611624565b91505b60006040841614610c2a57670de0b6b3a7640000670dde4f458f8e8d8083610c1d91906115b3565b610c279190611624565b91505b60006080841614610c5f57670de0b6b3a7640000670ddbe84213d5f08083610c5291906115b3565b610c5c9190611624565b91505b6000610100841614610c9557670de0b6b3a7640000670dd71b7aa6df5b8083610c8891906115b3565b610c929190611624565b91505b6000610200841614610ccb57670de0b6b3a7640000670dcd86e7f28cde0083610cbe91906115b3565b610cc89190611624565b91505b6000610400841614610d0157670de0b6b3a7640000670dba71a3084ad68083610cf491906115b3565b610cfe9190611624565b91505b6000610800841614610d3757670de0b6b3a7640000670d94961b13dbde8083610d2a91906115b3565b610d349190611624565b91505b6000611000841614610d6d57670de0b6b3a7640000670d4a171c35c9838083610d6091906115b3565b610d6a9190611624565b91505b6000612000841614610da357670de0b6b3a7640000670cb9da519ccfb70083610d9691906115b3565b610da09190611624565b91505b6000614000841614610dd957670de0b6b3a7640000670bab76d59c18d68083610dcc91906115b3565b610dd69190611624565b91505b6000618000841614610e0f57670de0b6b3a76400006709d025defee4df8083610e0291906115b3565b610e0c9190611624565b91505b81905092915050565b610e20610f82565b73ffffffffffffffffffffffffffffffffffffffff16610e3e61050f565b73ffffffffffffffffffffffffffffffffffffffff1614610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b90611903565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808211610f6857600080fd5b60008284610f769190611624565b90508091505092915050565b600033905090565b828054828255906000526020600020908101928215610fc6579160200282015b82811115610fc5578251825591602001919060010190610faa565b5b509050610fd39190610fd7565b5090565b5b80821115610ff0576000816000905550600101610fd8565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61103d81611008565b811461104857600080fd5b50565b60008135905061105a81611034565b92915050565b60006020828403121561107657611075610ffe565b5b60006110848482850161104b565b91505092915050565b60008115159050919050565b6110a28161108d565b82525050565b60006020820190506110bd6000830184611099565b92915050565b6000819050919050565b6110d6816110c3565b81146110e157600080fd5b50565b6000813590506110f3816110cd565b92915050565b60006020828403121561110f5761110e610ffe565b5b600061111d848285016110e4565b91505092915050565b61112f816110c3565b82525050565b600060208201905061114a6000830184611126565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261117557611174611150565b5b8235905067ffffffffffffffff81111561119257611191611155565b5b6020830191508360018202830111156111ae576111ad61115a565b5b9250929050565b600080600080606085870312156111cf576111ce610ffe565b5b600085013567ffffffffffffffff8111156111ed576111ec611003565b5b6111f98782880161115f565b9450945050602061120c878288016110e4565b925050604061121d878288016110e4565b91505092959194509250565b600080604083850312156112405761123f610ffe565b5b600061124e858286016110e4565b925050602061125f858286016110e4565b9150509250929050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6112b282611269565b810181811067ffffffffffffffff821117156112d1576112d061127a565b5b80604052505050565b60006112e4610ff4565b90506112f082826112a9565b919050565b600067ffffffffffffffff8211156113105761130f61127a565b5b602082029050602081019050919050565b600061133461132f846112f5565b6112da565b905080838252602082019050602084028301858111156113575761135661115a565b5b835b81811015611380578061136c88826110e4565b845260208401935050602081019050611359565b5050509392505050565b600082601f83011261139f5761139e611150565b5b81356113af848260208601611321565b91505092915050565b6000602082840312156113ce576113cd610ffe565b5b600082013567ffffffffffffffff8111156113ec576113eb611003565b5b6113f88482850161138a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061142c82611401565b9050919050565b600061143e82611421565b9050919050565b61144e81611433565b811461145957600080fd5b50565b60008135905061146b81611445565b92915050565b60006020828403121561148757611486610ffe565b5b60006114958482850161145c565b91505092915050565b6114a781611421565b82525050565b60006020820190506114c2600083018461149e565b92915050565b6114d181611421565b81146114dc57600080fd5b50565b6000813590506114ee816114c8565b92915050565b60006020828403121561150a57611509610ffe565b5b6000611518848285016114df565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061155b826110c3565b9150611566836110c3565b925082820390508181111561157e5761157d611521565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006115be826110c3565b91506115c9836110c3565b92508282026115d7816110c3565b915082820484148315176115ee576115ed611521565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061162f826110c3565b915061163a836110c3565b92508261164a576116496115f5565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61168a816110c3565b82525050565b600061169c8383611681565b60208301905092915050565b6000602082019050919050565b60006116c082611655565b6116ca8185611660565b93506116d583611671565b8060005b838110156117065781516116ed8882611690565b97506116f8836116a8565b9250506001810190506116d9565b5085935050505092915050565b6000602082019050818103600083015261172d81846116b5565b905092915050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006117a2602683611735565b91506117ad82611746565b604082019050919050565b600060208201905081810360008301526117d181611795565b9050919050565b60006117e3826110c3565b91506117ee836110c3565b925082820190508082111561180657611805611521565b5b92915050565b6000611817826110c3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361184957611848611521565b5b600182019050919050565b6000819050919050565b61186781611854565b811461187257600080fd5b50565b6000815190506118848161185e565b92915050565b6000602082840312156118a05761189f610ffe565b5b60006118ae84828501611875565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118ed602083611735565b91506118f8826118b7565b602082019050919050565b6000602082019050818103600083015261191c816118e0565b905091905056fea2646970667358221220fb8375aa9fba73105c15256c4e2e546e70150d1da79d1b4434eba7a7016fb8bc64736f6c63430008110033000000000000000000000000954bb5c104a77877a7313b6101ca2435a5ae4c240000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001275209157690000000000000000000000000000000000000000000000000000049d482455da00000000000000000000000000000000000000000000000000000024ea4122af