0x610140604052348015610010575f5ffd5b506040518060400160405280600881526020017f4d756e6120436174000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4d756e61204361740000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d554e410000000000000000000000000000000000000000000000000000000081525081600390816100f991906106a6565b50806004908161010991906106a6565b5050505f828051906020012090505f828051906020012090505f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260e081815250508161010081815250504660a0818152505061017081848461020260201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508061012081815250505050505050506101d66101cb61023b60201b60201c565b61024260201b60201c565b6101fd33670de0b6b3a7640000633b9aca006101f291906107a2565b61030560201b60201c565b61095e565b5f838383463060405160200161021c959493929190610849565b6040516020818303038152906040528051906020012090509392505050565b5f33905090565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036a906108f4565b60405180910390fd5b6103845f838361045f60201b60201c565b8060025f8282546103959190610912565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104429190610945565b60405180910390a361045b5f838361046460201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104e457607f821691505b6020821081036104f7576104f66104a0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261051e565b610563868361051e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105a76105a261059d8461057b565b610584565b61057b565b9050919050565b5f819050919050565b6105c08361058d565b6105d46105cc826105ae565b84845461052a565b825550505050565b5f5f905090565b6105eb6105dc565b6105f68184846105b7565b505050565b5b818110156106195761060e5f826105e3565b6001810190506105fc565b5050565b601f82111561065e5761062f816104fd565b6106388461050f565b81016020851015610647578190505b61065b6106538561050f565b8301826105fb565b50505b505050565b5f82821c905092915050565b5f61067e5f1984600802610663565b1980831691505092915050565b5f610696838361066f565b9150826002028217905092915050565b6106af82610469565b67ffffffffffffffff8111156106c8576106c7610473565b5b6106d282546104cd565b6106dd82828561061d565b5f60209050601f83116001811461070e575f84156106fc578287015190505b610706858261068b565b86555061076d565b601f19841661071c866104fd565b5f5b828110156107435784890151825560018201915060208501945060208101905061071e565b86831015610760578489015161075c601f89168261066f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107ac8261057b565b91506107b78361057b565b92508282026107c58161057b565b915082820484148315176107dc576107db610775565b5b5092915050565b5f819050919050565b6107f5816107e3565b82525050565b6108048161057b565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108338261080a565b9050919050565b61084381610829565b82525050565b5f60a08201905061085c5f8301886107ec565b61086960208301876107ec565b61087660408301866107ec565b61088360608301856107fb565b610890608083018461083a565b9695505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6108de601f8361089a565b91506108e9826108aa565b602082019050919050565b5f6020820190508181035f83015261090b816108d2565b9050919050565b5f61091c8261057b565b91506109278361057b565b925082820190508082111561093f5761093e610775565b5b92915050565b5f6020820190506109585f8301846107fb565b92915050565b60805160a05160c05160e05161010051610120516121b86109a55f395f610e6601525f610ea801525f610e8701525f610dbc01525f610e1201525f610e3b01526121b85ff3fe608060405234801561000f575f5ffd5b5060043610610109575f3560e01c8063715018a6116100a0578063a457c2d71161006f578063a457c2d7146102bb578063a9059cbb146102eb578063d505accf1461031b578063dd62ed3e14610337578063f2fde38b1461036757610109565b8063715018a6146102455780637ecebe001461024f5780638da5cb5b1461027f57806395d89b411461029d57610109565b8063313ce567116100dc578063313ce567146101a95780633644e515146101c757806339509351146101e557806370a082311461021557610109565b806306fdde031461010d578063095ea7b31461012b57806318160ddd1461015b57806323b872dd14610179575b5f5ffd5b610115610383565b604051610122919061149a565b60405180910390f35b6101456004803603810190610140919061154b565b610413565b60405161015291906115a3565b60405180910390f35b610163610435565b60405161017091906115cb565b60405180910390f35b610193600480360381019061018e91906115e4565b61043e565b6040516101a091906115a3565b60405180910390f35b6101b161046c565b6040516101be919061164f565b60405180910390f35b6101cf610474565b6040516101dc9190611680565b60405180910390f35b6101ff60048036038101906101fa919061154b565b610482565b60405161020c91906115a3565b60405180910390f35b61022f600480360381019061022a9190611699565b6104b8565b60405161023c91906115cb565b60405180910390f35b61024d6104fd565b005b61026960048036038101906102649190611699565b610510565b60405161027691906115cb565b60405180910390f35b61028761055d565b60405161029491906116d3565b60405180910390f35b6102a5610585565b6040516102b2919061149a565b60405180910390f35b6102d560048036038101906102d0919061154b565b610615565b6040516102e291906115a3565b60405180910390f35b6103056004803603810190610300919061154b565b610693565b60405161031291906115a3565b60405180910390f35b61033560048036038101906103309190611740565b6106b5565b005b610351600480360381019061034c91906117dd565b6107f4565b60405161035e91906115cb565b60405180910390f35b610381600480360381019061037c9190611699565b610876565b005b60606003805461039290611848565b80601f01602080910402602001604051908101604052809291908181526020018280546103be90611848565b80156104095780601f106103e057610100808354040283529160200191610409565b820191905f5260205f20905b8154815290600101906020018083116103ec57829003601f168201915b5050505050905090565b5f5f61041d6108f8565b905061042a8185856108ff565b600191505092915050565b5f600254905090565b5f5f6104486108f8565b9050610455858285610ac2565b610460858585610b4d565b60019150509392505050565b5f6012905090565b5f61047d610db9565b905090565b5f5f61048c6108f8565b90506104ad81858561049e85896107f4565b6104a891906118a5565b6108ff565b600191505092915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610505610ed2565b61050e5f610f50565b565b5f61055660055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611013565b9050919050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461059490611848565b80601f01602080910402602001604051908101604052809291908181526020018280546105c090611848565b801561060b5780601f106105e25761010080835404028352916020019161060b565b820191905f5260205f20905b8154815290600101906020018083116105ee57829003601f168201915b5050505050905090565b5f5f61061f6108f8565b90505f61062c82866107f4565b905083811015610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066890611948565b60405180910390fd5b8360101b604080205561068782868684036108ff565b60019250505092915050565b5f5f61069d6108f8565b90506106aa818585610b4d565b600191505092915050565b834211156106f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ef906119b0565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886107268c61101f565b8960405160200161073c969594939291906119ce565b6040516020818303038152906040528051906020012090505f61075e8261107a565b90505f61076d82878787611093565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d490611a77565b60405180910390fd5b6107e88a8a8a6108ff565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61087e610ed2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e390611b05565b60405180910390fd5b6108f581610f50565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096490611b93565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d290611c21565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ab591906115cb565b60405180910390a3505050565b5f610acd84846107f4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b475781811015610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3090611c89565b60405180910390fd5b610b4684848484036108ff565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290611d17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090611da5565b60405180910390fd5b610c348383836110bc565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90611e33565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610da091906115cb565b60405180910390a3610db38484846110c1565b50505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610e3457507f000000000000000000000000000000000000000000000000000000000000000046145b15610e61577f00000000000000000000000000000000000000000000000000000000000000009050610ecf565b610ecc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006110c6565b90505b90565b610eda6108f8565b73ffffffffffffffffffffffffffffffffffffffff16610ef861055d565b73ffffffffffffffffffffffffffffffffffffffff1614610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590611e9b565b60405180910390fd5b565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f815f01549050919050565b5f5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905061106981611013565b9150611074816110ff565b50919050565b5f61108c611086610db9565b83611113565b9050919050565b5f5f5f6110a287878787611145565b915091506110af81611243565b8192505050949350505050565b505050565b505050565b5f83838346306040516020016110e0959493929190611eb9565b6040516020818303038152906040528051906020012090509392505050565b6001815f015f828254019250508190555050565b5f8282604051602001611127929190611f7e565b60405160208183030381529060405280519060200120905092915050565b5f5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0855f1c1115611181575f600393509350505061123a565b33915060016111945f8960ff16856113a8565b036111a1578590506111f0565b6001888888886040515f81526020016040526040516111c39493929190611fb4565b6020604051602081039080840390855afa1580156111e3573d5f5f3e3d5ffd5b5050506020604051035190505b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611231575f600193509350505061123a565b805f9350935050505b94509492505050565b5f600481111561125657611255611ff7565b5b81600481111561126957611268611ff7565b5b03156113a5576001600481111561128357611282611ff7565b5b81600481111561129657611295611ff7565b5b036112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd9061206e565b60405180910390fd5b600260048111156112ea576112e9611ff7565b5b8160048111156112fd576112fc611ff7565b5b0361133d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611334906120d6565b60405180910390fd5b6003600481111561135157611350611ff7565b5b81600481111561136457611363611ff7565b5b036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139b90612164565b60405180910390fd5b5b50565b5f5f6113b48585611403565b90507fffffffffffffffffffffffff8e3f6609828e0008e80fffa7fb6a9d61e93ecfc694506113e28561141b565b83036113f8576001816113f591906118a5565b90505b809150509392505050565b5f8183106114115781611413565b825b905092915050565b5f5f8219905080915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61146c8261142a565b6114768185611434565b9350611486818560208601611444565b61148f81611452565b840191505092915050565b5f6020820190508181035f8301526114b28184611462565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114e7826114be565b9050919050565b6114f7816114dd565b8114611501575f5ffd5b50565b5f81359050611512816114ee565b92915050565b5f819050919050565b61152a81611518565b8114611534575f5ffd5b50565b5f8135905061154581611521565b92915050565b5f5f60408385031215611561576115606114ba565b5b5f61156e85828601611504565b925050602061157f85828601611537565b9150509250929050565b5f8115159050919050565b61159d81611589565b82525050565b5f6020820190506115b65f830184611594565b92915050565b6115c581611518565b82525050565b5f6020820190506115de5f8301846115bc565b92915050565b5f5f5f606084860312156115fb576115fa6114ba565b5b5f61160886828701611504565b935050602061161986828701611504565b925050604061162a86828701611537565b9150509250925092565b5f60ff82169050919050565b61164981611634565b82525050565b5f6020820190506116625f830184611640565b92915050565b5f819050919050565b61167a81611668565b82525050565b5f6020820190506116935f830184611671565b92915050565b5f602082840312156116ae576116ad6114ba565b5b5f6116bb84828501611504565b91505092915050565b6116cd816114dd565b82525050565b5f6020820190506116e65f8301846116c4565b92915050565b6116f581611634565b81146116ff575f5ffd5b50565b5f81359050611710816116ec565b92915050565b61171f81611668565b8114611729575f5ffd5b50565b5f8135905061173a81611716565b92915050565b5f5f5f5f5f5f5f60e0888a03121561175b5761175a6114ba565b5b5f6117688a828b01611504565b97505060206117798a828b01611504565b965050604061178a8a828b01611537565b955050606061179b8a828b01611537565b94505060806117ac8a828b01611702565b93505060a06117bd8a828b0161172c565b92505060c06117ce8a828b0161172c565b91505092959891949750929550565b5f5f604083850312156117f3576117f26114ba565b5b5f61180085828601611504565b925050602061181185828601611504565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061185f57607f821691505b6020821081036118725761187161181b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6118af82611518565b91506118ba83611518565b92508282019050808211156118d2576118d1611878565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611932602583611434565b915061193d826118d8565b604082019050919050565b5f6020820190508181035f83015261195f81611926565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e650000005f82015250565b5f61199a601d83611434565b91506119a582611966565b602082019050919050565b5f6020820190508181035f8301526119c78161198e565b9050919050565b5f60c0820190506119e15f830189611671565b6119ee60208301886116c4565b6119fb60408301876116c4565b611a0860608301866115bc565b611a1560808301856115bc565b611a2260a08301846115bc565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e617475726500005f82015250565b5f611a61601e83611434565b9150611a6c82611a2d565b602082019050919050565b5f6020820190508181035f830152611a8e81611a55565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611aef602683611434565b9150611afa82611a95565b604082019050919050565b5f6020820190508181035f830152611b1c81611ae3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611b7d602483611434565b9150611b8882611b23565b604082019050919050565b5f6020820190508181035f830152611baa81611b71565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c0b602283611434565b9150611c1682611bb1565b604082019050919050565b5f6020820190508181035f830152611c3881611bff565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611c73601d83611434565b9150611c7e82611c3f565b602082019050919050565b5f6020820190508181035f830152611ca081611c67565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611d01602583611434565b9150611d0c82611ca7565b604082019050919050565b5f6020820190508181035f830152611d2e81611cf5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611d8f602383611434565b9150611d9a82611d35565b604082019050919050565b5f6020820190508181035f830152611dbc81611d83565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611e1d602683611434565b9150611e2882611dc3565b604082019050919050565b5f6020820190508181035f830152611e4a81611e11565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611e85602083611434565b9150611e9082611e51565b602082019050919050565b5f6020820190508181035f830152611eb281611e79565b9050919050565b5f60a082019050611ecc5f830188611671565b611ed96020830187611671565b611ee66040830186611671565b611ef360608301856115bc565b611f0060808301846116c4565b9695505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f611f48600283611f0a565b9150611f5382611f14565b600282019050919050565b5f819050919050565b611f78611f7382611668565b611f5e565b82525050565b5f611f8882611f3c565b9150611f948285611f67565b602082019150611fa48284611f67565b6020820191508190509392505050565b5f608082019050611fc75f830187611671565b611fd46020830186611640565b611fe16040830185611671565b611fee6060830184611671565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f45434453413a20696e76616c6964207369676e617475726500000000000000005f82015250565b5f612058601883611434565b915061206382612024565b602082019050919050565b5f6020820190508181035f8301526120858161204c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e677468005f82015250565b5f6120c0601f83611434565b91506120cb8261208c565b602082019050919050565b5f6020820190508181035f8301526120ed816120b4565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f61214e602283611434565b9150612159826120f4565b604082019050919050565b5f6020820190508181035f83015261217b81612142565b905091905056fea26469706673582212208adea163e2e61bd740d64c580de100e88796b6708846feaccc7cebdab835ae6c64736f6c634300081b0033