//
0x60a0604052600260ff1660809060ff168152506305f5e1006006553480156200002757600080fd5b506040518060400160405280600d81526020017f204368616d656c6520436f696e000000000000000000000000000000000000008152506040518060400160405280600381526020017f4348430000000000000000000000000000000000000000000000000000000000815250620000b4620000a86200011160201b60201c565b6200011960201b60201c565b8160049080519060200190620000cc92919062000348565b508060059080519060200190620000e592919062000348565b5050506200010b620000fc6200011160201b60201c565b600654620001dd60201b60201c565b620005a4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000250576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002479062000459565b60405180910390fd5b62000264600083836200034360201b60201c565b8060036000828254620002789190620004b4565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002d09190620004b4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000337919062000522565b60405180910390a35050565b505050565b82805462000356906200056e565b90600052602060002090601f0160209004810192826200037a5760008555620003c6565b82601f106200039557805160ff1916838001178555620003c6565b82800160010185558215620003c6579182015b82811115620003c5578251825591602001919060010190620003a8565b5b509050620003d59190620003d9565b5090565b5b80821115620003f4576000816000905550600101620003da565b5090565b600082825260208201905092915050565b7f58524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000441601f83620003f8565b91506200044e8262000409565b602082019050919050565b60006020820190508181036000830152620004748162000432565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004c1826200047b565b9150620004ce836200047b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000506576200050562000485565b5b828201905092915050565b6200051c816200047b565b82525050565b600060208201905062000539600083018462000511565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200058757607f821691505b602082108114156200059e576200059d6200053f565b5b50919050565b608051611b24620005c060003960006104e10152611b246000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb1461028a578063dd62ed3e146102ba578063f2fde38b146102ea578063f9d0831a14610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c578063a457c2d71461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610322565b60405161010f9190611198565b60405180910390f35b610132600480360381019061012d9190611253565b6103b4565b60405161013f91906112ae565b60405180910390f35b6101506103d2565b60405161015d91906112d8565b60405180910390f35b610180600480360381019061017b91906112f3565b6103dc565b60405161018d91906112ae565b60405180910390f35b61019e6104dd565b6040516101ab9190611362565b60405180910390f35b6101ce60048036038101906101c99190611253565b610505565b6040516101db91906112ae565b60405180910390f35b6101fe60048036038101906101f9919061137d565b6105b1565b60405161020b91906112d8565b60405180910390f35b61021c6105fa565b005b610226610682565b60405161023391906113b9565b60405180910390f35b6102446106ab565b6040516102519190611198565b60405180910390f35b610274600480360381019061026f9190611253565b61073d565b60405161028191906112ae565b60405180910390f35b6102a4600480360381019061029f9190611253565b610831565b6040516102b191906112ae565b60405180910390f35b6102d460048036038101906102cf91906113d4565b61084f565b6040516102e191906112d8565b60405180910390f35b61030460048036038101906102ff919061137d565b6108d6565b005b610320600480360381019061031b919061137d565b6109ce565b005b60606004805461033190611443565b80601f016020809104026020016040519081016040528092919081815260200182805461035d90611443565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b60006103c86103c1610be1565b8484610be9565b6001905092915050565b6000600354905090565b60006103e9848484610db4565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610434610be1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ab906114e7565b60405180910390fd5b6104d1856104c0610be1565b85846104cc9190611536565b610be9565b60019150509392505050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60006105a7610512610be1565b848460026000610520610be1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105a2919061156a565b610be9565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610602610be1565b73ffffffffffffffffffffffffffffffffffffffff16610620610682565b73ffffffffffffffffffffffffffffffffffffffff1614610676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066d9061160c565b60405180910390fd5b6106806000611036565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546106ba90611443565b80601f01602080910402602001604051908101604052809291908181526020018280546106e690611443565b80156107335780601f1061070857610100808354040283529160200191610733565b820191906000526020600020905b81548152906001019060200180831161071657829003601f168201915b5050505050905090565b6000806002600061074c610be1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108009061169e565b60405180910390fd5b610826610814610be1565b8585846108219190611536565b610be9565b600191505092915050565b600061084561083e610be1565b8484610db4565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108de610be1565b73ffffffffffffffffffffffffffffffffffffffff166108fc610682565b73ffffffffffffffffffffffffffffffffffffffff1614610952576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109499061160c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b990611730565b60405180910390fd5b6109cb81611036565b50565b6109d6610be1565b73ffffffffffffffffffffffffffffffffffffffff166109f4610682565b73ffffffffffffffffffffffffffffffffffffffff1614610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a419061160c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ad257610a87610682565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610acc573d6000803e3d6000fd5b50610bde565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b1291906113b9565b602060405180830381865afa158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b539190611765565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610b79610682565b836040518363ffffffff1660e01b8152600401610b97929190611792565b6020604051808303816000875af1158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906117e7565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090611886565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090611918565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610da791906112d8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b906119aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b90611a3c565b60405180910390fd5b610e9f8383836110fa565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90611ace565b60405180910390fd5b8181610f329190611536565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fc4919061156a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161102891906112d8565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561113957808201518184015260208101905061111e565b83811115611148576000848401525b50505050565b6000601f19601f8301169050919050565b600061116a826110ff565b611174818561110a565b935061118481856020860161111b565b61118d8161114e565b840191505092915050565b600060208201905081810360008301526111b2818461115f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111ea826111bf565b9050919050565b6111fa816111df565b811461120557600080fd5b50565b600081359050611217816111f1565b92915050565b6000819050919050565b6112308161121d565b811461123b57600080fd5b50565b60008135905061124d81611227565b92915050565b6000806040838503121561126a576112696111ba565b5b600061127885828601611208565b92505060206112898582860161123e565b9150509250929050565b60008115159050919050565b6112a881611293565b82525050565b60006020820190506112c3600083018461129f565b92915050565b6112d28161121d565b82525050565b60006020820190506112ed60008301846112c9565b92915050565b60008060006060848603121561130c5761130b6111ba565b5b600061131a86828701611208565b935050602061132b86828701611208565b925050604061133c8682870161123e565b9150509250925092565b600060ff82169050919050565b61135c81611346565b82525050565b60006020820190506113776000830184611353565b92915050565b600060208284031215611393576113926111ba565b5b60006113a184828501611208565b91505092915050565b6113b3816111df565b82525050565b60006020820190506113ce60008301846113aa565b92915050565b600080604083850312156113eb576113ea6111ba565b5b60006113f985828601611208565b925050602061140a85828601611208565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061145b57607f821691505b6020821081141561146f5761146e611414565b5b50919050565b7f58524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006114d160288361110a565b91506114dc82611475565b604082019050919050565b60006020820190508181036000830152611500816114c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115418261121d565b915061154c8361121d565b92508282101561155f5761155e611507565b5b828203905092915050565b60006115758261121d565b91506115808361121d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156115b5576115b4611507565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006115f660208361110a565b9150611601826115c0565b602082019050919050565b60006020820190508181036000830152611625816115e9565b9050919050565b7f58524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061168860258361110a565b91506116938261162c565b604082019050919050565b600060208201905081810360008301526116b78161167b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061171a60268361110a565b9150611725826116be565b604082019050919050565b600060208201905081810360008301526117498161170d565b9050919050565b60008151905061175f81611227565b92915050565b60006020828403121561177b5761177a6111ba565b5b600061178984828501611750565b91505092915050565b60006040820190506117a760008301856113aa565b6117b460208301846112c9565b9392505050565b6117c481611293565b81146117cf57600080fd5b50565b6000815190506117e1816117bb565b92915050565b6000602082840312156117fd576117fc6111ba565b5b600061180b848285016117d2565b91505092915050565b7f58524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061187060248361110a565b915061187b82611814565b604082019050919050565b6000602082019050818103600083015261189f81611863565b9050919050565b7f58524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061190260228361110a565b915061190d826118a6565b604082019050919050565b60006020820190508181036000830152611931816118f5565b9050919050565b7f58524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061199460258361110a565b915061199f82611938565b604082019050919050565b600060208201905081810360008301526119c381611987565b9050919050565b7f58524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611a2660238361110a565b9150611a31826119ca565b604082019050919050565b60006020820190508181036000830152611a5581611a19565b9050919050565b7f58524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611ab860268361110a565b9150611ac382611a5c565b604082019050919050565b60006020820190508181036000830152611ae781611aab565b905091905056fea2646970667358221220f97a7eebf842b1c29c8b6a9a9b4bcc3383dbefbc863caf9ed0e390360efb178464736f6c634300080a0033