0x6080604052600436106102555760003560e01c8063807c2d9c11610139578063aaf96d4a116100b6578063dd62ed3e1161007a578063dd62ed3e146106f7578063e5e31b131461073d578063e9a676a81461076d578063f0ef821f1461078d578063f887ea40146107a7578063ffb54a99146107c757600080fd5b8063aaf96d4a14610675578063bf56b37114610695578063c9567bf9146106ab578063ca987b0e146106c0578063da00097d146106d657600080fd5b806395d89b41116100fd57806395d89b41146105d357806398118cb4146105ff578063a535598914610615578063a8aa1b3114610635578063a9059cbb1461065557600080fd5b8063807c2d9c1461051d5780638637b06914610533578063893d20e8146105535780638b42507f146105855780638da5cb5b146105b557600080fd5b80633f4218e0116101d25780636b67c4df116101965780636b67c4df14610467578063705409331461047d57806370a082311461049c578063715018a6146104d2578063787a051b146104e75780637d1db4a51461050757600080fd5b80633f4218e0146103a857806345599136146103d85780634a74bb02146103ee578063571ac8b01461040e578063673448dd1461042e57600080fd5b806323b872dd1161021957806323b872dd1461031f5780632b112e491461033f578063313ce56714610354578063399c7976146103705780633ec726c81461039257600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102c457806318160ddd146102f45780631df4ccfc1461030957600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760195481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5060408051808201909152600881526721bab69021b7b4b760c11b60208201525b6040516102819190611826565b3480156102d057600080fd5b506102e46102df36600461188c565b6107e1565b6040519015158152602001610281565b34801561030057600080fd5b50600354610277565b34801561031557600080fd5b50610277600e5481565b34801561032b57600080fd5b506102e461033a3660046118b8565b61084e565b34801561034b57600080fd5b50610277610910565b34801561036057600080fd5b5060405160098152602001610281565b34801561037c57600080fd5b5061039061038b366004611907565b610981565b005b34801561039e57600080fd5b50610277600c5481565b3480156103b457600080fd5b506102e46103c3366004611940565b60086020526000908152604090205460ff1681565b3480156103e457600080fd5b50610277600d5481565b3480156103fa57600080fd5b506018546102e49062010000900460ff1681565b34801561041a57600080fd5b506102e4610429366004611940565b6109df565b34801561043a57600080fd5b506102e4610449366004611940565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561047357600080fd5b50610277600b5481565b34801561048957600080fd5b506010546102e490610100900460ff1681565b3480156104a857600080fd5b506102776104b7366004611940565b6001600160a01b031660009081526006602052604090205490565b3480156104de57600080fd5b506103906109ed565b3480156104f357600080fd5b5061039061050236600461195d565b610a61565b34801561051357600080fd5b5061027760045481565b34801561052957600080fd5b5061027760055481565b34801561053f57600080fd5b506102e461054e36600461188c565b610ad3565b34801561055f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610281565b34801561059157600080fd5b506102e46105a0366004611940565b60096020526000908152604090205460ff1681565b3480156105c157600080fd5b506000546001600160a01b031661056d565b3480156105df57600080fd5b5060408051808201909152600381526243554d60e81b60208201526102b7565b34801561060b57600080fd5b50610277600a5481565b34801561062157600080fd5b506010546102e49062010000900460ff1681565b34801561064157600080fd5b5060155461056d906001600160a01b031681565b34801561066157600080fd5b506102e461067036600461188c565b610bc7565b34801561068157600080fd5b50610390610690366004611907565b610bd4565b3480156106a157600080fd5b5061027760175481565b3480156106b757600080fd5b50610390610c29565b3480156106cc57600080fd5b50610277600f5481565b3480156106e257600080fd5b506018546102e4906301000000900460ff1681565b34801561070357600080fd5b50610277610712366004611976565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561074957600080fd5b506102e4610758366004611940565b60166020526000908152604090205460ff1681565b34801561077957600080fd5b506103906107883660046119a4565b610c62565b34801561079957600080fd5b506010546102e49060ff1681565b3480156107b357600080fd5b5060145461056d906001600160a01b031681565b3480156107d357600080fd5b506018546102e49060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061083c9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108fb576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108d6918490610d50565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610906848484610d8a565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261097c9290916109769190611016565b90611016565b905090565b6000546001600160a01b031633146109b45760405162461bcd60e51b81526004016109ab906119df565b60405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6000610848826000196107e1565b6000546001600160a01b03163314610a175760405162461bcd60e51b81526004016109ab906119df565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a8b5760405162461bcd60e51b81526004016109ab906119df565b47336108fc6064610a9c8585611a2a565b610aa69190611a41565b6040518115909202916000818181858888f19350505050158015610ace573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610afe5760405162461bcd60e51b81526004016109ab906119df565b306001600160a01b03841603610b565760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e0000000060448201526064016109ab565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ba3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109099190611a63565b6000610909338484610d8a565b6000546001600160a01b03163314610bfe5760405162461bcd60e51b81526004016109ab906119df565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c535760405162461bcd60e51b81526004016109ab906119df565b6018805460ff19166001179055565b3360009081526001602052604090205460ff16610cad5760405162461bcd60e51b8152602060048201526009602482015268085054141493d5915160ba1b60448201526064016109ab565b600a859055600b849055600c839055600d829055610cd782610cd185818989610cf1565b90610cf1565b600e819055610ce7908290611a80565b600f555050505050565b600080610cfe8385611a80565b9050838110156109095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109ab565b60008184841115610d745760405162461bcd60e51b81526004016109ab9190611826565b506000610d818486611a93565b95945050505050565b601854600090610100900460ff1615610daf57610da8848484611058565b9050610909565b6001600160a01b03841660009081526001602052604090205460ff16158015610df157506001600160a01b03831660009081526001602052604090205460ff16155b15610e225760185460ff16610e225760405162461bcd60e51b815260206004820152600060248201526044016109ab565b6001600160a01b03831660009081526016602052604090205460ff168015610e525750601854610100900460ff16155b8015610e66575060185462010000900460ff165b8015610e8357506019543060009081526006602052604090205410155b15610e9057610e9061112c565b601754158015610eb857506001600160a01b03831660009081526016602052604090205460ff165b15610f05576001600160a01b038416600090815260066020526040902054610efc5760405162461bcd60e51b815260206004820152600060248201526044016109ab565b610f0543601755565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610f36918490610d50565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f8657506001600160a01b03841660009081526008602052604090205460ff16155b610f905782610f9b565b610f9b858585611506565b6001600160a01b038516600090815260066020526040902054909150610fc19082610cf1565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020611b79833981519152906110039085815260200190565b60405180910390a3506001949350505050565b600061090983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d50565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110a9918490610d50565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110d89083610cf1565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020611b798339815191529061111a9086815260200190565b60405180910390a35060019392505050565b6018805461ff00191661010017905530600090815260066020526040812054600d54600e5491929161117d91600291611177916111699190611016565b600a54611177908790611739565b906117bb565b9050600061118b8383611016565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111c5576111c5611aa6565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190611abc565b8160018151811061125557611255611aa6565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061129b908590600090869030904290600401611ad9565b600060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b5050600a54479250600091506112f3906112e49060026117bb565b600d54600e5461097691611016565b90506000611315600261117784611177600a548861173990919063ffffffff16565b9050600061133283611177600b548761173990919063ffffffff16565b9050600061134f84611177600c548861173990919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146113a6576040519150601f19603f3d011682016040523d82523d6000602084013e6113ab565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114611403576040519150601f19603f3d011682016040523d82523d6000602084013e611408565b606091505b506000925050891590506114ef5760145460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af115801561148d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114b29190611b4a565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506018805461ff00191690555050505050505050565b6001600160a01b0382166000908152601660205260408120548190819060ff1680156115395750601054610100900460ff165b1561155057600d54600f5461154d91611016565b91505b6001600160a01b03861660009081526016602052604090205460ff16801561157a575060105460ff165b1561159157600d54600e5461158e91611016565b91505b6001600160a01b03861660009081526016602052604090205460ff161580156115d357506001600160a01b03851660009081526016602052604090205460ff16155b156116045760105462010000900460ff16156115ff57600d54600f546115f891611016565b9150611604565b600091505b60008211801561161657506000600d54115b156116ab576116356064611177600d548761173990919063ffffffff16565b6013546001600160a01b031660009081526006602052604090205490915061165d9082610cf1565b601380546001600160a01b0390811660009081526006602090815260409182902094909455915491518481529181169290891691600080516020611b79833981519152910160405180910390a35b60006116bc60646111778786611739565b306000908152600660205260409020549091506116d99082610cf1565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020611b79833981519152906117189085815260200190565b60405180910390a361172e826109768784611016565b979650505050505050565b60008260000361174b57506000610848565b60006117578385611a2a565b9050826117648583611a41565b146109095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109ab565b600061090983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118195760405162461bcd60e51b81526004016109ab9190611826565b506000610d818486611a41565b600060208083528351808285015260005b8181101561185357858101830151858201604001528201611837565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461188957600080fd5b50565b6000806040838503121561189f57600080fd5b82356118aa81611874565b946020939093013593505050565b6000806000606084860312156118cd57600080fd5b83356118d881611874565b925060208401356118e881611874565b929592945050506040919091013590565b801515811461188957600080fd5b6000806040838503121561191a57600080fd5b823561192581611874565b91506020830135611935816118f9565b809150509250929050565b60006020828403121561195257600080fd5b813561090981611874565b60006020828403121561196f57600080fd5b5035919050565b6000806040838503121561198957600080fd5b823561199481611874565b9150602083013561193581611874565b600080600080600060a086880312156119bc57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761084857610848611a14565b600082611a5e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a7557600080fd5b8151610909816118f9565b8082018082111561084857610848611a14565b8181038181111561084857610848611a14565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ace57600080fd5b815161090981611874565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b295784516001600160a01b031683529383019391830191600101611b04565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611b5f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122003c117d14e8b5405f46a80e2ee62e422873a928a125a546fe59ea82c8abf5f5364736f6c63430008110033
0x6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386009600a620006d2565b620000499064019f6d22c9620006ea565b600355606460035460046200005f9190620006ea565b6200006b919062000704565b60045560646003546005620000819190620006ea565b6200008d919062000704565b6005556000600a819055600b819055600c8190556032600d55600e819055600f55601080546201010162ffffff199091161790556018805463ffff00ff1916620100011790556003546103e890620000e7906002620006ea565b620000f3919062000704565b6019553480156200010357600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601480546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e1919062000727565b6001600160a01b031663c9c65396601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000269919062000727565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000727565b601580546001600160a01b03199081166001600160a01b0393841690811783556000908152601660209081526040808320805460ff19908116600190811790925530808652600785528386206014548a16875285528386206000199081905588548a16875284872055338087526008808752858820805485168617905591875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054841685179055601380548b1688528588208054851686179055600280548c168952868920805486168717905581548c168952600988528689208054861687179055828952868920805486168717905599548b16885285882080548516861790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054851686179055985490991686529285208054821683179055601080546301000000600160b81b031916765aa782e4facfef6ff5c1de5b44f9151ee8250b5e00000017905560118054735aa782e4facfef6ff5c1de5b44f9151ee8250b5e9088168117909155601280548816821790558754909616909717909555929091529081527f55e6c83903ecc5746a91a8229a451b5771c4b382a4b8a0c923ada3e99bf7c87c8054909316909117909155600c54600d54600b54600a54620004f794620004e3939284929162000550811b62000cf117901c565b6200055060201b62000cf11790919060201c565b600e819055600f5560035433600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000768565b6000806200055f838562000752565b905083811015620005b65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000616578160001904821115620005fa57620005fa620005bf565b808516156200060857918102915b93841c9390800290620005da565b509250929050565b6000826200062f57506001620005b9565b816200063e57506000620005b9565b8160018114620006575760028114620006625762000682565b6001915050620005b9565b60ff841115620006765762000676620005bf565b50506001821b620005b9565b5060208310610133831016604e8410600b8410161715620006a7575081810a620005b9565b620006b38383620005d5565b8060001904821115620006ca57620006ca620005bf565b029392505050565b6000620006e360ff8416836200061e565b9392505050565b8082028115828204841417620005b957620005b9620005bf565b6000826200072257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073a57600080fd5b81516001600160a01b0381168114620005b657600080fd5b80820180821115620005b957620005b9620005bf565b611bce80620007786000396000f3fe6080604052600436106102555760003560e01c8063807c2d9c11610139578063aaf96d4a116100b6578063dd62ed3e1161007a578063dd62ed3e146106f7578063e5e31b131461073d578063e9a676a81461076d578063f0ef821f1461078d578063f887ea40146107a7578063ffb54a99146107c757600080fd5b8063aaf96d4a14610675578063bf56b37114610695578063c9567bf9146106ab578063ca987b0e146106c0578063da00097d146106d657600080fd5b806395d89b41116100fd57806395d89b41146105d357806398118cb4146105ff578063a535598914610615578063a8aa1b3114610635578063a9059cbb1461065557600080fd5b8063807c2d9c1461051d5780638637b06914610533578063893d20e8146105535780638b42507f146105855780638da5cb5b146105b557600080fd5b80633f4218e0116101d25780636b67c4df116101965780636b67c4df14610467578063705409331461047d57806370a082311461049c578063715018a6146104d2578063787a051b146104e75780637d1db4a51461050757600080fd5b80633f4218e0146103a857806345599136146103d85780634a74bb02146103ee578063571ac8b01461040e578063673448dd1461042e57600080fd5b806323b872dd1161021957806323b872dd1461031f5780632b112e491461033f578063313ce56714610354578063399c7976146103705780633ec726c81461039257600080fd5b80630445b6671461026157806306fdde031461028a578063095ea7b3146102c457806318160ddd146102f45780631df4ccfc1461030957600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061027760195481565b6040519081526020015b60405180910390f35b34801561029657600080fd5b5060408051808201909152600881526721bab69021b7b4b760c11b60208201525b6040516102819190611826565b3480156102d057600080fd5b506102e46102df36600461188c565b6107e1565b6040519015158152602001610281565b34801561030057600080fd5b50600354610277565b34801561031557600080fd5b50610277600e5481565b34801561032b57600080fd5b506102e461033a3660046118b8565b61084e565b34801561034b57600080fd5b50610277610910565b34801561036057600080fd5b5060405160098152602001610281565b34801561037c57600080fd5b5061039061038b366004611907565b610981565b005b34801561039e57600080fd5b50610277600c5481565b3480156103b457600080fd5b506102e46103c3366004611940565b60086020526000908152604090205460ff1681565b3480156103e457600080fd5b50610277600d5481565b3480156103fa57600080fd5b506018546102e49062010000900460ff1681565b34801561041a57600080fd5b506102e4610429366004611940565b6109df565b34801561043a57600080fd5b506102e4610449366004611940565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561047357600080fd5b50610277600b5481565b34801561048957600080fd5b506010546102e490610100900460ff1681565b3480156104a857600080fd5b506102776104b7366004611940565b6001600160a01b031660009081526006602052604090205490565b3480156104de57600080fd5b506103906109ed565b3480156104f357600080fd5b5061039061050236600461195d565b610a61565b34801561051357600080fd5b5061027760045481565b34801561052957600080fd5b5061027760055481565b34801561053f57600080fd5b506102e461054e36600461188c565b610ad3565b34801561055f57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610281565b34801561059157600080fd5b506102e46105a0366004611940565b60096020526000908152604090205460ff1681565b3480156105c157600080fd5b506000546001600160a01b031661056d565b3480156105df57600080fd5b5060408051808201909152600381526243554d60e81b60208201526102b7565b34801561060b57600080fd5b50610277600a5481565b34801561062157600080fd5b506010546102e49062010000900460ff1681565b34801561064157600080fd5b5060155461056d906001600160a01b031681565b34801561066157600080fd5b506102e461067036600461188c565b610bc7565b34801561068157600080fd5b50610390610690366004611907565b610bd4565b3480156106a157600080fd5b5061027760175481565b3480156106b757600080fd5b50610390610c29565b3480156106cc57600080fd5b50610277600f5481565b3480156106e257600080fd5b506018546102e4906301000000900460ff1681565b34801561070357600080fd5b50610277610712366004611976565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561074957600080fd5b506102e4610758366004611940565b60166020526000908152604090205460ff1681565b34801561077957600080fd5b506103906107883660046119a4565b610c62565b34801561079957600080fd5b506010546102e49060ff1681565b3480156107b357600080fd5b5060145461056d906001600160a01b031681565b3480156107d357600080fd5b506018546102e49060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061083c9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108fb576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108d6918490610d50565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610906848484610d8a565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261097c9290916109769190611016565b90611016565b905090565b6000546001600160a01b031633146109b45760405162461bcd60e51b81526004016109ab906119df565b60405180910390fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6000610848826000196107e1565b6000546001600160a01b03163314610a175760405162461bcd60e51b81526004016109ab906119df565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a8b5760405162461bcd60e51b81526004016109ab906119df565b47336108fc6064610a9c8585611a2a565b610aa69190611a41565b6040518115909202916000818181858888f19350505050158015610ace573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610afe5760405162461bcd60e51b81526004016109ab906119df565b306001600160a01b03841603610b565760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e0000000060448201526064016109ab565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ba3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109099190611a63565b6000610909338484610d8a565b6000546001600160a01b03163314610bfe5760405162461bcd60e51b81526004016109ab906119df565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c535760405162461bcd60e51b81526004016109ab906119df565b6018805460ff19166001179055565b3360009081526001602052604090205460ff16610cad5760405162461bcd60e51b8152602060048201526009602482015268085054141493d5915160ba1b60448201526064016109ab565b600a859055600b849055600c839055600d829055610cd782610cd185818989610cf1565b90610cf1565b600e819055610ce7908290611a80565b600f555050505050565b600080610cfe8385611a80565b9050838110156109095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109ab565b60008184841115610d745760405162461bcd60e51b81526004016109ab9190611826565b506000610d818486611a93565b95945050505050565b601854600090610100900460ff1615610daf57610da8848484611058565b9050610909565b6001600160a01b03841660009081526001602052604090205460ff16158015610df157506001600160a01b03831660009081526001602052604090205460ff16155b15610e225760185460ff16610e225760405162461bcd60e51b815260206004820152600060248201526044016109ab565b6001600160a01b03831660009081526016602052604090205460ff168015610e525750601854610100900460ff16155b8015610e66575060185462010000900460ff165b8015610e8357506019543060009081526006602052604090205410155b15610e9057610e9061112c565b601754158015610eb857506001600160a01b03831660009081526016602052604090205460ff165b15610f05576001600160a01b038416600090815260066020526040902054610efc5760405162461bcd60e51b815260206004820152600060248201526044016109ab565b610f0543601755565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610f36918490610d50565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f8657506001600160a01b03841660009081526008602052604090205460ff16155b610f905782610f9b565b610f9b858585611506565b6001600160a01b038516600090815260066020526040902054909150610fc19082610cf1565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020611b79833981519152906110039085815260200190565b60405180910390a3506001949350505050565b600061090983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d50565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110a9918490610d50565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546110d89083610cf1565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020611b798339815191529061111a9086815260200190565b60405180910390a35060019392505050565b6018805461ff00191661010017905530600090815260066020526040812054600d54600e5491929161117d91600291611177916111699190611016565b600a54611177908790611739565b906117bb565b9050600061118b8383611016565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106111c5576111c5611aa6565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190611abc565b8160018151811061125557611255611aa6565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061129b908590600090869030904290600401611ad9565b600060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b5050600a54479250600091506112f3906112e49060026117bb565b600d54600e5461097691611016565b90506000611315600261117784611177600a548861173990919063ffffffff16565b9050600061133283611177600b548761173990919063ffffffff16565b9050600061134f84611177600c548861173990919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146113a6576040519150601f19603f3d011682016040523d82523d6000602084013e6113ab565b606091505b5050601254604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114611403576040519150601f19603f3d011682016040523d82523d6000602084013e611408565b606091505b506000925050891590506114ef5760145460105460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af115801561148d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114b29190611b4a565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506018805461ff00191690555050505050505050565b6001600160a01b0382166000908152601660205260408120548190819060ff1680156115395750601054610100900460ff165b1561155057600d54600f5461154d91611016565b91505b6001600160a01b03861660009081526016602052604090205460ff16801561157a575060105460ff165b1561159157600d54600e5461158e91611016565b91505b6001600160a01b03861660009081526016602052604090205460ff161580156115d357506001600160a01b03851660009081526016602052604090205460ff16155b156116045760105462010000900460ff16156115ff57600d54600f546115f891611016565b9150611604565b600091505b60008211801561161657506000600d54115b156116ab576116356064611177600d548761173990919063ffffffff16565b6013546001600160a01b031660009081526006602052604090205490915061165d9082610cf1565b601380546001600160a01b0390811660009081526006602090815260409182902094909455915491518481529181169290891691600080516020611b79833981519152910160405180910390a35b60006116bc60646111778786611739565b306000908152600660205260409020549091506116d99082610cf1565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020611b79833981519152906117189085815260200190565b60405180910390a361172e826109768784611016565b979650505050505050565b60008260000361174b57506000610848565b60006117578385611a2a565b9050826117648583611a41565b146109095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109ab565b600061090983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118195760405162461bcd60e51b81526004016109ab9190611826565b506000610d818486611a41565b600060208083528351808285015260005b8181101561185357858101830151858201604001528201611837565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461188957600080fd5b50565b6000806040838503121561189f57600080fd5b82356118aa81611874565b946020939093013593505050565b6000806000606084860312156118cd57600080fd5b83356118d881611874565b925060208401356118e881611874565b929592945050506040919091013590565b801515811461188957600080fd5b6000806040838503121561191a57600080fd5b823561192581611874565b91506020830135611935816118f9565b809150509250929050565b60006020828403121561195257600080fd5b813561090981611874565b60006020828403121561196f57600080fd5b5035919050565b6000806040838503121561198957600080fd5b823561199481611874565b9150602083013561193581611874565b600080600080600060a086880312156119bc57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761084857610848611a14565b600082611a5e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a7557600080fd5b8151610909816118f9565b8082018082111561084857610848611a14565b8181038181111561084857610848611a14565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ace57600080fd5b815161090981611874565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b295784516001600160a01b031683529383019391830191600101611b04565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611b5f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122003c117d14e8b5405f46a80e2ee62e422873a928a125a546fe59ea82c8abf5f5364736f6c63430008110033