0x60806040526000600e556011805462ffffff191660011790556013805460ff191690553480156200002f57600080fd5b50604051806040016040528060098152602001680436861696e537761760bc1b81525060405180604001604052806005815260200164043535741560dc1b815250816003908162000081919062000630565b50600462000090828262000630565b5050506000620000a5620002cb60201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620041d8833981519152908290a350336b033b2e3c9fd0803ce80000006064620000ff82600162000712565b6200010b919062000734565b60065560646200011d82600162000712565b62000129919062000734565b60075560646200013b82600162000712565b62000147919062000734565b600855620f42406200015b82600362000712565b62000167919062000734565b600b55601b60158190556000601681905560016017819055601882905590916200019390839062000757565b6200019f919062000757565b620001ab919062000757565b6014556018601a8190556000601b8190556001601c819055601d8290559091620001d790839062000757565b620001e3919062000757565b620001ef919062000757565b601955600c8054730985afbb7cb88d262ab7165f2da52427feb5f0876001600160a01b03199182168117909255600d8054909116909117905562000235826001620002cf565b62000242306001620002cf565b6200025161dead6001620002cf565b600c546200026a906001600160a01b03166001620002cf565b6200027782600162000332565b6200028430600162000332565b6200029361dead600162000332565b600c54620002ac906001600160a01b0316600162000332565b620002b88282620003c7565b620002c382620004ac565b5050620007a7565b3390565b6001600160a01b038216600081815260236020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6005546001600160a01b03163314620003685760405162461bcd60e51b81526004016200035f9062000772565b60405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200041f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200035f565b806002600082825462000433919062000757565b90915550506001600160a01b038216600090815260208190526040812080548392906200046290849062000757565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620004d95760405162461bcd60e51b81526004016200035f9062000772565b6001600160a01b038116620005405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200035f565b6005546040516001600160a01b03808416921690600080516020620041d883398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005b657607f821691505b602082108103620005d757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200062b57600081815260208120601f850160051c81016020861015620006065750805b601f850160051c820191505b81811015620006275782815560010162000612565b5050505b505050565b81516001600160401b038111156200064c576200064c6200058b565b62000664816200065d8454620005a1565b84620005dd565b602080601f8311600181146200069c5760008415620006835750858301515b600019600386901b1c1916600185901b17855562000627565b600085815260208120601f198616915b82811015620006cd57888601518255948401946001909101908401620006ac565b5085821015620006ec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200072f576200072f620006fc565b500290565b6000826200075257634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200076d576200076d620006fc565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b613a2180620007b76000396000f3fe6080604052600436106102f85760003560e01c806306fdde03146103045780630758d9241461032f578063095ea7b31461035c57806310d5de531461038c578063130a2c3c146103bc57806318160ddd146103de5780631a8145bb146103fd5780631d7778561461041357806323559af91461042957806323b872dd146104495780632882702b146104695780632e6ed7ef1461048957806330a5a2bc146104a9578063313ce567146104c957806339509351146104e5578063452ed4f114610505578063487c86e2146105255780634a62bb65146105455780634f77f6c01461055f57806351f205e4146105755780635a139dd41461058a5780636a486a8e146105a05780636b0a894c146105b65780636ddd1713146105cc578063707789c51461042957806370a08231146105ec57806370db69d61461060c578063715018a614610622578063751039fc146106375780637571336a1461064c5780638129fc1c1461066c5780638366e79a1461067457806385ecfd28146106945780638a8c523c146106c45780638da5cb5b146106d957806395d89b41146106ee5780639a7a23d6146107035780639c3b4fdc146107235780639fccce3214610739578063a0d82dc51461074f578063a457c2d714610765578063a9059cbb14610785578063adb873bd146107a5578063b62496f5146107bb578063b8eb3546146107eb578063bbc0c74214610801578063c024666814610820578063c876d0b914610840578063d0d41fe114610469578063d257b34f1461085a578063d85ba0631461087a578063dd62ed3e14610890578063e2cd5fcd146108d6578063e2f45605146108eb578063e71dc3f514610901578063e7ad9fcd14610917578063e800dff714610937578063e884f26014610957578063ec36a7241461096c578063ee40166e1461098c578063f11a24d3146109a2578063f2fde38b146109b8578063f5648a4f146109d8578063f6374342146109ed578063f8b45b0514610a03578063fb002c9714610a19578063fc155d1d14610a2f57600080fd5b366102ff57005b600080fd5b34801561031057600080fd5b50610319610a4f565b60405161032691906133ec565b60405180910390f35b34801561033b57600080fd5b5060095461034f906001600160a01b031681565b6040516103269190613441565b34801561036857600080fd5b5061037c61037736600461346d565b610ae1565b6040519015158152602001610326565b34801561039857600080fd5b5061037c6103a7366004613499565b60236020526000908152604090205460ff1681565b3480156103c857600080fd5b506103dc6103d73660046134cb565b610af7565b005b3480156103ea57600080fd5b506002545b604051908152602001610326565b34801561040957600080fd5b506103ef601f5481565b34801561041f57600080fd5b506103ef60215481565b34801561043557600080fd5b506103dc610444366004613499565b610ba1565b34801561045557600080fd5b5061037c610464366004613550565b610c52565b34801561047557600080fd5b506103dc610484366004613499565b610d08565b34801561049557600080fd5b506103dc6104a4366004613591565b610daa565b3480156104b557600080fd5b506103dc6104c43660046135c3565b610e11565b3480156104d557600080fd5b5060405160128152602001610326565b3480156104f157600080fd5b5061037c61050036600461346d565b610f21565b34801561051157600080fd5b50600a5461034f906001600160a01b031681565b34801561053157600080fd5b506103dc6105403660046135c3565b610f5d565b34801561055157600080fd5b5060115461037c9060ff1681565b34801561056b57600080fd5b506103ef601a5481565b34801561058157600080fd5b506103dc611063565b34801561059657600080fd5b506103ef60155481565b3480156105ac57600080fd5b506103ef60195481565b3480156105c257600080fd5b506103ef60105481565b3480156105d857600080fd5b5060115461037c9062010000900460ff1681565b3480156105f857600080fd5b506103ef610607366004613499565b61116c565b34801561061857600080fd5b506103ef60065481565b34801561062e57600080fd5b506103dc611187565b34801561064357600080fd5b506103dc6111e9565b34801561065857600080fd5b506103dc6106673660046135dc565b611254565b6103dc61131c565b34801561068057600080fd5b5061037c61068f366004613615565b611686565b3480156106a057600080fd5b5061037c6106af366004613499565b600f6020526000908152604090205460ff1681565b3480156106d057600080fd5b506103dc611883565b3480156106e557600080fd5b5061034f61193f565b3480156106fa57600080fd5b5061031961194e565b34801561070f57600080fd5b506103dc61071e3660046135dc565b61195d565b34801561072f57600080fd5b506103ef60175481565b34801561074557600080fd5b506103ef60205481565b34801561075b57600080fd5b506103ef601c5481565b34801561077157600080fd5b5061037c61078036600461346d565b611a4d565b34801561079157600080fd5b5061037c6107a036600461346d565b611ae6565b3480156107b157600080fd5b506103ef601d5481565b3480156107c757600080fd5b5061037c6107d6366004613499565b60246020526000908152604090205460ff1681565b3480156107f757600080fd5b506103ef60075481565b34801561080d57600080fd5b5060115461037c90610100900460ff1681565b34801561082c57600080fd5b506103dc61083b3660046135dc565b611af3565b34801561084c57600080fd5b5060135461037c9060ff1681565b34801561086657600080fd5b506103dc6108753660046135c3565b611b81565b34801561088657600080fd5b506103ef60145481565b34801561089c57600080fd5b506103ef6108ab366004613615565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108e257600080fd5b506103dc611ccc565b3480156108f757600080fd5b506103ef600b5481565b34801561090d57600080fd5b506103ef60185481565b34801561092357600080fd5b506103dc610932366004613591565b611d72565b34801561094357600080fd5b506103dc6109523660046135dc565b611dd9565b34801561096357600080fd5b506103dc611e2e565b34801561097857600080fd5b506103dc6109873660046135c3565b611e64565b34801561099857600080fd5b506103ef600e5481565b3480156109ae57600080fd5b506103ef60165481565b3480156109c457600080fd5b506103dc6109d3366004613499565b611f6b565b3480156109e457600080fd5b506103dc612044565b3480156109f957600080fd5b506103ef601b5481565b348015610a0f57600080fd5b506103ef60085481565b348015610a2557600080fd5b506103ef601e5481565b348015610a3b57600080fd5b506103dc610a4a3660046135c3565b6120b0565b606060038054610a5e90613643565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8a90613643565b8015610ad75780601f10610aac57610100808354040283529160200191610ad7565b820191906000526020600020905b815481529060010190602001808311610aba57829003601f168201915b5050505050905090565b6000610aee3384846122f4565b50600192915050565b6005546001600160a01b03163314610b2a5760405162461bcd60e51b8152600401610b219061367d565b60405180910390fd5b60005b82811015610b9b5781600f6000868685818110610b4c57610b4c6136b2565b9050602002016020810190610b619190613499565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b93816136de565b915050610b2d565b50505050565b6005546001600160a01b03163314610bcb5760405162461bcd60e51b8152600401610b219061367d565b6001600160a01b038116610c305760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610b21565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c5f848484612419565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110801590610c935750600083115b610cf05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b21565b610cfd85338584036122f4565b506001949350505050565b6005546001600160a01b03163314610d325760405162461bcd60e51b8152600401610b219061367d565b6001600160a01b038116610d885760405162461bcd60e51b815260206004820152601f60248201527f5f6465764164647265737320616464726573732063616e6e6f742062652030006044820152606401610b21565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610dd45760405162461bcd60e51b8152600401610b219061367d565b60158490556016839055601782905560188190558082610df485876136f7565b610dfe91906136f7565b610e0891906136f7565b60145550505050565b6005546001600160a01b03163314610e3b5760405162461bcd60e51b8152600401610b219061367d565b670de0b6b3a76400006103e8610e5060025490565b610e5b90600361370f565b610e65919061372e565b610e6f919061372e565b811015610ed35760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e332560a01b6064820152608401610b21565b610ee581670de0b6b3a764000061370f565b60088190556040519081527fe5256bd7f53a82b84850000e86f4c7a83417ef39249ec70aa373642b42fd81f2906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610aee918590610f589086906136f7565b6122f4565b6005546001600160a01b03163314610f875760405162461bcd60e51b8152600401610b219061367d565b670de0b6b3a76400006103e8610f9c60025490565b610fa790600261370f565b610fb1919061372e565b610fbb919061372e565b81101561101c5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610b21565b61102e81670de0b6b3a764000061370f565b60068190556040519081527f9e5f6887bec93b2a8980ac2b63bf58f3cac0621573cb6c4ff79615f6ad8db18b90602001610f16565b6005546001600160a01b0316331461108d5760405162461bcd60e51b8152600401610b219061367d565b600b546110993061116c565b101561110f576040805162461bcd60e51b81526020600482015260248101919091527f43616e206f6e6c792073776170207768656e20746f6b656e20616d6f756e742060448201527f6973206174206f7220686967686572207468616e207265737472696374696f6e6064820152608401610b21565b600a805460ff60a01b1916600160a01b17905561112a612cb3565b600a805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b031633146111b15760405162461bcd60e51b8152600401610b219061367d565b6005546040516000916001600160a01b0316906000805160206139ac833981519152908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146112135760405162461bcd60e51b8152600401610b219061367d565b6011805460ff199081169091556013805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b0316331461127e5760405162461bcd60e51b8152600401610b219061367d565b806112f157600a546001600160a01b03908116908316036112f15760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610b21565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146113465760405162461bcd60e51b8152600401610b219061367d565b601154610100900460ff16156113945760405162461bcd60e51b81526020600482015260136024820152721a5b9a5d08185b1c9958591e4818d85b1b1959606a1b6044820152606401610b21565b600061139f3061116c565b600980546001600160a01b031916734752ba5dbc23f44d87826276bf6fd6b1c372ad249081179091559091506113d99030906000196122f4565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561142c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114509190613750565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190613750565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611523573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115479190613750565b600a80546001600160a01b0319166001600160a01b03929092169182179055611571906001612ef2565b600a54611588906001600160a01b03166001612f4e565b6009546001600160a01b031663f305d71934308460008033426040518863ffffffff1660e01b81526004016115c29695949392919061376d565b60606040518083038185885af11580156115e0573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061160591906137a8565b5050600a5460095460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261163f921690600019906004016137d6565b6020604051808303816000875af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906137ef565b5050565b6005546000906001600160a01b031633146116b35760405162461bcd60e51b8152600401610b219061367d565b6001600160a01b0383166117065760405162461bcd60e51b815260206004820152601a60248201527905f746f6b656e20616464726573732063616e6e6f7420626520360341b6044820152606401610b21565b306001600160a01b0384160361175d5760405162461bcd60e51b815260206004820152601c60248201527b43616e2774207769746864726177206e617469766520746f6b656e7360201b6044820152606401610b21565b6040516370a0823160e01b81526000906001600160a01b038516906370a082319061178c903090600401613441565b602060405180830381865afa1580156117a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cd919061380c565b60405163a9059cbb60e01b81529091506001600160a01b0385169063a9059cbb906117fe90869085906004016137d6565b6020604051808303816000875af115801561181d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184191906137ef565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e43884826040516118749291906137d6565b60405180910390a15092915050565b6005546001600160a01b031633146118ad5760405162461bcd60e51b8152600401610b219061367d565b601154610100900460ff16156118ff5760405162461bcd60e51b815260206004820152601760248201527643616e6e6f74207265656e61626c652074726164696e6760481b6044820152606401610b21565b6011805462ffff0019166201010017905543600e556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b6005546001600160a01b031690565b606060048054610a5e90613643565b6005546001600160a01b031633146119875760405162461bcd60e51b8152600401610b219061367d565b600a546001600160a01b0390811690831603611a075760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d206044820152786175746f6d617465644d61726b65744d616b6572506169727360381b6064820152608401610b21565b611a118282612f4e565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015611acf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b21565b611adc33858584036122f4565b5060019392505050565b6000610aee338484612419565b6005546001600160a01b03163314611b1d5760405162461bcd60e51b8152600401610b219061367d565b6001600160a01b03821660008181526022602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df790611b7590841515815260200190565b60405180910390a25050565b6005546001600160a01b03163314611bab5760405162461bcd60e51b8152600401610b219061367d565b620186a0611bb860025490565b611bc390600161370f565b611bcd919061372e565b811015611c3a5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610b21565b6103e8611c4660025490565b611c5190600161370f565b611c5b919061372e565b811115611cc75760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610b21565b600b55565b6005546001600160a01b03163314611cf65760405162461bcd60e51b8152600401610b219061367d565b6004601a8190556000601b819055601c819055601d819055908190611d1c9082906136f7565b611d2691906136f7565b611d3091906136f7565b601955600460158190556000601681905560178190556018819055908190611d599082906136f7565b611d6391906136f7565b611d6d91906136f7565b601455565b6005546001600160a01b03163314611d9c5760405162461bcd60e51b8152600401610b219061367d565b601a849055601b839055601c829055601d8190558082611dbc85876136f7565b611dc691906136f7565b611dd091906136f7565b60195550505050565b6005546001600160a01b03163314611e035760405162461bcd60e51b8152600401610b219061367d565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314611e585760405162461bcd60e51b8152600401610b219061367d565b6013805460ff19169055565b6005546001600160a01b03163314611e8e5760405162461bcd60e51b8152600401610b219061367d565b670de0b6b3a76400006103e8611ea360025490565b611eae90600261370f565b611eb8919061372e565b611ec2919061372e565b811015611f245760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610b21565b611f3681670de0b6b3a764000061370f565b60078190556040519081527f06caf19cbd3cc1a6191f881ab36667a79f6cf20decdf382956956e60dc839a4c90602001610f16565b6005546001600160a01b03163314611f955760405162461bcd60e51b8152600401610b219061367d565b6001600160a01b038116611ffa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b21565b6005546040516001600160a01b038084169216906000805160206139ac83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461206e5760405162461bcd60e51b8152600401610b219061367d565b604051600090339047908381818185875af1925050503d8060008114610b9b576040519150601f19603f3d011682016040523d82523d6000602084013e610b9b565b6005546001600160a01b031633146120da5760405162461bcd60e51b8152600401610b219061367d565b678ac7230489e800008111156121685760405162461bcd60e51b815260206004820152604760248201527f4d6179206e6f7420627579206d6f7265207468616e2031302045544820696e2060448201527f612073696e676c652062757920746f207265647563652073616e64776963682060648201526661747461636b7360c81b608482015260a401610b21565b6040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa1580156121d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f69190613750565b81600081518110612209576122096136b2565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061223d5761223d6136b2565b6001600160a01b03928316602091820292909201015260095460405163b6f9de9560e01b815291169063b6f9de9590849061228590600090869061dead904290600401613869565b6000604051808303818588803b15801561229e57600080fd5b505af11580156122b2573d6000803e3d6000fd5b50505050507fa017c1567cfcdd2d750a8c01e39fe2a846bcebc293c7d078477014d684820568826040516122e891815260200190565b60405180910390a15050565b6001600160a01b0383166123565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b21565b6001600160a01b0382166123b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b21565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661243f5760405162461bcd60e51b8152600401610b219061389e565b6001600160a01b0382166124655760405162461bcd60e51b8152600401610b21906138e3565b600081118061248c57506001600160a01b03831660009081526022602052604090205460ff165b6124e35760405162461bcd60e51b815260206004820152602260248201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604482015261726f60f01b6064820152608401610b21565b601154610100900460ff16612576576001600160a01b03831660009081526022602052604090205460ff168061253157506001600160a01b03821660009081526022602052604090205460ff165b6125765760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610b21565b60115460ff16156129325761258961193f565b6001600160a01b0316836001600160a01b0316141580156125c357506125ad61193f565b6001600160a01b0316826001600160a01b031614155b80156125d757506001600160a01b03821615155b80156125ee57506001600160a01b03821661dead14155b801561261357506001600160a01b03831660009081526022602052604090205460ff16155b801561263857506001600160a01b03821660009081526022602052604090205460ff16155b156129325760135460ff1615612751576009546001600160a01b038381169116148015906126745750600a546001600160a01b03838116911614155b1561275157612684600243613926565b326000908152601260205260409020541080156126c257506126a7600243613926565b6001600160a01b038316600090815260126020526040902054105b61272c5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b6064820152608401610b21565b3260009081526012602052604080822043908190556001600160a01b03851683529120555b6001600160a01b03831660009081526024602052604090205460ff16801561279257506001600160a01b03821660009081526023602052604090205460ff16155b15612833576006548111156127fa5760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610b21565b6008546128068361116c565b61281090836136f7565b111561282e5760405162461bcd60e51b8152600401610b219061393d565b612932565b6001600160a01b03821660009081526024602052604090205460ff16801561287457506001600160a01b03831660009081526023602052604090205460ff16155b156128de5760075481111561282e5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610b21565b6001600160a01b03821660009081526023602052604090205460ff166129325760085461290a8361116c565b61291490836136f7565b11156129325760405162461bcd60e51b8152600401610b219061393d565b600061293d3061116c565b600b549091508110801590819061295c575060115462010000900460ff165b80156129725750600a54600160a01b900460ff16155b801561299757506001600160a01b03851660009081526024602052604090205460ff16155b80156129bc57506001600160a01b03851660009081526022602052604090205460ff16155b80156129e157506001600160a01b03841660009081526022602052604090205460ff16155b15612a0f57600a805460ff60a01b1916600160a01b179055612a01612cb3565b600a805460ff60a01b191690555b6001600160a01b03851660009081526022602052604090205460019060ff1680612a5157506001600160a01b03851660009081526022602052604090205460ff165b15612a5a575060005b60008115612c9f576001600160a01b03861660009081526024602052604090205460ff168015612a8c57506000601954115b15612b7457606460195486612aa1919061370f565b612aab919061372e565b9050601954601b5482612abe919061370f565b612ac8919061372e565b601f6000828254612ad991906136f7565b9091555050601954601a54612aee908361370f565b612af8919061372e565b601e6000828254612b0991906136f7565b9091555050601954601c54612b1e908361370f565b612b28919061372e565b60206000828254612b3991906136f7565b9091555050601954601d54612b4e908361370f565b612b58919061372e565b60216000828254612b6991906136f7565b90915550612c819050565b6001600160a01b03871660009081526024602052604090205460ff168015612b9e57506000601454115b15612c8157606460145486612bb3919061370f565b612bbd919061372e565b905060145460165482612bd0919061370f565b612bda919061372e565b601f6000828254612beb91906136f7565b9091555050601454601554612c00908361370f565b612c0a919061372e565b601e6000828254612c1b91906136f7565b9091555050601454601754612c30908361370f565b612c3a919061372e565b60206000828254612c4b91906136f7565b9091555050601454601854612c60908361370f565b612c6a919061372e565b60216000828254612c7b91906136f7565b90915550505b8015612c9257612c92873083612f7c565b612c9c8186613926565b94505b612caa878787612f7c565b50505050505050565b6000602154118015612ccf5750602154612ccc3061116c565b10155b15612ce057612ce0306021546130d9565b60006021819055612cf03061116c565b90506000602054601e54601f54612d0791906136f7565b612d1191906136f7565b9050811580612d1e575080155b15612d27575050565b600b54612d3590601461370f565b821115612d4d57600b54612d4a90601461370f565b91505b600080600283601f5486612d61919061370f565b612d6b919061372e565b612d75919061372e565b9050612d89612d848286613926565b6131f1565b601f5447908190600090612d9f9060029061372e565b612da99087613926565b601e54612db6908561370f565b612dc0919061372e565b905060006002601f54612dd3919061372e565b612ddd9088613926565b602054612dea908661370f565b612df4919061372e565b9050612e0081836136f7565b612e0a9084613926565b6000601f819055601e819055602081905560215592508415801590612e2f5750600083115b15612e3e57612e3e858461334b565b600d546040516001600160a01b03909116908290600081818185875af1925050503d8060008114612e8b576040519150601f19603f3d011682016040523d82523d6000602084013e612e90565b606091505b5050600c546040519197506001600160a01b0316904790600081818185875af1925050503d8060008114612ee0576040519150601f19603f3d011682016040523d82523d6000602084013e612ee5565b606091505b5050505050505050505050565b6001600160a01b038216600081815260236020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674691016122e8565b6001600160a01b0382166000908152602460205260409020805460ff1916821515179055611a118282612ef2565b6001600160a01b038316612fa25760405162461bcd60e51b8152600401610b219061389e565b6001600160a01b038216612fc85760405162461bcd60e51b8152600401610b21906138e3565b6001600160a01b038084166000908152602081905260408082205492851682529020548282101561304a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b21565b82156130565782613058565b805b6001600160a01b03808716600090815260208190526040808220938603909355908616815290812080548592906130909084906136f7565b92505081905550836001600160a01b0316856001600160a01b03166000805160206139cc833981519152856040516130ca91815260200190565b60405180910390a35050505050565b6001600160a01b0382166131395760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b21565b6001600160a01b038216600090815260208190526040902054818110156131ad5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b21565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192916000805160206139cc833981519152910161240c565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613226576132266136b2565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561327f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a39190613750565b816001815181106132b6576132b66136b2565b6001600160a01b0392831660209182029290920101526009546132dc91309116846122f4565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061331590859060009086903090429060040161396f565b600060405180830381600087803b15801561332f57600080fd5b505af1158015613343573d6000803e3d6000fd5b505050505050565b6009546133639030906001600160a01b0316846122f4565b60095460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906133a29030908790600090819061dead90429060040161376d565b60606040518083038185885af11580156133c0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133e591906137a8565b5050505050565b600060208083528351808285015260005b81811015613419578581018301518582016040015282016133fd565b8181111561342b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461346a57600080fd5b50565b6000806040838503121561348057600080fd5b823561348b81613455565b946020939093013593505050565b6000602082840312156134ab57600080fd5b81356134b681613455565b9392505050565b801515811461346a57600080fd5b6000806000604084860312156134e057600080fd5b83356001600160401b03808211156134f757600080fd5b818601915086601f83011261350b57600080fd5b81358181111561351a57600080fd5b8760208260051b850101111561352f57600080fd5b60209283019550935050840135613545816134bd565b809150509250925092565b60008060006060848603121561356557600080fd5b833561357081613455565b9250602084013561358081613455565b929592945050506040919091013590565b600080600080608085870312156135a757600080fd5b5050823594602084013594506040840135936060013592509050565b6000602082840312156135d557600080fd5b5035919050565b600080604083850312156135ef57600080fd5b82356135fa81613455565b9150602083013561360a816134bd565b809150509250929050565b6000806040838503121561362857600080fd5b823561363381613455565b9150602083013561360a81613455565b600181811c9082168061365757607f821691505b60208210810361367757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016136f0576136f06136c8565b5060010190565b6000821982111561370a5761370a6136c8565b500190565b6000816000190483118215151615613729576137296136c8565b500290565b60008261374b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561376257600080fd5b81516134b681613455565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156137bd57600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03929092168252602082015260400190565b60006020828403121561380157600080fd5b81516134b6816134bd565b60006020828403121561381e57600080fd5b5051919050565b600081518084526020808501945080840160005b8381101561385e5781516001600160a01b031687529582019590820190600101613839565b509495945050505050565b8481526080602082015260006138826080830186613825565b6001600160a01b03949094166040830152506060015292915050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082821015613938576139386136c8565b500390565b60208082526018908201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b604082015260600190565b85815284602082015260a06040820152600061398e60a0830186613825565b6001600160a01b039490941660608301525060800152939250505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d5334e9baa4c159e7998f69e8b4ae6e965e9db65d46ca93edd3a955b252fb30864736f6c634300080f00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0