60806040526200004f60646200004060016009600a62000020919062000644565b633b9aca0062000031919062000694565b6200034d60201b90919060201c565b620003cd60201b90919060201c565b6007553480156200005e575f80fd5b506040516200277938038062002779833981810160405281019062000084919062000740565b5f620000956200041e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a62000141919062000644565b633b9aca0062000152919062000694565b60015f620001656200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620001b26200041e60201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000201919062000644565b836200020e919062000694565b60068190555081600560166101000a81548160ff021916908360ff16021790555080600560176101000a81548160ff021916908360ff160217905550600160035f6200025f6200042560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620002be6200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200031c919062000644565b633b9aca006200032d919062000694565b6040516200033c9190620007aa565b60405180910390a350505062000973565b5f8083036200035f575f9050620003c7565b5f82846200036e919062000694565b90508284826200037f9190620007f2565b14620003c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003b990620008ad565b60405180910390fd5b809150505b92915050565b5f6200041683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200044c60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000495576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200048c919062000951565b60405180910390fd5b505f8385620004a59190620007f2565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200053c57808604811115620005145762000513620004b2565b5b6001851615620005245780820291505b80810290506200053485620004df565b9450620004f4565b94509492505050565b5f8262000556576001905062000628565b8162000565575f905062000628565b81600181146200057e57600281146200058957620005bf565b600191505062000628565b60ff8411156200059e576200059d620004b2565b5b8360020a915084821115620005b857620005b7620004b2565b5b5062000628565b5060208310610133831016604e8410600b8410161715620005f95782820a905083811115620005f357620005f2620004b2565b5b62000628565b620006088484846001620004eb565b92509050818404811115620006225762000621620004b2565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000650826200062f565b91506200065d8362000638565b92506200068c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000545565b905092915050565b5f620006a0826200062f565b9150620006ad836200062f565b9250828202620006bd816200062f565b91508282048414831517620006d757620006d6620004b2565b5b5092915050565b5f80fd5b620006ed816200062f565b8114620006f8575f80fd5b50565b5f815190506200070b81620006e2565b92915050565b6200071c8162000638565b811462000727575f80fd5b50565b5f815190506200073a8162000711565b92915050565b5f805f606084860312156200075a5762000759620006de565b5b5f6200076986828701620006fb565b93505060206200077c868287016200072a565b92505060406200078f868287016200072a565b9150509250925092565b620007a4816200062f565b82525050565b5f602082019050620007bf5f83018462000799565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007fe826200062f565b91506200080b836200062f565b9250826200081e576200081d620007c5565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200089560218362000829565b9150620008a28262000839565b604082019050919050565b5f6020820190508181035f830152620008c68162000887565b9050919050565b5f81519050919050565b5f5b83811015620008f6578082015181840152602081019050620008d9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200091d82620008cd565b62000929818562000829565b93506200093b818560208601620008d7565b620009468162000901565b840191505092915050565b5f6020820190508181035f8301526200096b818462000911565b905092915050565b611df880620009815f395ff3fe6080604052600436106100aa575f3560e01c8063715018a611610063578063715018a6146101e75780638da5cb5b146101fd57806395d89b4114610227578063a9059cbb14610251578063cffc644e1461028d578063dd62ed3e146102b5576100b1565b806306fdde03146100b5578063095ea7b3146100df57806318160ddd1461011b57806323b872dd14610145578063313ce5671461018157806370a08231146101ab576100b1565b366100b157005b5f80fd5b3480156100c0575f80fd5b506100c96102f1565b6040516100d69190611495565b60405180910390f35b3480156100ea575f80fd5b5061010560048036038101906101009190611546565b610311565b604051610112919061159e565b60405180910390f35b348015610126575f80fd5b5061012f61032e565b60405161013c91906115c6565b60405180910390f35b348015610150575f80fd5b5061016b600480360381019061016691906115df565b610351565b604051610178919061159e565b60405180910390f35b34801561018c575f80fd5b50610195610425565b6040516101a2919061164a565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc9190611663565b61042d565b6040516101de91906115c6565b60405180910390f35b3480156101f2575f80fd5b506101fb610473565b005b348015610208575f80fd5b506102116105c1565b60405161021e919061169d565b60405180910390f35b348015610232575f80fd5b5061023b6105e8565b6040516102489190611495565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190611546565b610625565b604051610284919061159e565b60405180910390f35b348015610298575f80fd5b506102b360048036038101906102ae91906116e0565b610642565b005b3480156102c0575f80fd5b506102db60048036038101906102d6919061171e565b610734565b6040516102e891906115c6565b60405180910390f35b6060604051806060016040528060228152602001611da160229139905090565b5f61032461031d6107b6565b84846107bd565b6001905092915050565b5f6009600a61033d91906118b8565b633b9aca0061034c9190611902565b905090565b5f61035d848484610980565b61041a846103696107b6565b61041585604051806060016040528060288152602001611d796028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6103cc6107b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e3d9092919063ffffffff16565b6107bd565b600190509392505050565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61047b6107b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fe9061198d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5452554d50000000000000000000000000000000000000000000000000000000815250905090565b5f6106386106316107b6565b8484610980565b6001905092915050565b61064a6107b6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cd9061198d565b60405180910390fd5b8160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560146101000a81548160ff0219169083151502179055505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290611a1b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089090611aa9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161097391906115c6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156109e857505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156109f357505f81115b610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2990611b11565b60405180910390fd5b610a3a6105c1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610aa85750610a786105c1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610afd57600560149054906101000a900460ff16610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390611b79565b60405180910390fd5b5b5f80610b098585610e9f565b90508015610c3d5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610bc657610bbf6064610bb16001600560159054906101000a900460ff1660ff161015610b8e575f610b9f565b600560179054906101000a900460ff165b60ff1686610f4690919063ffffffff16565b610fbd90919063ffffffff16565b9150610c23565b610c206064610c126001600560159054906101000a900460ff1660ff161015610bef575f610c00565b600560169054906101000a900460ff165b60ff1686610f4690919063ffffffff16565b610fbd90919063ffffffff16565b91505b610c36828461100690919063ffffffff16565b9250610d80565b610c456105c1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610ccc575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015610d1e575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015610d3c57506001600560159054906101000a900460ff1660ff16105b15610d7f5760065491506005601581819054906101000a900460ff1680929190610d6590611b97565b91906101000a81548160ff021916908360ff160217905550505b5b5f821115610e1a57610dd88260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461104f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610e2b610e263061042d565b6110ac565b610e3685858561121e565b5050505050565b5f838311158290610e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7b9190611495565b60405180910390fd5b505f8385610e929190611bbf565b9050809150509392505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f3e575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905092915050565b5f808303610f56575f9050610fb7565b5f8284610f639190611902565b9050828482610f729190611c1f565b14610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990611cbf565b60405180910390fd5b809150505b92915050565b5f610ffe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113aa565b905092915050565b5f61104783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e3d565b905092915050565b5f80828461105d9190611cdd565b9050838110156110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990611d5a565b60405180910390fd5b8091505092915050565b60075481111561121b576111068160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461100690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111b88160015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461104f90919063ffffffff16565b60015f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b50565b61126e8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461100690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112ff8160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461104f90919063ffffffff16565b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161139d91906115c6565b60405180910390a3505050565b5f80831182906113f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e79190611495565b60405180910390fd5b505f83856113fe9190611c1f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611442578082015181840152602081019050611427565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6114678261140b565b6114718185611415565b9350611481818560208601611425565b61148a8161144d565b840191505092915050565b5f6020820190508181035f8301526114ad818461145d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114e2826114b9565b9050919050565b6114f2816114d8565b81146114fc575f80fd5b50565b5f8135905061150d816114e9565b92915050565b5f819050919050565b61152581611513565b811461152f575f80fd5b50565b5f813590506115408161151c565b92915050565b5f806040838503121561155c5761155b6114b5565b5b5f611569858286016114ff565b925050602061157a85828601611532565b9150509250929050565b5f8115159050919050565b61159881611584565b82525050565b5f6020820190506115b15f83018461158f565b92915050565b6115c081611513565b82525050565b5f6020820190506115d95f8301846115b7565b92915050565b5f805f606084860312156115f6576115f56114b5565b5b5f611603868287016114ff565b9350506020611614868287016114ff565b925050604061162586828701611532565b9150509250925092565b5f60ff82169050919050565b6116448161162f565b82525050565b5f60208201905061165d5f83018461163b565b92915050565b5f60208284031215611678576116776114b5565b5b5f611685848285016114ff565b91505092915050565b611697816114d8565b82525050565b5f6020820190506116b05f83018461168e565b92915050565b6116bf81611584565b81146116c9575f80fd5b50565b5f813590506116da816116b6565b92915050565b5f80604083850312156116f6576116f56114b5565b5b5f611703858286016114ff565b9250506020611714858286016116cc565b9150509250929050565b5f8060408385031215611734576117336114b5565b5b5f611741858286016114ff565b9250506020611752858286016114ff565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156117de578086048111156117ba576117b961175c565b5b60018516156117c95780820291505b80810290506117d785611789565b945061179e565b94509492505050565b5f826117f657600190506118b1565b81611803575f90506118b1565b8160018114611819576002811461182357611852565b60019150506118b1565b60ff8411156118355761183461175c565b5b8360020a91508482111561184c5761184b61175c565b5b506118b1565b5060208310610133831016604e8410600b84101617156118875782820a9050838111156118825761188161175c565b5b6118b1565b6118948484846001611795565b925090508184048111156118ab576118aa61175c565b5b81810290505b9392505050565b5f6118c282611513565b91506118cd8361162f565b92506118fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846117e7565b905092915050565b5f61190c82611513565b915061191783611513565b925082820261192581611513565b9150828204841483151761193c5761193b61175c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611977602083611415565b915061198282611943565b602082019050919050565b5f6020820190508181035f8301526119a48161196b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611a05602483611415565b9150611a10826119ab565b604082019050919050565b5f6020820190508181035f830152611a32816119f9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611a93602283611415565b9150611a9e82611a39565b604082019050919050565b5f6020820190508181035f830152611ac081611a87565b9050919050565b7f5a65726f2061646472657373206f72207a65726f20616d6f756e742e000000005f82015250565b5f611afb601c83611415565b9150611b0682611ac7565b602082019050919050565b5f6020820190508181035f830152611b2881611aef565b9050919050565b7f53776170206973206e6f7420656e61626c6564207965742e00000000000000005f82015250565b5f611b63601883611415565b9150611b6e82611b2f565b602082019050919050565b5f6020820190508181035f830152611b9081611b57565b9050919050565b5f611ba18261162f565b915060ff8203611bb457611bb361175c565b5b600182019050919050565b5f611bc982611513565b9150611bd483611513565b9250828203905081811115611bec57611beb61175c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c2982611513565b9150611c3483611513565b925082611c4457611c43611bf2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ca9602183611415565b9150611cb482611c4f565b604082019050919050565b5f6020820190508181035f830152611cd681611c9d565b9050919050565b5f611ce782611513565b9150611cf283611513565b9250828201905080821115611d0a57611d0961175c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f611d44601b83611415565b9150611d4f82611d10565b602082019050919050565b5f6020820190508181035f830152611d7181611d38565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654861727279506f747465725472756d70486f6d657253696d70736f6e373737496e75a2646970667358221220b57d41f5edc9a6736279f2f6bceb411796fc037c765c95ad3833a8c9d1ef082d64736f6c634300081400330000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064