//
0x608060405234801561001057600080fd5b50610825806100206000396000f3fe6080604052600436106100a75760003560e01c80634d2301cc116100645780634d2301cc1461014157806386d516e814610169578063a8b0574e1461017c578063bce38bd714610197578063ee82ac5e146101b7578063f4c3a9b8146101d657600080fd5b80630f28c97d146100ac578063252dba42146100ce57806327e86d6e146100ef5780633408e470146101075780633e64a6961461011a57806342cbb15c1461012e575b600080fd5b3480156100b857600080fd5b50425b6040519081526020015b60405180910390f35b6100e16100dc366004610541565b6101e9565b6040516100c59291906105c9565b3480156100fb57600080fd5b504360001901406100bb565b34801561011357600080fd5b50466100bb565b34801561012657600080fd5b5060006100bb565b34801561013a57600080fd5b50436100bb565b34801561014d57600080fd5b506100bb61015c366004610633565b6001600160a01b03163190565b34801561017557600080fd5b50456100bb565b34801561018857600080fd5b506040514181526020016100c5565b6101aa6101a5366004610663565b610362565b6040516100c591906106bd565b3480156101c357600080fd5b506100bb6101d2366004610733565b4090565b3480156101e257600080fd5b50446100bb565b436060828067ffffffffffffffff8111156102065761020661074c565b60405190808252806020026020018201604052801561023957816020015b60608152602001906001900390816102245790505b5091503660005b8281101561035857600087878381811061025c5761025c610762565b905060200281019061026e9190610778565b925061027d6020840184610633565b6001600160a01b03166102936020850185610798565b6040516102a19291906107df565b6000604051808303816000865af19150503d80600081146102de576040519150601f19603f3d011682016040523d82523d6000602084013e6102e3565b606091505b508684815181106102f6576102f6610762565b602090810291909101015290508061034f5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60448201526064015b60405180910390fd5b50600101610240565b5050509250929050565b6060818067ffffffffffffffff81111561037e5761037e61074c565b6040519080825280602002602001820160405280156103c457816020015b60408051808201909152600081526060602082015281526020019060019003908161039c5790505b5091503660005b828110156104eb5760008482815181106103e7576103e7610762565b6020026020010151905086868381811061040357610403610762565b90506020028101906104159190610778565b92506104246020840184610633565b6001600160a01b031661043a6020850185610798565b6040516104489291906107df565b6000604051808303816000865af19150503d8060008114610485576040519150601f19603f3d011682016040523d82523d6000602084013e61048a565b606091505b5060208301521515815287156104e25780516104e25760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6044820152606401610346565b506001016103cb565b5050509392505050565b60008083601f84011261050757600080fd5b50813567ffffffffffffffff81111561051f57600080fd5b6020830191508360208260051b850101111561053a57600080fd5b9250929050565b6000806020838503121561055457600080fd5b823567ffffffffffffffff81111561056b57600080fd5b610577858286016104f5565b90969095509350505050565b6000815180845260005b818110156105a95760208185018101518683018201520161058d565b506000602082860101526020601f19601f83011685010191505092915050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b8281101561062557605f19888703018452610613868351610583565b955092840192908401906001016105f7565b509398975050505050505050565b60006020828403121561064557600080fd5b81356001600160a01b038116811461065c57600080fd5b9392505050565b60008060006040848603121561067857600080fd5b8335801515811461068857600080fd5b9250602084013567ffffffffffffffff8111156106a457600080fd5b6106b0868287016104f5565b9497909650939450505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561072557888303603f19018552815180511515845287015187840187905261071287850182610583565b95880195935050908601906001016106e4565b509098975050505050505050565b60006020828403121561074557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811261078e57600080fd5b9190910192915050565b6000808335601e198436030181126107af57600080fd5b83018035915067ffffffffffffffff8211156107ca57600080fd5b60200191503681900382131561053a57600080fd5b818382376000910190815291905056fea26469706673582212201c50dd9dfc2a108a7a27527275d18c7d67b0eb8a24f1bd2347093402913baebc64736f6c63430008120033