60806040526040518060400160405280600e81526020017f426c7565204d616e2047726f75700000000000000000000000000000000000008152505f908161004791906104e3565b506040518060400160405280600781526020017f424c55454d454e000000000000000000000000000000000000000000000000008152506001908161008c91906104e3565b506305f5e100600255600260035f6101000a81548160ff021916908360ff1602179055503480156100bb575f80fd5b5060405161378d38038061378d83398181016040528101906100dd9190610610565b3360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025460045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506040518060200160405280734a30234149b1d7783f7550cc4585abcdb95625e973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600a906001610200929190610207565b505061063b565b828054828255905f5260205f2090810192821561027d579160200282015b8281111561027c578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190610225565b5b50905061028a919061028e565b5090565b5b808211156102a5575f815f90555060010161028f565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032457607f821691505b602082108103610337576103366102e0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261035e565b6103a3868361035e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103e76103e26103dd846103bb565b6103c4565b6103bb565b9050919050565b5f819050919050565b610400836103cd565b61041461040c826103ee565b84845461036a565b825550505050565b5f90565b61042861041c565b6104338184846103f7565b505050565b5b818110156104565761044b5f82610420565b600181019050610439565b5050565b601f82111561049b5761046c8161033d565b6104758461034f565b81016020851015610484578190505b6104986104908561034f565b830182610438565b50505b505050565b5f82821c905092915050565b5f6104bb5f19846008026104a0565b1980831691505092915050565b5f6104d383836104ac565b9150826002028217905092915050565b6104ec826102a9565b67ffffffffffffffff811115610505576105046102b3565b5b61050f825461030d565b61051a82828561045a565b5f60209050601f83116001811461054b575f8415610539578287015190505b61054385826104c8565b8655506105aa565b601f1984166105598661033d565b5f5b828110156105805784890151825560018201915060208501945060208101905061055b565b8683101561059d5784890151610599601f8916826104ac565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105df826105b6565b9050919050565b6105ef816105d5565b81146105f9575f80fd5b50565b5f8151905061060a816105e6565b92915050565b5f60208284031215610625576106246105b2565b5b5f610632848285016105fc565b91505092915050565b613145806106485f395ff3fe608060405260043610610129575f3560e01c80637cdc65f2116100aa578063a9059cbb1161006e578063a9059cbb146103a1578063dd62ed3e146103dd578063e4849b3214610419578063e7a919f914610441578063f2fde38b14610469578063fb10464d1461049157610129565b80637cdc65f2146102f15780638ba4cc3c1461031b5780638da5cb5b1461034357806395d89b411461036d578063a6f2ae3a1461039757610129565b8063313ce567116100f1578063313ce56714610223578063470624021461024d5780636db794371461027757806370a082311461029f578063715018a6146102db57610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd5780632b14ca56146101f9575b5f80fd5b348015610138575f80fd5b506101416104cd565b60405161014e91906126b5565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612766565b610558565b60405161018a91906127be565b60405180910390f35b34801561019e575f80fd5b506101a7610645565b6040516101b491906127e6565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de91906127ff565b61064b565b6040516101f091906127be565b60405180910390f35b348015610204575f80fd5b5061020d610e00565b60405161021a91906127e6565b60405180910390f35b34801561022e575f80fd5b50610237610e06565b604051610244919061286a565b60405180910390f35b348015610258575f80fd5b50610261610e18565b60405161026e91906127e6565b60405180910390f35b348015610282575f80fd5b5061029d60048036038101906102989190612883565b610e1e565b005b3480156102aa575f80fd5b506102c560048036038101906102c091906128c1565b610fd7565b6040516102d291906127e6565b60405180910390f35b3480156102e6575f80fd5b506102ef610fec565b005b3480156102fc575f80fd5b50610305611138565b60405161031291906128fb565b60405180910390f35b348015610326575f80fd5b50610341600480360381019061033c9190612766565b61115d565b005b34801561034e575f80fd5b506103576113c7565b60405161036491906128fb565b60405180910390f35b348015610378575f80fd5b506103816113ec565b60405161038e91906126b5565b60405180910390f35b61039f611478565b005b3480156103ac575f80fd5b506103c760048036038101906103c29190612766565b6118c5565b6040516103d491906127be565b60405180910390f35b3480156103e8575f80fd5b5061040360048036038101906103fe9190612914565b611ad7565b60405161041091906127e6565b60405180910390f35b348015610424575f80fd5b5061043f600480360381019061043a9190612952565b611af7565b005b34801561044c575f80fd5b5061046760048036038101906104629190612883565b6120a8565b005b348015610474575f80fd5b5061048f600480360381019061048a91906128c1565b612261565b005b34801561049c575f80fd5b506104b760048036038101906104b29190612952565b6123e5565b6040516104c491906128fb565b60405180910390f35b5f80546104d9906129aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610505906129aa565b80156105505780601f1061052757610100808354040283529160200191610550565b820191905f5260205f20905b81548152906001019060200180831161053357829003601f168201915b505050505081565b5f8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161063391906127e6565b60405180910390a36001905092915050565b60025481565b5f8160045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c390612a24565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077e90612a8c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec90612af4565b60405180910390fd5b5f808390505f600954118015610858575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561086a575061086886612420565b155b156108af576108976064610889600954876124c290919063ffffffff16565b61253990919063ffffffff16565b91506108ac828561259090919063ffffffff16565b90505b6108ff8460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461259090919063ffffffff16565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506109908160045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a2e91906127e6565b60405180910390a35f821115610b3557610a8e8260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b2c91906127e6565b60405180910390a35b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610c0957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414155b15610df357610c998460055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461259090919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051610dea91906127e6565b60405180910390a35b6001925050509392505050565b60095481565b60035f9054906101000a900460ff1681565b60085481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ec5575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb90612b5c565b60405180910390fd5b6064821115610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90612bc4565b60405180910390fd5b6064811115610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390612bc4565b60405180910390fd5b81600881905550806009819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610fcb929190612be2565b60405180910390a15050565b6004602052805f5260405f205f915090505481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612c53565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611204575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a90612b5c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890612cbb565b60405180910390fd5b5f81116112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea90612d23565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461133f9190612d6e565b925050819055508060025f8282546113579190612d6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113bb91906127e6565b60405180910390a35050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600180546113f9906129aa565b80601f0160208091040260200160405190810160405280929190818152602001828054611425906129aa565b80156114705780601f1061144757610100808354040283529160200191611470565b820191905f5260205f20905b81548152906001019060200180831161145357829003601f168201915b505050505081565b5f34116114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190612deb565b60405180910390fd5b5f3490505f6008541115611768575f6114f160646114e3600854856124c290919063ffffffff16565b61253990919063ffffffff16565b90505f611507828461259090919063ffffffff16565b905061157a8160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161165a91906127e6565b60405180910390a35f821115611761576116ba8260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175891906127e6565b60405180910390a35b50506118c2565b6117d98160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118b991906127e6565b60405180910390a35b50565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561190f575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611946575f80fd5b6119968260045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461259090919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a278260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ac591906127e6565b60405180910390a36001905092915050565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6e90612deb565b60405180910390fd5b5f600954118015611bd5575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611be75750611be533612420565b155b15611f1d575f611c156064611c07600954856124c290919063ffffffff16565b61253990919063ffffffff16565b90505f611c2b828461259090919063ffffffff16565b9050611c7d8360045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461259090919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d2f8160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0f91906127e6565b60405180910390a35f821115611f1657611e6f8260045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f0d91906127e6565b60405180910390a35b50506120a5565b611f6d8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461259090919063ffffffff16565b60045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ffe8160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125e890919063ffffffff16565b60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209c91906127e6565b60405180910390a35b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061214f575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61218e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218590612b5c565b60405180910390fd5b60648211156121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990612e53565b60405180910390fd5b6064811115612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90612e53565b60405180910390fd5b81600881905550806009819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051612255929190612be2565b60405180910390a15050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e790612c53565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612327575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a81815481106123f4575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f90505b600a805490508110156124b857600a818154811061244757612446612e71565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124ab5760019150506124bd565b8080600101915050612426565b505f90505b919050565b5f8083036124d2575f9050612533565b5f82846124df9190612e9e565b90508284826124ee9190612f0c565b1461252e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252590612f86565b60405180910390fd5b809150505b92915050565b5f80821161257c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257390612fee565b60405180910390fd5b81836125889190612f0c565b905092915050565b5f828211156125d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cb90613056565b60405180910390fd5b81836125e09190613074565b905092915050565b5f8082846125f69190612d6e565b90508381101561263b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612632906130f1565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61268782612645565b612691818561264f565b93506126a181856020860161265f565b6126aa8161266d565b840191505092915050565b5f6020820190508181035f8301526126cd818461267d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612702826126d9565b9050919050565b612712816126f8565b811461271c575f80fd5b50565b5f8135905061272d81612709565b92915050565b5f819050919050565b61274581612733565b811461274f575f80fd5b50565b5f813590506127608161273c565b92915050565b5f806040838503121561277c5761277b6126d5565b5b5f6127898582860161271f565b925050602061279a85828601612752565b9150509250929050565b5f8115159050919050565b6127b8816127a4565b82525050565b5f6020820190506127d15f8301846127af565b92915050565b6127e081612733565b82525050565b5f6020820190506127f95f8301846127d7565b92915050565b5f805f60608486031215612816576128156126d5565b5b5f6128238682870161271f565b93505060206128348682870161271f565b925050604061284586828701612752565b9150509250925092565b5f60ff82169050919050565b6128648161284f565b82525050565b5f60208201905061287d5f83018461285b565b92915050565b5f8060408385031215612899576128986126d5565b5b5f6128a685828601612752565b92505060206128b785828601612752565b9150509250929050565b5f602082840312156128d6576128d56126d5565b5b5f6128e38482850161271f565b91505092915050565b6128f5816126f8565b82525050565b5f60208201905061290e5f8301846128ec565b92915050565b5f806040838503121561292a576129296126d5565b5b5f6129378582860161271f565b92505060206129488582860161271f565b9150509250929050565b5f60208284031215612967576129666126d5565b5b5f61297484828501612752565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806129c157607f821691505b6020821081036129d4576129d361297d565b5b50919050565b7f4e6f7420656e6f7567687420546f6b656e7300000000000000000000000000005f82015250565b5f612a0e60128361264f565b9150612a19826129da565b602082019050919050565b5f6020820190508181035f830152612a3b81612a02565b9050919050565b7f416c6c6f77616e6365206572726f7200000000000000000000000000000000005f82015250565b5f612a76600f8361264f565b9150612a8182612a42565b602082019050919050565b5f6020820190508181035f830152612aa381612a6a565b9050919050565b7f4d757374206e6f742062652030206164647265737300000000000000000000005f82015250565b5f612ade60158361264f565b9150612ae982612aaa565b602082019050919050565b5f6020820190508181035f830152612b0b81612ad2565b9050919050565b7f596f7520617265206e6f7420617574686f7269736564000000000000000000005f82015250565b5f612b4660168361264f565b9150612b5182612b12565b602082019050919050565b5f6020820190508181035f830152612b7381612b3a565b9050919050565b7f466565206d757374206265206c6f776572207468616e205800000000000000005f82015250565b5f612bae60188361264f565b9150612bb982612b7a565b602082019050919050565b5f6020820190508181035f830152612bdb81612ba2565b9050919050565b5f604082019050612bf55f8301856127d7565b612c0260208301846127d7565b9392505050565b7f4e6f7420746865204f776e6572000000000000000000000000000000000000005f82015250565b5f612c3d600d8361264f565b9150612c4882612c09565b602082019050919050565b5f6020820190508181035f830152612c6a81612c31565b9050919050565b7f43616e6e6f742061697264726f7020746f2030206164647265737300000000005f82015250565b5f612ca5601b8361264f565b9150612cb082612c71565b602082019050919050565b5f6020820190508181035f830152612cd281612c99565b9050919050565b7f4e6f7420656e6f75676820746f6b656e7320696e20796f75722077616c6c65745f82015250565b5f612d0d60208361264f565b9150612d1882612cd9565b602082019050919050565b5f6020820190508181035f830152612d3a81612d01565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d7882612733565b9150612d8383612733565b9250828201905080821115612d9b57612d9a612d41565b5b92915050565b7f4661696c656400000000000000000000000000000000000000000000000000005f82015250565b5f612dd560068361264f565b9150612de082612da1565b602082019050919050565b5f6020820190508181035f830152612e0281612dc9565b9050919050565b7f4d757374207365742046656500000000000000000000000000000000000000005f82015250565b5f612e3d600c8361264f565b9150612e4882612e09565b602082019050919050565b5f6020820190508181035f830152612e6a81612e31565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612ea882612733565b9150612eb383612733565b9250828202612ec181612733565b91508282048414831517612ed857612ed7612d41565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f1682612733565b9150612f2183612733565b925082612f3157612f30612edf565b5b828204905092915050565b7f536166656d6174683a204572726f722d310000000000000000000000000000005f82015250565b5f612f7060118361264f565b9150612f7b82612f3c565b602082019050919050565b5f6020820190508181035f830152612f9d81612f64565b9050919050565b7f536166656d6174683a204572726f722d320000000000000000000000000000005f82015250565b5f612fd860118361264f565b9150612fe382612fa4565b602082019050919050565b5f6020820190508181035f83015261300581612fcc565b9050919050565b7f536166656d6174683a204f766572666c6f7700000000000000000000000000005f82015250565b5f61304060128361264f565b915061304b8261300c565b602082019050919050565b5f6020820190508181035f83015261306d81613034565b9050919050565b5f61307e82612733565b915061308983612733565b92508282039050818111156130a1576130a0612d41565b5b92915050565b7f536166656d6174683a20556e646572666c6f77000000000000000000000000005f82015250565b5f6130db60138361264f565b91506130e6826130a7565b602082019050919050565b5f6020820190508181035f830152613108816130cf565b905091905056fea264697066735822122012ead7e46630118c3601d90cf728536b4ff5800458e94560ba81166340a8eef864736f6c63430008190033000000000000000000000000784562ebeeeb1dd90fc95b1e5e9c05602ef6827c