608060405260008060146101000a81548160ff021916908315150217905550600560ff16600801600a0a60320260015573ccca1b1d20a926fdbd2509766c7323be32340477600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561009057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015460026000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001546005819055506000600681905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040518082815260200191505060405180910390a3612211806101e36000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461010c57806306fdde031461013b578063095ea7b3146101cb57806318160ddd1461023057806323b872dd1461025b578063313ce567146102e057806342966c681461031157806345f32b6d146103565780634fb2e45d1461038157806362a5af3b146103dc5780636a28f0001461040b57806370a082311461043a5780638ae2344b146104915780638b038f7f146104ec5780638da5cb5b1461051757806395d89b411461056e578063a05fccef146105fe578063a9059cbb146106bb578063dd62ed3e14610720575b600080fd5b34801561011857600080fd5b50610121610797565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b506101506107aa565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610190578082015181840152602081019050610175565b50505050905090810190601f1680156101bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d757600080fd5b50610216600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107e3565b604051808215151515815260200191505060405180910390f35b34801561023c57600080fd5b506102456109a9565b6040518082815260200191505060405180910390f35b34801561026757600080fd5b506102c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109af565b604051808215151515815260200191505060405180910390f35b3480156102ec57600080fd5b506102f5610e04565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031d57600080fd5b5061033c60048036038101908080359060200190929190505050610e09565b604051808215151515815260200191505060405180910390f35b34801561036257600080fd5b5061036b611024565b6040518082815260200191505060405180910390f35b34801561038d57600080fd5b506103c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102a565b604051808215151515815260200191505060405180910390f35b3480156103e857600080fd5b506103f1611182565b604051808215151515815260200191505060405180910390f35b34801561041757600080fd5b50610420611201565b604051808215151515815260200191505060405180910390f35b34801561044657600080fd5b5061047b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061127f565b6040518082815260200191505060405180910390f35b34801561049d57600080fd5b506104d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c8565b604051808215151515815260200191505060405180910390f35b3480156104f857600080fd5b506105016115d7565b6040518082815260200191505060405180910390f35b34801561052357600080fd5b5061052c6115dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057a57600080fd5b50610583611602565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c35780820151818401526020810190506105a8565b50505050905090810190601f1680156105f05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561060a57600080fd5b506106a5600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061163b565b6040518082815260200191505060405180910390f35b3480156106c757600080fd5b50610706600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cc8565b604051808215151515815260200191505060405180910390f35b34801561072c57600080fd5b50610781600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612183565b6040518082815260200191505060405180910390f35b600060149054906101000a900460ff1681565b6040805190810160405280600a81526020017f51494e4220546f6b656e0000000000000000000000000000000000000000000081525081565b60008060149054906101000a900460ff1615151561080057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff1660001415151561082357fe5b60008214806108ae57506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156108b957600080fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60015481565b60008060149054906101000a900460ff161515156109cc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166000141515156109ef57fe5b8282600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151515610a8057600080fd5b83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610ace57600080fd5b83600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610b5957600080fd5b610bab84600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c4084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c990919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d1284600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c990919063ffffffff16565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b600581565b60008060149054906101000a900460ff16151515610e2657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600014151515610e4957fe5b8180600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610e9857600080fd5b610eea83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f6983600260008073ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a890919063ffffffff16565b600260008073ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fab836001546121c990919063ffffffff16565b600181905550610fc6836006546121c990919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a26001915050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561108757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561117957816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc53ee02035d465398c0648e0bca1462281006a266ec38c7192bce1c24e0b64a360405160405180910390a35b60019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111df57600080fd5b6001600060146101000a81548160ff0219169083151502179055506001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125e57600080fd5b60008060146101000a81548160ff0219169083151502179055506001905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561132657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff1660001415151561134957fe5b602060048101600036905014151561135d57fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415156115cc57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060026000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060026000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a35b600192505050919050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f51494e420000000000000000000000000000000000000000000000000000000081525081565b600080600060149054906101000a900460ff1615151561165a57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff1660001415151561167d57fe5b60009050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611a2a575b8351811015611a185782818151811015156116ef57fe5b90602001906020020151600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561174657600080fd5b6117af838281518110151561175757fe5b90602001906020020151600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611872838281518110151561180357fe5b9060200190602002015160026000878581518110151561181f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a890919063ffffffff16565b60026000868481518110151561188457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118f883828151811015156118dd57fe5b906020019060200201516006546121a890919063ffffffff16565b600681905550838181518110151561190c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858481518110151561197257fe5b906020019060200201516040518082815260200191505060405180910390a3838181518110151561199f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f82fcdc6d686ef290d274c2182ac1b4a9e677a9f17c0cc1b645fdc8fc13e5d6c184838151811015156119ee57fe5b906020019060200201516040518082815260200191505060405180910390a26001810190506116d8565b60065460015403600581905550611cbe565b5b8351811015611cbd578281815181101515611a4257fe5b90602001906020020151600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a9957600080fd5b611b028382815181101515611aaa57fe5b90602001906020020151600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bc58382815181101515611b5657fe5b90602001906020020151600260008785815181101515611b7257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a890919063ffffffff16565b600260008684815181101515611bd757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508381815181101515611c2d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8584815181101515611c9357fe5b906020019060200201516040518082815260200191505060405180910390a3600181019050611a2b565b5b8091505092915050565b60008060149054906101000a900460ff16151515611ce557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600014151515611d0857fe5b8282600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d4657600080fd5b60008114151515611d5657600080fd5b8380600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611da557600080fd5b8585600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151515611e3657600080fd5b6040600481016000369050141515611e4a57fe5b611e9c88600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3188600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8a6040518082815260200191505060405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156120a657612044886006546121a890919063ffffffff16565b600681905550600654600154036005819055508873ffffffffffffffffffffffffffffffffffffffff167f82fcdc6d686ef290d274c2182ac1b4a9e677a9f17c0cc1b645fdc8fc13e5d6c1896040518082815260200191505060405180910390a25b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561217357612111886006546121c990919063ffffffff16565b600681905550600654600154036005819055508873ffffffffffffffffffffffffffffffffffffffff167f62eaefe162b5248fc4b5375b8e6600deb556ad6031f9f8ee23bec69bf88aff2c896040518082815260200191505060405180910390a25b6001965050505050505092915050565b6003602052816000526040600020602052806000526040600020600091509150505481565b60008082840190508381101515156121bf57600080fd5b8091505092915050565b60008282111515156121da57600080fd5b8183039050929150505600a165627a7a72305820cb73ebfff59fb07c4cbeebc74785ffb11cbc621cf82b4b52e7a3e0f3161a08fd0029