60c06040526005805460ff60a01b1916600160a01b179055348015610022575f80fd5b506040518060400160405280600e81526020016d426162794d617276696e20496e7560901b8152506040518060400160405280600a8152602001692130b13ca6b0b93b34b760b11b815250816003908161007c9190610409565b5060046100898282610409565b5050506100a261009d61025760201b60201c565b61025b565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa1580156100f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b91906104c3565b9050806001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561016b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018f91906104c3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156101d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101fd91906104c3565b6001600160a01b031660a052335f8181526006602090815260408083208054600160ff1991821681179092556009909352922080549091169091179055610251906c054f529ca52576bc68920000006102ac565b50610515565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166103065760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f82825461031791906104f0565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061039a57607f821691505b6020821081036103b857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561036d57805f5260205f20601f840160051c810160208510156103e35750805b601f840160051c820191505b81811015610402575f81556001016103ef565b5050505050565b81516001600160401b0381111561042257610422610372565b610436816104308454610386565b846103be565b6020601f821160018114610468575f83156104515750848201515b5f19600385901b1c1916600184901b178455610402565b5f84815260208120601f198516915b828110156104975787850151825560209485019460019092019101610477565b50848210156104b457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156104d3575f80fd5b81516001600160a01b03811681146104e9575f80fd5b9392505050565b8082018082111561050f57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a0516119606105835f395f81816103a101528181610ce201528181610de701528181610e3e01528181610eae01528181610fd6015281816112e7015261154701525f818161026401528181610f53015281816110b50152818161141601526114bb01526119605ff3fe608060405234801561000f575f80fd5b5060043610610208575f3560e01c806349bd5a5e1161011f578063a9059cbb116100a9578063ccec371611610079578063ccec37161461048b578063dd62ed3e1461049e578063ec5fe42c146104b1578063f2fde38b146104d3578063ffc35dff146104e6575f80fd5b8063a9059cbb1461043b578063c125c8611461044e578063c302273714610461578063c634460b14610469575f80fd5b8063715018a6116100ef578063715018a6146103ff5780638da5cb5b146104075780638ff0c3021461041857806395d89b4114610420578063a457c2d714610428575f80fd5b806349bd5a5e1461039c57806352e706a6146103c357806354ad8aee1461020c57806370a08231146103d7575f80fd5b806323b872dd116101a0578063313ce56711610170578063313ce5671461034157806339509351146103505780633cd150d9146103635780633fe93a8c1461037657806345910e0714610389575f80fd5b806323b872dd146102e557806324b1e031146102f85780632bed0928146103175780632dc0562d14610326575f80fd5b806316c2be6b116101db57806316c2be6b1461029e57806318160ddd146102c05780631c313534146102c857806320800a00146102dd575f80fd5b806302af37bb1461020c57806306fdde0314610227578063095ea7b31461023c5780631694505e1461025f575b5f80fd5b610214600181565b6040519081526020015b60405180910390f35b61022f6104f9565b60405161021e9190611606565b61024f61024a36600461164f565b610589565b604051901515815260200161021e565b6102867f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021e565b61024f6102ac366004611679565b60096020525f908152604090205460ff1681565b600254610214565b6102db6102d636600461169b565b6105a2565b005b6102db610614565b61024f6102f336600461170c565b610655565b610214610306366004611679565b60086020525f908152604090205481565b61021467016345785d8a000081565b6102867302d811086bd9e67511e354a390b61268004d7d4981565b6040516012815260200161021e565b61024f61035e36600461164f565b610678565b6102db610371366004611679565b610699565b6102db610384366004611679565b6106c4565b6102db610397366004611679565b6106ec565b6102867f000000000000000000000000000000000000000000000000000000000000000081565b60055461024f90600160a01b900460ff1681565b6102146103e5366004611679565b6001600160a01b03165f9081526020819052604090205490565b6102db610714565b6005546001600160a01b0316610286565b6102db610727565b61022f610744565b61024f61043636600461164f565b610753565b61024f61044936600461164f565b6107d2565b6102db61045c366004611757565b6107df565b6102db610811565b61024f610477366004611679565b60066020525f908152604090205460ff1681565b6102db610499366004611679565b610828565b6102146104ac36600461178e565b610924565b61024f6104bf366004611679565b60076020525f908152604090205460ff1681565b6102db6104e1366004611679565b61094e565b6102db6104f4366004611679565b6109c4565b606060038054610508906117ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610534906117ba565b801561057f5780601f106105565761010080835404028352916020019161057f565b820191905f5260205f20905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b5f336105968185856109ef565b60019150505b92915050565b6105aa610b12565b5f5b8181101561060f57600160065f8585858181106105cb576105cb6117f2565b90506020020160208101906105e09190611679565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556001016105ac565b505050565b61061c610b12565b6005546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610652573d5f803e3d5ffd5b50565b5f33610662858285610b6c565b61066d858585610be4565b506001949350505050565b5f3361059681858561068a8383610924565b610694919061181a565b6109ef565b6106a1610b12565b6001600160a01b03165f908152600660205260409020805460ff19166001179055565b6106cc610b12565b6001600160a01b03165f908152600660205260409020805460ff19169055565b6106f4610b12565b6001600160a01b03165f908152600760205260409020805460ff19169055565b61071c610b12565b6107255f610efa565b565b61072f610b12565b6005805460ff60a01b1916600160a01b179055565b606060048054610508906117ba565b5f33816107608286610924565b9050838110156107c55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61066d82868684036109ef565b5f33610596818585610be4565b6107e7610b12565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b610819610b12565b6005805460ff60a01b19169055565b610830610b12565b806001600160a01b03811663a9059cbb6108526005546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610894573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b8919061182d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610900573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060f9190611844565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610956610b12565b6001600160a01b0381166109bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107bc565b61065281610efa565b6109cc610b12565b6001600160a01b03165f908152600760205260409020805460ff19166001179055565b6001600160a01b038316610a515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107bc565b6001600160a01b038216610ab25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107bc565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146107255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b5f610b778484610924565b90505f198114610bde5781811015610bd15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107bc565b610bde84848484036109ef565b50505050565b6001600160a01b0383165f9081526007602052604090205460ff16158015610c2457506001600160a01b0382165f9081526007602052604090205460ff16155b610c705760405162461bcd60e51b815260206004820152601960248201527f556e6e65636573736172796c697374656420616464726573730000000000000060448201526064016107bc565b600554600160a01b900460ff1615610dcf57325f9081526006602052604090205460ff16610ce05760405162461bcd60e51b815260206004820152601760248201527f53656e646572206e6f74204163636570746c697374656400000000000000000060448201526064016107bc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610dcf575f610d2382610f4b565b6001600160a01b0384165f9081526008602052604090205490915067016345785d8a000090610d5390839061181a565b1115610da15760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746f74616c207075726368617365206c696d69740000000060448201526064016107bc565b6001600160a01b0383165f9081526008602052604081208054839290610dc890849061181a565b9091555050505b325f9081526009602052604081205460ff16610e8f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610e3c576064610e2b60018461185f565b610e359190611876565b9050610e8f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610e8f576064610e8260018461185f565b610e8c9190611876565b90505b8015610eef57610ea0843083611133565b610eaa8183611895565b91507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610eef57610eed6112d5565b505b610bde848484611133565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f803090505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd191906118a8565b90505f7f000000000000000000000000000000000000000000000000000000000000000090505f80826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611035573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105991906118de565b50915091505f80856001600160a01b0316876001600160a01b031610611080578284611083565b83835b604051630153543560e21b8152600481018c90526001600160701b0380841660248301528216604482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063054d50d490606401602060405180830381865afa158015611102573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611126919061182d565b9998505050505050505050565b6001600160a01b0383166111975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107bc565b6001600160a01b0382166111f95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107bc565b6001600160a01b0383165f90815260208190526040902054818110156112705760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107bc565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610bde565b305f908152602081905260408120545f7f000000000000000000000000000000000000000000000000000000000000000090505f80826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611346573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136a91906118de565b50915091505f80306001600160a01b0316856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113db91906118a8565b6001600160a01b03160361148e57604051630153543560e21b8152600481018790526001600160701b038086166024830152841660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063054d50d490606401602060405180830381865afa158015611463573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611487919061182d565b905061152f565b604051630153543560e21b8152600481018790526001600160701b038085166024830152851660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063054d50d490606401602060405180830381865afa158015611508573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152c919061182d565b91505b8115158061153c57508015155b156115fa5761156c307f000000000000000000000000000000000000000000000000000000000000000088611133565b60405163022c0d9f60e01b815260048101839052602481018290527302d811086bd9e67511e354a390b61268004d7d496044820152608060648201525f60848201526001600160a01b0386169063022c0d9f9060a4015f604051808303815f87803b1580156115d9575f80fd5b505af11580156115eb573d5f803e3d5ffd5b50979998505050505050505050565b5f965050505050505090565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610652575f80fd5b5f8060408385031215611660575f80fd5b823561166b8161163b565b946020939093013593505050565b5f60208284031215611689575f80fd5b81356116948161163b565b9392505050565b5f80602083850312156116ac575f80fd5b823567ffffffffffffffff8111156116c2575f80fd5b8301601f810185136116d2575f80fd5b803567ffffffffffffffff8111156116e8575f80fd5b8560208260051b84010111156116fc575f80fd5b6020919091019590945092505050565b5f805f6060848603121561171e575f80fd5b83356117298161163b565b925060208401356117398161163b565b929592945050506040919091013590565b8015158114610652575f80fd5b5f8060408385031215611768575f80fd5b82356117738161163b565b915060208301356117838161174a565b809150509250929050565b5f806040838503121561179f575f80fd5b82356117aa8161163b565b915060208301356117838161163b565b600181811c908216806117ce57607f821691505b6020821081036117ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561059c5761059c611806565b5f6020828403121561183d575f80fd5b5051919050565b5f60208284031215611854575f80fd5b81516116948161174a565b808202811582820484141761059c5761059c611806565b5f8261189057634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561059c5761059c611806565b5f602082840312156118b8575f80fd5b81516116948161163b565b80516001600160701b03811681146118d9575f80fd5b919050565b5f805f606084860312156118f0575f80fd5b6118f9846118c3565b9250611907602085016118c3565b9150604084015163ffffffff8116811461191f575f80fd5b80915050925092509256fea2646970667358221220dafb44e77564320b6ff7c952a7c10e4b1aba2324997f223376452f94d7a51ca264736f6c634300081a0033