0x60806040526004361061033d575f3560e01c806375e3661e116101b2578063c18bc195116100f2578063e19b282311610092578063f2fde38b1161006d578063f2fde38b14610956578063f8b45b0514610975578063f9f92be414610903578063fe575a871461098a575f80fd5b8063e19b282314610903578063e2f4560514610922578063eba4c33314610937575f80fd5b8063d257b34f116100cd578063d257b34f14610876578063d608b3b214610895578063d85ba063146108aa578063dd62ed3e146108bf575f80fd5b8063c18bc1951461082d578063c8c8ebe41461084c578063cc2ffe7c14610861575f80fd5b80639a7a23d61161015d578063a9059cbb11610138578063a9059cbb146107a3578063b62496f5146107c2578063bbc0c742146107f0578063c02466681461080e575f80fd5b80639a7a23d6146107515780639e78fb4f14610770578063a457c2d714610784575f80fd5b80638da5cb5b1161018d5780638da5cb5b14610701578063924de9b71461071e57806395d89b411461073d575f80fd5b806375e3661e146106af578063809d458d146106ce5780638a8c523c146106ed575f80fd5b80635c068a8c1161027d5780636ddd17131161022857806371fc46881161020357806371fc46881461062a578063735de9f714610649578063751039fc1461067c5780637571336a14610690575f80fd5b80636ddd1713146105c357806370a08231146105e2578063715018a614610616575f80fd5b80636a486a8e116102585780636a486a8e1461057a5780636a964e6b1461058f5780636b2fb124146105ae575f80fd5b80635c068a8c146105325780635f18936114610547578063690d83201461055b575f80fd5b8063313ce567116102e85780634626402b116102c35780634626402b1461048757806349bd5a5e146104c35780634a62bb65146104e25780634fbee193146104fb575f80fd5b8063313ce5671461042d57806339509351146104485780633dc599ff14610467575f80fd5b806318160ddd1161031857806318160ddd146103cf578063203e727e146103ed57806323b872dd1461040e575f80fd5b806306fdde0314610348578063095ea7b31461037257806310d5de53146103a1575f80fd5b3661034457005b5f80fd5b348015610353575f80fd5b5061035c6109c1565b60405161036991906127e7565b60405180910390f35b34801561037d575f80fd5b5061039161038c366004612830565b610a51565b6040519015158152602001610369565b3480156103ac575f80fd5b506103916103bb36600461285a565b60156020525f908152604090205460ff1681565b3480156103da575f80fd5b506002545b604051908152602001610369565b3480156103f8575f80fd5b5061040c610407366004612875565b610a67565b005b348015610419575f80fd5b5061039161042836600461288c565b610b74565b348015610438575f80fd5b5060405160128152602001610369565b348015610453575f80fd5b50610391610462366004612830565b610c31565b348015610472575f80fd5b50600d54610391906301000000900460ff1681565b348015610492575f80fd5b506008546104ab9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610369565b3480156104ce575f80fd5b506006546104ab906001600160a01b031681565b3480156104ed575f80fd5b50600d546103919060ff1681565b348015610506575f80fd5b5061039161051536600461285a565b6001600160a01b03165f9081526014602052604090205460ff1690565b34801561053d575f80fd5b506103df60105481565b348015610552575f80fd5b5061040c610c6c565b348015610566575f80fd5b5061040c61057536600461285a565b610cc8565b348015610585575f80fd5b506103df60115481565b34801561059a575f80fd5b506009546104ab906001600160a01b031681565b3480156105b9575f80fd5b506103df60125481565b3480156105ce575f80fd5b50600d546103919062010000900460ff1681565b3480156105ed575f80fd5b506103df6105fc36600461285a565b6001600160a01b03165f9081526020819052604090205490565b348015610621575f80fd5b5061040c610d6e565b348015610635575f80fd5b5061040c610644366004612875565b610dc0565b348015610654575f80fd5b506104ab7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610687575f80fd5b50610391610e11565b34801561069b575f80fd5b5061040c6106aa3660046128d9565b610e6a565b3480156106ba575f80fd5b5061040c6106c936600461285a565b610edb565b3480156106d9575f80fd5b5061040c6106e836600461285a565b610f42565b3480156106f8575f80fd5b5061040c611007565b34801561070c575f80fd5b506005546001600160a01b03166104ab565b348015610729575f80fd5b5061040c61073836600461290c565b611061565b348015610748575f80fd5b5061035c6110c4565b34801561075c575f80fd5b5061040c61076b3660046128d9565b6110d3565b34801561077b575f80fd5b5061040c6111a8565b34801561078f575f80fd5b5061039161079e366004612830565b6113d2565b3480156107ae575f80fd5b506103916107bd366004612830565b611482565b3480156107cd575f80fd5b506103916107dc36600461285a565b60166020525f908152604090205460ff1681565b3480156107fb575f80fd5b50600d5461039190610100900460ff1681565b348015610819575f80fd5b5061040c6108283660046128d9565b61148e565b348015610838575f80fd5b5061040c610847366004612875565b611533565b348015610857575f80fd5b506103df600a5481565b34801561086c575f80fd5b506103df60135481565b348015610881575f80fd5b50610391610890366004612875565b61163a565b3480156108a0575f80fd5b506103df60075481565b3480156108b5575f80fd5b506103df600f5481565b3480156108ca575f80fd5b506103df6108d9366004612925565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561090e575f80fd5b5061040c61091d36600461285a565b611691565b34801561092d575f80fd5b506103df600b5481565b348015610942575f80fd5b5061040c610951366004612875565b611828565b348015610961575f80fd5b5061040c61097036600461285a565b611879565b348015610980575f80fd5b506103df600c5481565b348015610995575f80fd5b506103916109a436600461285a565b6001600160a01b03165f908152600e602052604090205460ff1690565b6060600380546109d09061295c565b80601f01602080910402602001604051908101604052809291908181526020018280546109fc9061295c565b8015610a475780601f10610a1e57610100808354040283529160200191610a47565b820191905f5260205f20905b815481529060010190602001808311610a2a57829003601f168201915b5050505050905090565b5f610a5d338484611948565b5060015b92915050565b6005546001600160a01b03163314610ab35760405162461bcd60e51b815260206004820181905260248201525f80516020612aa483398151915260448201526064015b60405180910390fd5b670de0b6b3a76400006103e8610ac860025490565b610ad39060056129a8565b610add91906129bf565b610ae791906129bf565b811015610b5c5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201527f6c6f776572207468616e20302e352500000000000000000000000000000000006064820152608401610aaa565b610b6e81670de0b6b3a76400006129a8565b600a5550565b5f610b80848484611a9f565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c195760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610aaa565b610c268533858403611948565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a5d918590610c679086906129de565b611948565b6005546001600160a01b03163314610cb35760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d805463ff00000019166301000000179055565b6005546001600160a01b03163314610d0f5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114610d58576040519150601f19603f3d011682016040523d82523d5f602084013e610d5d565b606091505b5050905080610d6a575f80fd5b5050565b6005546001600160a01b03163314610db55760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b610dbe5f612215565b565b6005546001600160a01b03163314610e075760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6010819055600f55565b6005545f906001600160a01b03163314610e5a5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b50600d805460ff19169055600190565b6005546001600160a01b03163314610eb15760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f225760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b03165f908152600e60205260409020805460ff19169055565b6005546001600160a01b03163314610f895760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6008546040516001600160a01b036101009092048216918316907f02f8a1483978974a6412ba3a67040b4daa4fc0dfe9439a7295f9a9538394f635905f90a3600880546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6005546001600160a01b0316331461104e5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d805462ffff00191662010100179055565b6005546001600160a01b031633146110a85760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d8054911515620100000262ff000019909216919091179055565b6060600480546109d09061295c565b6005546001600160a01b0316331461111a5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6006546001600160a01b039081169083160361119e5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610aaa565b610d6a8282612273565b6005546001600160a01b031633146111ef5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126f91906129f1565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe91906129f1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611360573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138491906129f1565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691821790556113bb906001610e6a565b600654610dbe906001600160a01b03166001612273565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561146b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6114783385858403611948565b5060019392505050565b5f610a5d338484611a9f565b6005546001600160a01b031633146114d55760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b0382165f81815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461157a5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b670de0b6b3a76400006103e861158f60025490565b61159a90600a6129a8565b6115a491906129bf565b6115ae91906129bf565b8110156116225760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060448201527f312e3025000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b61163481670de0b6b3a76400006129a8565b600c5550565b6005545f906001600160a01b031633146116835760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b50600b81905560015b919050565b6005546001600160a01b031633146116d85760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d546301000000900460ff16156117585760405162461bcd60e51b815260206004820152602160248201527f5465616d20686173207265766f6b656420626c61636b6c69737420726967687460448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6006546001600160a01b0382811691161480159061179357506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b6118055760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f7420626c61636b6c69737420746f6b656e277320763220726f757460448201527f6572206f7220763220706f6f6c2e0000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b03165f908152600e60205260409020805460ff19166001179055565b6005546001600160a01b0316331461186f5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6012819055601155565b6005546001600160a01b031633146118c05760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b03811661193c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610aaa565b61194581612215565b50565b6001600160a01b0383166119c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b038216611a3f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aaa565b6001600160a01b038216611b655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aaa565b6001600160a01b0383165f908152600e602052604090205460ff1615611bcd5760405162461bcd60e51b815260206004820152601260248201527f53656e64657220626c61636b6c697374656400000000000000000000000000006044820152606401610aaa565b6001600160a01b0382165f908152600e602052604090205460ff1615611c355760405162461bcd60e51b815260206004820152601460248201527f526563656976657220626c61636b6c69737465640000000000000000000000006044820152606401610aaa565b805f03611c4c57611c4783835f6122c6565b505050565b600d5460ff1615611fc5576005546001600160a01b03848116911614801590611c8357506005546001600160a01b03838116911614155b8015611c9757506001600160a01b03821615155b8015611ca6575060085460ff16155b15611fc557600d54610100900460ff16611d43576001600160a01b0383165f9081526014602052604090205460ff1680611cf757506001600160a01b0382165f9081526014602052604090205460ff165b611d435760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e000000000000000000006044820152606401610aaa565b6001600160a01b0383165f9081526016602052604090205460ff168015611d8257506001600160a01b0382165f9081526015602052604090205460ff16155b15611e7757600a54811115611dff5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d61785472616e73616374696f6e416d6f756e742e00000000000000000000006064820152608401610aaa565b600c546001600160a01b0383165f90815260208190526040902054611e2490836129de565b1115611e725760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610aaa565b611fc5565b6001600160a01b0382165f9081526016602052604090205460ff168015611eb657506001600160a01b0383165f9081526015602052604090205460ff16155b15611f3357600a54811115611e725760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61785472616e73616374696f6e416d6f756e742e000000000000000000006064820152608401610aaa565b6001600160a01b0382165f9081526015602052604090205460ff16611fc557600c546001600160a01b0383165f90815260208190526040902054611f7790836129de565b1115611fc55760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610aaa565b305f90815260208190526040902054600b5481108015908190611ff05750600d5462010000900460ff165b8015611fff575060085460ff16155b801561202357506001600160a01b0385165f9081526016602052604090205460ff16155b801561204757506001600160a01b0385165f9081526014602052604090205460ff16155b801561206b57506001600160a01b0384165f9081526014602052604090205460ff16155b15612090576008805460ff191660011790556120856124aa565b6008805460ff191690555b6008546001600160a01b0386165f9081526014602052604090205460ff918216159116806120d557506001600160a01b0385165f9081526014602052604090205460ff165b156120dd57505f5b5f8115612201576001600160a01b0386165f9081526016602052604090205460ff16801561210c57505f601154115b1561216957612131606461212b601154886125f090919063ffffffff16565b90612602565b90506011546012548261214491906129a8565b61214e91906129bf565b60135f82825461215e91906129de565b909155506121e39050565b6001600160a01b0387165f9081526016602052604090205460ff16801561219157505f600f54115b156121e3576121b0606461212b600f54886125f090919063ffffffff16565b9050600f54601054826121c391906129a8565b6121cd91906129bf565b60135f8282546121dd91906129de565b90915550505b80156121f4576121f48730836122c6565b6121fe8186612a0c565b94505b61220c8787876122c6565b50505050505050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661232a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aaa565b6001600160a01b03821661238c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aaa565b6001600160a01b0383165f908152602081905260409020548181101561241a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906124509084906129de565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161249c91815260200190565b60405180910390a350505050565b305f908152602081905260408120546013549091808315806124ca575082155b156124d55750505050565b600b546124e39060146129a8565b8411156124fb57600b546124f89060146129a8565b93505b83476125068261260d565b5f61251147836127dc565b90505f6013819055508060075f82825461252b91906129de565b909155505060085461010090046001600160a01b031661254c6002836129bf565b6040515f81818185875af1925050503d805f8114612585576040519150601f19603f3d011682016040523d82523d5f602084013e61258a565b606091505b50506009549095506001600160a01b03166125a66002836129bf565b6040515f81818185875af1925050503d805f81146125df576040519150601f19603f3d011682016040523d82523d5f602084013e6125e4565b606091505b50505050505050505050565b5f6125fb82846129a8565b9392505050565b5f6125fb82846129bf565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061264057612640612a1f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126e091906129f1565b816001815181106126f3576126f3612a1f565b60200260200101906001600160a01b031690816001600160a01b03168152505061273e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611948565b6040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906127ab9085905f90869030904290600401612a33565b5f604051808303815f87803b1580156127c2575f80fd5b505af11580156127d4573d5f803e3d5ffd5b505050505050565b5f6125fb8284612a0c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611945575f80fd5b5f8060408385031215612841575f80fd5b823561284c8161281c565b946020939093013593505050565b5f6020828403121561286a575f80fd5b81356125fb8161281c565b5f60208284031215612885575f80fd5b5035919050565b5f805f6060848603121561289e575f80fd5b83356128a98161281c565b925060208401356128b98161281c565b929592945050506040919091013590565b8035801515811461168c575f80fd5b5f80604083850312156128ea575f80fd5b82356128f58161281c565b9150612903602084016128ca565b90509250929050565b5f6020828403121561291c575f80fd5b6125fb826128ca565b5f8060408385031215612936575f80fd5b82356129418161281c565b915060208301356129518161281c565b809150509250929050565b600181811c9082168061297057607f821691505b60208210810361298e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a6157610a61612994565b5f826129d957634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a6157610a61612994565b5f60208284031215612a01575f80fd5b81516125fb8161281c565b81810381811115610a6157610a61612994565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015612a835783516001600160a01b0316835260209384019390920191600101612a5c565b50506001600160a01b03959095166060840152505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122090a2c68ba1636b0e3af6641a94e72a6c7023124d35f1f3d34d21500f8d0890d864736f6c634300081a0033
0x60a06040525f600755600d805463ffffffff19166001179055348015610023575f80fd5b506040518060400160405280600d81526020016c4574686572204368617269747960981b815250604051806040016040528060078152602001664368617269747960c81b815250816003908161007991906104dd565b50600461008682826104dd565b505050610098326101f960201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d6100b881600161024a565b6001600160a01b0381166080526a108b2a2c28029094000000600a819055600c556004806b033b2e3c9fd0803ce80000006127106100f78260056105ab565b61010191906105c8565b600b556010839055600f839055601282905560118290556008805474182e7e70e6a66b7ee14dae3c66b6fd4ece67dcdd00610100600160a81b0319909116179055600980546001600160a01b03191673d8da6bf26964af9d7eed9e03e53415d37aa9604517905561018461017d6005546001600160a01b031690565b60016102c0565b61018f3060016102c0565b6101ab6101a46005546001600160a01b031690565b600161024a565b6101b630600161024a565b6101d5326101c5600a846105c8565b6101d09060096105ab565b610365565b6009546101f0906001600160a01b03166101d0600a846105c8565b505050506105fa565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b031633146102965760405162461bcd60e51b815260206004820181905260248201525f8051602061312e83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201525f8051602061312e833981519152604482015260640161028d565b6001600160a01b0382165f81815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166103bb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161028d565b8060025f8282546103cc91906105e7565b90915550506001600160a01b0382165f90815260208190526040812080548392906103f89084906105e7565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061046e57607f821691505b60208210810361048c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561044157805f5260205f20601f840160051c810160208510156104b75750805b601f840160051c820191505b818110156104d6575f81556001016104c3565b5050505050565b81516001600160401b038111156104f6576104f6610446565b61050a81610504845461045a565b84610492565b6020601f82116001811461053c575f83156105255750848201515b5f19600385901b1c1916600184901b1784556104d6565b5f84815260208120601f198516915b8281101561056b578785015182556020948501946001909201910161054b565b508482101561058857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105c2576105c2610597565b92915050565b5f826105e257634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156105c2576105c2610597565b608051612af96106355f395f818161065a015281816111f1015281816112800152818161266201528181612719015261276e0152612af95ff3fe60806040526004361061033d575f3560e01c806375e3661e116101b2578063c18bc195116100f2578063e19b282311610092578063f2fde38b1161006d578063f2fde38b14610956578063f8b45b0514610975578063f9f92be414610903578063fe575a871461098a575f80fd5b8063e19b282314610903578063e2f4560514610922578063eba4c33314610937575f80fd5b8063d257b34f116100cd578063d257b34f14610876578063d608b3b214610895578063d85ba063146108aa578063dd62ed3e146108bf575f80fd5b8063c18bc1951461082d578063c8c8ebe41461084c578063cc2ffe7c14610861575f80fd5b80639a7a23d61161015d578063a9059cbb11610138578063a9059cbb146107a3578063b62496f5146107c2578063bbc0c742146107f0578063c02466681461080e575f80fd5b80639a7a23d6146107515780639e78fb4f14610770578063a457c2d714610784575f80fd5b80638da5cb5b1161018d5780638da5cb5b14610701578063924de9b71461071e57806395d89b411461073d575f80fd5b806375e3661e146106af578063809d458d146106ce5780638a8c523c146106ed575f80fd5b80635c068a8c1161027d5780636ddd17131161022857806371fc46881161020357806371fc46881461062a578063735de9f714610649578063751039fc1461067c5780637571336a14610690575f80fd5b80636ddd1713146105c357806370a08231146105e2578063715018a614610616575f80fd5b80636a486a8e116102585780636a486a8e1461057a5780636a964e6b1461058f5780636b2fb124146105ae575f80fd5b80635c068a8c146105325780635f18936114610547578063690d83201461055b575f80fd5b8063313ce567116102e85780634626402b116102c35780634626402b1461048757806349bd5a5e146104c35780634a62bb65146104e25780634fbee193146104fb575f80fd5b8063313ce5671461042d57806339509351146104485780633dc599ff14610467575f80fd5b806318160ddd1161031857806318160ddd146103cf578063203e727e146103ed57806323b872dd1461040e575f80fd5b806306fdde0314610348578063095ea7b31461037257806310d5de53146103a1575f80fd5b3661034457005b5f80fd5b348015610353575f80fd5b5061035c6109c1565b60405161036991906127e7565b60405180910390f35b34801561037d575f80fd5b5061039161038c366004612830565b610a51565b6040519015158152602001610369565b3480156103ac575f80fd5b506103916103bb36600461285a565b60156020525f908152604090205460ff1681565b3480156103da575f80fd5b506002545b604051908152602001610369565b3480156103f8575f80fd5b5061040c610407366004612875565b610a67565b005b348015610419575f80fd5b5061039161042836600461288c565b610b74565b348015610438575f80fd5b5060405160128152602001610369565b348015610453575f80fd5b50610391610462366004612830565b610c31565b348015610472575f80fd5b50600d54610391906301000000900460ff1681565b348015610492575f80fd5b506008546104ab9061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610369565b3480156104ce575f80fd5b506006546104ab906001600160a01b031681565b3480156104ed575f80fd5b50600d546103919060ff1681565b348015610506575f80fd5b5061039161051536600461285a565b6001600160a01b03165f9081526014602052604090205460ff1690565b34801561053d575f80fd5b506103df60105481565b348015610552575f80fd5b5061040c610c6c565b348015610566575f80fd5b5061040c61057536600461285a565b610cc8565b348015610585575f80fd5b506103df60115481565b34801561059a575f80fd5b506009546104ab906001600160a01b031681565b3480156105b9575f80fd5b506103df60125481565b3480156105ce575f80fd5b50600d546103919062010000900460ff1681565b3480156105ed575f80fd5b506103df6105fc36600461285a565b6001600160a01b03165f9081526020819052604090205490565b348015610621575f80fd5b5061040c610d6e565b348015610635575f80fd5b5061040c610644366004612875565b610dc0565b348015610654575f80fd5b506104ab7f000000000000000000000000000000000000000000000000000000000000000081565b348015610687575f80fd5b50610391610e11565b34801561069b575f80fd5b5061040c6106aa3660046128d9565b610e6a565b3480156106ba575f80fd5b5061040c6106c936600461285a565b610edb565b3480156106d9575f80fd5b5061040c6106e836600461285a565b610f42565b3480156106f8575f80fd5b5061040c611007565b34801561070c575f80fd5b506005546001600160a01b03166104ab565b348015610729575f80fd5b5061040c61073836600461290c565b611061565b348015610748575f80fd5b5061035c6110c4565b34801561075c575f80fd5b5061040c61076b3660046128d9565b6110d3565b34801561077b575f80fd5b5061040c6111a8565b34801561078f575f80fd5b5061039161079e366004612830565b6113d2565b3480156107ae575f80fd5b506103916107bd366004612830565b611482565b3480156107cd575f80fd5b506103916107dc36600461285a565b60166020525f908152604090205460ff1681565b3480156107fb575f80fd5b50600d5461039190610100900460ff1681565b348015610819575f80fd5b5061040c6108283660046128d9565b61148e565b348015610838575f80fd5b5061040c610847366004612875565b611533565b348015610857575f80fd5b506103df600a5481565b34801561086c575f80fd5b506103df60135481565b348015610881575f80fd5b50610391610890366004612875565b61163a565b3480156108a0575f80fd5b506103df60075481565b3480156108b5575f80fd5b506103df600f5481565b3480156108ca575f80fd5b506103df6108d9366004612925565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561090e575f80fd5b5061040c61091d36600461285a565b611691565b34801561092d575f80fd5b506103df600b5481565b348015610942575f80fd5b5061040c610951366004612875565b611828565b348015610961575f80fd5b5061040c61097036600461285a565b611879565b348015610980575f80fd5b506103df600c5481565b348015610995575f80fd5b506103916109a436600461285a565b6001600160a01b03165f908152600e602052604090205460ff1690565b6060600380546109d09061295c565b80601f01602080910402602001604051908101604052809291908181526020018280546109fc9061295c565b8015610a475780601f10610a1e57610100808354040283529160200191610a47565b820191905f5260205f20905b815481529060010190602001808311610a2a57829003601f168201915b5050505050905090565b5f610a5d338484611948565b5060015b92915050565b6005546001600160a01b03163314610ab35760405162461bcd60e51b815260206004820181905260248201525f80516020612aa483398151915260448201526064015b60405180910390fd5b670de0b6b3a76400006103e8610ac860025490565b610ad39060056129a8565b610add91906129bf565b610ae791906129bf565b811015610b5c5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201527f6c6f776572207468616e20302e352500000000000000000000000000000000006064820152608401610aaa565b610b6e81670de0b6b3a76400006129a8565b600a5550565b5f610b80848484611a9f565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c195760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610aaa565b610c268533858403611948565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a5d918590610c679086906129de565b611948565b6005546001600160a01b03163314610cb35760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d805463ff00000019166301000000179055565b6005546001600160a01b03163314610d0f5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114610d58576040519150601f19603f3d011682016040523d82523d5f602084013e610d5d565b606091505b5050905080610d6a575f80fd5b5050565b6005546001600160a01b03163314610db55760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b610dbe5f612215565b565b6005546001600160a01b03163314610e075760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6010819055600f55565b6005545f906001600160a01b03163314610e5a5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b50600d805460ff19169055600190565b6005546001600160a01b03163314610eb15760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f225760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b03165f908152600e60205260409020805460ff19169055565b6005546001600160a01b03163314610f895760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6008546040516001600160a01b036101009092048216918316907f02f8a1483978974a6412ba3a67040b4daa4fc0dfe9439a7295f9a9538394f635905f90a3600880546001600160a01b03909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6005546001600160a01b0316331461104e5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d805462ffff00191662010100179055565b6005546001600160a01b031633146110a85760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d8054911515620100000262ff000019909216919091179055565b6060600480546109d09061295c565b6005546001600160a01b0316331461111a5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6006546001600160a01b039081169083160361119e5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610aaa565b610d6a8282612273565b6005546001600160a01b031633146111ef5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126f91906129f1565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe91906129f1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611360573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138491906129f1565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691821790556113bb906001610e6a565b600654610dbe906001600160a01b03166001612273565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561146b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6114783385858403611948565b5060019392505050565b5f610a5d338484611a9f565b6005546001600160a01b031633146114d55760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b0382165f81815260146020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461157a5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b670de0b6b3a76400006103e861158f60025490565b61159a90600a6129a8565b6115a491906129bf565b6115ae91906129bf565b8110156116225760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060448201527f312e3025000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b61163481670de0b6b3a76400006129a8565b600c5550565b6005545f906001600160a01b031633146116835760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b50600b81905560015b919050565b6005546001600160a01b031633146116d85760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b600d546301000000900460ff16156117585760405162461bcd60e51b815260206004820152602160248201527f5465616d20686173207265766f6b656420626c61636b6c69737420726967687460448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6006546001600160a01b0382811691161480159061179357506001600160a01b038116737a250d5630b4cf539739df2c5dacb4c659f2488d14155b6118055760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f7420626c61636b6c69737420746f6b656e277320763220726f757460448201527f6572206f7220763220706f6f6c2e0000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b03165f908152600e60205260409020805460ff19166001179055565b6005546001600160a01b0316331461186f5760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6012819055601155565b6005546001600160a01b031633146118c05760405162461bcd60e51b815260206004820181905260248201525f80516020612aa48339815191526044820152606401610aaa565b6001600160a01b03811661193c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610aaa565b61194581612215565b50565b6001600160a01b0383166119c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b038216611a3f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aaa565b6001600160a01b038216611b655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aaa565b6001600160a01b0383165f908152600e602052604090205460ff1615611bcd5760405162461bcd60e51b815260206004820152601260248201527f53656e64657220626c61636b6c697374656400000000000000000000000000006044820152606401610aaa565b6001600160a01b0382165f908152600e602052604090205460ff1615611c355760405162461bcd60e51b815260206004820152601460248201527f526563656976657220626c61636b6c69737465640000000000000000000000006044820152606401610aaa565b805f03611c4c57611c4783835f6122c6565b505050565b600d5460ff1615611fc5576005546001600160a01b03848116911614801590611c8357506005546001600160a01b03838116911614155b8015611c9757506001600160a01b03821615155b8015611ca6575060085460ff16155b15611fc557600d54610100900460ff16611d43576001600160a01b0383165f9081526014602052604090205460ff1680611cf757506001600160a01b0382165f9081526014602052604090205460ff165b611d435760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e000000000000000000006044820152606401610aaa565b6001600160a01b0383165f9081526016602052604090205460ff168015611d8257506001600160a01b0382165f9081526015602052604090205460ff16155b15611e7757600a54811115611dff5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d61785472616e73616374696f6e416d6f756e742e00000000000000000000006064820152608401610aaa565b600c546001600160a01b0383165f90815260208190526040902054611e2490836129de565b1115611e725760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610aaa565b611fc5565b6001600160a01b0382165f9081526016602052604090205460ff168015611eb657506001600160a01b0383165f9081526015602052604090205460ff16155b15611f3357600a54811115611e725760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d61785472616e73616374696f6e416d6f756e742e000000000000000000006064820152608401610aaa565b6001600160a01b0382165f9081526015602052604090205460ff16611fc557600c546001600160a01b0383165f90815260208190526040902054611f7790836129de565b1115611fc55760405162461bcd60e51b815260206004820152601360248201527f4d61782077616c6c6574206578636565646564000000000000000000000000006044820152606401610aaa565b305f90815260208190526040902054600b5481108015908190611ff05750600d5462010000900460ff165b8015611fff575060085460ff16155b801561202357506001600160a01b0385165f9081526016602052604090205460ff16155b801561204757506001600160a01b0385165f9081526014602052604090205460ff16155b801561206b57506001600160a01b0384165f9081526014602052604090205460ff16155b15612090576008805460ff191660011790556120856124aa565b6008805460ff191690555b6008546001600160a01b0386165f9081526014602052604090205460ff918216159116806120d557506001600160a01b0385165f9081526014602052604090205460ff165b156120dd57505f5b5f8115612201576001600160a01b0386165f9081526016602052604090205460ff16801561210c57505f601154115b1561216957612131606461212b601154886125f090919063ffffffff16565b90612602565b90506011546012548261214491906129a8565b61214e91906129bf565b60135f82825461215e91906129de565b909155506121e39050565b6001600160a01b0387165f9081526016602052604090205460ff16801561219157505f600f54115b156121e3576121b0606461212b600f54886125f090919063ffffffff16565b9050600f54601054826121c391906129a8565b6121cd91906129bf565b60135f8282546121dd91906129de565b90915550505b80156121f4576121f48730836122c6565b6121fe8186612a0c565b94505b61220c8787876122c6565b50505050505050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661232a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aaa565b6001600160a01b03821661238c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aaa565b6001600160a01b0383165f908152602081905260409020548181101561241a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610aaa565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906124509084906129de565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161249c91815260200190565b60405180910390a350505050565b305f908152602081905260408120546013549091808315806124ca575082155b156124d55750505050565b600b546124e39060146129a8565b8411156124fb57600b546124f89060146129a8565b93505b83476125068261260d565b5f61251147836127dc565b90505f6013819055508060075f82825461252b91906129de565b909155505060085461010090046001600160a01b031661254c6002836129bf565b6040515f81818185875af1925050503d805f8114612585576040519150601f19603f3d011682016040523d82523d5f602084013e61258a565b606091505b50506009549095506001600160a01b03166125a66002836129bf565b6040515f81818185875af1925050503d805f81146125df576040519150601f19603f3d011682016040523d82523d5f602084013e6125e4565b606091505b50505050505050505050565b5f6125fb82846129a8565b9392505050565b5f6125fb82846129bf565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061264057612640612a1f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126e091906129f1565b816001815181106126f3576126f3612a1f565b60200260200101906001600160a01b031690816001600160a01b03168152505061273e307f000000000000000000000000000000000000000000000000000000000000000084611948565b6040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906127ab9085905f90869030904290600401612a33565b5f604051808303815f87803b1580156127c2575f80fd5b505af11580156127d4573d5f803e3d5ffd5b505050505050565b5f6125fb8284612a0c565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611945575f80fd5b5f8060408385031215612841575f80fd5b823561284c8161281c565b946020939093013593505050565b5f6020828403121561286a575f80fd5b81356125fb8161281c565b5f60208284031215612885575f80fd5b5035919050565b5f805f6060848603121561289e575f80fd5b83356128a98161281c565b925060208401356128b98161281c565b929592945050506040919091013590565b8035801515811461168c575f80fd5b5f80604083850312156128ea575f80fd5b82356128f58161281c565b9150612903602084016128ca565b90509250929050565b5f6020828403121561291c575f80fd5b6125fb826128ca565b5f8060408385031215612936575f80fd5b82356129418161281c565b915060208301356129518161281c565b809150509250929050565b600181811c9082168061297057607f821691505b60208210810361298e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a6157610a61612994565b5f826129d957634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a6157610a61612994565b5f60208284031215612a01575f80fd5b81516125fb8161281c565b81810381811115610a6157610a61612994565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015612a835783516001600160a01b0316835260209384019390920191600101612a5c565b50506001600160a01b03959095166060840152505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122090a2c68ba1636b0e3af6641a94e72a6c7023124d35f1f3d34d21500f8d0890d864736f6c634300081a00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572