0x60806040526004361061021a5760003560e01c806388c3ffb011610123578063c462ec7c116100ab578063f2fde38b1161006f578063f2fde38b1461064d578063f3fef3a31461066d578063f46f00da1461068d578063f6c56e16146106a3578063f8eb5253146106c357600080fd5b8063c462ec7c146105ae578063ca681738146105ce578063d0de8e8b146105ee578063db9b085e1461060d578063de2129041461062d57600080fd5b8063a32bf597116100f2578063a32bf5971461050f578063a694fc3a14610524578063a712c65114610544578063af41d52914610564578063bd71de031461058457600080fd5b806388c3ffb01461048e5780638da5cb5b146104bb5780639030e40f146104d9578063906f0917146104ef57600080fd5b80634452d81c116101a657806376cb479b1161017557806376cb479b146103da5780637ac2ff7b146103f05780637ecebe0014610410578063836700801461044657806384b0196e1461046657600080fd5b80634452d81c146103505780635172162a1461036657806370ad5f241461037c578063715018a6146103c557600080fd5b806328b1e979116101ed57806328b1e979146102c45780633644e515146102d7578063379607f5146102fa5780633bde045f1461031a5780633f7eaaf51461033057600080fd5b80630deefcce1461021f57806311f61596146102415780631593dee11461026c5780631a1862271461028c575b600080fd5b34801561022b57600080fd5b5061023f61023a366004612504565b6106e3565b005b34801561024d57600080fd5b50610256610740565b6040516102639190612521565b60405180910390f35b34801561027857600080fd5b5061023f610287366004612599565b610804565b34801561029857600080fd5b50600a546102ac906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b61023f6102d23660046125da565b610957565b3480156102e357600080fd5b506102ec610b6c565b604051908152602001610263565b34801561030657600080fd5b5061023f6103153660046125da565b610b7b565b34801561032657600080fd5b506102ec600d5481565b34801561033c57600080fd5b506009546102ac906001600160a01b031681565b34801561035c57600080fd5b506102ec60105481565b34801561037257600080fd5b506102ec600b5481565b34801561038857600080fd5b506103b06103973660046125f3565b6013602052600090815260409020805460019091015482565b60408051928352602083019190915201610263565b3480156103d157600080fd5b5061023f610ce1565b3480156103e657600080fd5b506102ec600f5481565b3480156103fc57600080fd5b5061023f61040b36600461261f565b610cf5565b34801561041c57600080fd5b506102ec61042b3660046125f3565b6001600160a01b031660009081526003602052604090205490565b34801561045257600080fd5b5061023f6104613660046125da565b610ee2565b34801561047257600080fd5b5061047b610f10565b60405161026397969594939291906126c1565b34801561049a57600080fd5b506104ae6104a93660046125da565b610f56565b604051610263919061275a565b3480156104c757600080fd5b506000546001600160a01b03166102ac565b3480156104e557600080fd5b506102ec600e5481565b3480156104fb57600080fd5b506008546102ac906001600160a01b031681565b34801561051b57600080fd5b506102ec611051565b34801561053057600080fd5b5061023f61053f3660046125da565b6110ab565b34801561055057600080fd5b5061023f61055f3660046125da565b6111e5565b34801561057057600080fd5b5061023f61057f36600461261f565b61144c565b34801561059057600080fd5b5060115461059e9060ff1681565b6040519015158152602001610263565b3480156105ba57600080fd5b506102ec6105c93660046125da565b611670565b3480156105da57600080fd5b506102ec6105e93660046125da565b6117d6565b3480156105fa57600080fd5b5060115461059e90610100900460ff1681565b34801561061957600080fd5b5061023f6106283660046125da565b6118ee565b34801561063957600080fd5b506102ec6106483660046125da565b61191c565b34801561065957600080fd5b5061023f6106683660046125f3565b611ae8565b34801561067957600080fd5b5061023f610688366004612785565b611b26565b34801561069957600080fd5b506102ec600c5481565b3480156106af57600080fd5b5061023f6106be3660046125da565b611bd1565b3480156106cf57600080fd5b5061023f6106de366004612504565b611bff565b6106eb611c7e565b801515601160019054906101000a900460ff161515036107265760405162461bcd60e51b815260040161071d906127b1565b60405180910390fd5b601180549115156101000261ff0019909216919091179055565b60606000600d5467ffffffffffffffff81111561075f5761075f6127da565b6040519080825280602002602001820160405280156107bb57816020015b6107a86040518060800160405280600081526020016000815260200160008152602001600081525090565b81526020019060019003908161077d5790505b50905060005b600d548110156107fe576107d96104a9826001612806565b8282815181106107eb576107eb612819565b60209081029190910101526001016107c1565b50919050565b61080c611c7e565b6001600160a01b0382166108545760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161071d565b6040516370a0823160e01b815230600482015283906001600160a01b038216906370a0823190602401602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be919061282f565b8211156108dd5760405162461bcd60e51b815260040161071d90612848565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905282169063a9059cbb906044016020604051808303816000875af115801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190612876565b5050505050565b6000610961611051565b601154909150610100900460ff1661098b5760405162461bcd60e51b815260040161071d90612893565b60008111801561099d5750600d548111155b6109b95760405162461bcd60e51b815260040161071d906128c3565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015284928392169063dd62ed3e90604401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061282f565b1015610a505760405162461bcd60e51b815260040161071d906128eb565b6000610a6d6010546064610a649190612806565b85906064611cab565b90506000610a8c6010546064610a839190612918565b86906064611cab565b90506000610a9934611670565b9050818110158015610aab5750828111155b610b015760405162461bcd60e51b815260206004820152602160248201527f736c6970706167652070657263656e74616765206973206f766572206c696d696044820152601d60fa1b606482015260840161071d565b6009546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610b3a573d6000803e3d6000fd5b50610b453382611d6f565b610b4e816117d6565b600e6000828254610b5f9190612806565b9091555050505050505050565b6000610b76611eb2565b905090565b60115460ff161515600114610bd25760405162461bcd60e51b815260206004820152601860248201527f4e6f7420616c6c6f77656420617420746869732074696d650000000000000000604482015260640161071d565b33600090815260136020526040902060010154811115610c045760405162461bcd60e51b815260040161071d90612848565b3360009081526013602052604081206001810154909190610c259084611fdd565b6001840155905080610c665760405162461bcd60e51b815260206004820152600a60248201526914dd588819985a5b195960b21b604482015260640161071d565b60055460405163a9059cbb60e01b8152336004820152602481018590526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb9190612876565b50505050565b610ce9611c7e565b610cf36000612003565b565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015287928392169063dd62ed3e90604401602060405180830381865afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e919061282f565b1015610d8c5760405162461bcd60e51b815260040161071d906128eb565b84421115610db057604051632f4aa44f60e21b81526004810186905260240161071d565b60007fab34ae4484542643a63bb830db3faf368bafb542405f816e266636434e0036db8888610dfc8b6001600160a01b0316600090815260036020526040902080546001810190915590565b6040805160208101959095526001600160a01b03909316928401929092526060830152608082015260a0810187905260c0016040516020818303038152906040528051906020012090506000610e5182612053565b90506000610e6182888888612086565b9050610e756000546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610ecc5780610ea06000546001600160a01b031690565b604051637ba5ffb560e01b81526001600160a01b0392831660048201529116602482015260440161071d565b610ed68a8a6120b4565b50505050505050505050565b610eea611c7e565b8060105403610f0b5760405162461bcd60e51b815260040161071d906127b1565b601055565b600060608060008060006060610f246121c1565b610f2c6121ee565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610f816040518060800160405280600081526020016000815260200160008152602001600081525090565b600082118015610f935750600d548211155b610fd65760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103937bab73210373ab6b132b960611b604482015260640161071d565b60006040518060800160405280848152602001600185610ff69190612918565b600c54611003919061292b565b600b546110109190612806565b815260200184600c54611023919061292b565b600b546110309190612806565b81526000948552601260209081526040909520549401939093525090919050565b600b54600090429081101561106857600091505090565b6000600b54826110789190612918565b90506000600c548261108a9190612958565b611095906001612806565b90506110a3600d548261221b565b935050505090565b336000908152601360205260409020600101548111156110dd5760405162461bcd60e51b815260040161071d90612848565b33600090815260136020526040812060018101546110fb9084611fdd565b6001830155600554600a5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101879052929450169063a9059cbb906044016020604051808303816000875af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b9190612876565b506007546040516356e4bb9760e11b8152336004820152602481018590526001600160a01b039091169063adc9772e90604401600060405180830381600087803b1580156111c857600080fd5b505af11580156111dc573d6000803e3d6000fd5b50505050505050565b60006111ef611051565b601154909150610100900460ff166112195760405162461bcd60e51b815260040161071d90612893565b60008111801561122b5750600d548111155b6112475760405162461bcd60e51b815260040161071d906128c3565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015284928392169063dd62ed3e90604401602060405180830381865afa15801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c0919061282f565b10156112de5760405162461bcd60e51b815260040161071d906128eb565b60006112e9846117d6565b600654604051636eb1769f60e11b815233600482015230602482015291925082916001600160a01b039091169063dd62ed3e90604401602060405180830381865afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611360919061282f565b10156113a55760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161071d565b6006546009546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018490529116906323b872dd906064016020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190612876565b5061142f3385611d6f565b80600e60008282546114419190612806565b909155505050505050565b6000611456611051565b601154909150610100900460ff166114805760405162461bcd60e51b815260040161071d90612893565b6000811180156114925750600d548111155b6114ae5760405162461bcd60e51b815260040161071d906128c3565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015288928392169063dd62ed3e90604401602060405180830381865afa158015611503573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611527919061282f565b10156115455760405162461bcd60e51b815260040161071d906128eb565b8542111561156957604051632f4aa44f60e21b81526004810187905260240161071d565b60007fab34ae4484542643a63bb830db3faf368bafb542405f816e266636434e0036db89896115b58c6001600160a01b0316600090815260036020526040902080546001810190915590565b6040805160208101959095526001600160a01b03909316928401929092526060830152608082015260a0810188905260c001604051602081830303815290604052805190602001209050600061160a82612053565b9050600061161a82898989612086565b905061162e6000546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146116595780610ea06000546001600160a01b031690565b611663338b611d6f565b5050505050505050505050565b60008061167b611051565b601154909150610100900460ff166116a55760405162461bcd60e51b815260040161071d90612893565b6000811180156116b75750600d548111155b6116d35760405162461bcd60e51b815260040161071d906128c3565b6005546040805163313ce56760e01b815290516117cf926001600160a01b03169163313ce5679160048083019260209291908290030181865afa15801561171e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611742919061297a565b61174d90600a612a7b565b6005546040805163313ce56760e01b815290516117c7926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015611798573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bc919061297a565b61064890600a612a7b565b859190611cab565b9392505050565b6000806117e1611051565b601154909150610100900460ff1661180b5760405162461bcd60e51b815260040161071d90612893565b60008111801561181d5750600d548111155b6118395760405162461bcd60e51b815260040161071d906128c3565b600060126000611847611051565b81526020019081526020016000205490506118e681600560009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d3919061297a565b6118de90600a612a7b565b869190611cab565b949350505050565b6118f6611c7e565b80600b54036119175760405162461bcd60e51b815260040161071d906127b1565b600b55565b600080611927611051565b601154909150610100900460ff166119515760405162461bcd60e51b815260040161071d90612893565b6000811180156119635750600d548111155b61197f5760405162461bcd60e51b815260040161071d906128c3565b600061198a846117d6565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190612aa9565b5050509150506000811215611a515760405162461bcd60e51b81526020600482015260126024820152711d5b9cdd5cdd585b081c1c9a58d95199595960721b604482015260640161071d565b611adf81600660009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc919061297a565b611ad790600a612a7b565b849190611cab565b95945050505050565b611af0611c7e565b6001600160a01b038116611b1a57604051631e4fbdf760e01b81526000600482015260240161071d565b611b2381612003565b50565b611b2e611c7e565b6001600160a01b038216611b765760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161071d565b47811115611b965760405162461bcd60e51b815260040161071d90612848565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611bcc573d6000803e3d6000fd5b505050565b611bd9611c7e565b80600c5403611bfa5760405162461bcd60e51b815260040161071d906127b1565b600c55565b611c07611c7e565b60115481151560ff909116151503611c6b5760405162461bcd60e51b815260206004820152602160248201527f546869732073746174757320686173206265656e2065737461626c69736865646044820152601760f91b606482015260840161071d565b6011805460ff1916911515919091179055565b6000546001600160a01b03163314610cf35760405163118cdaa760e01b815233600482015260240161071d565b6000838302816000198587098281108382030391505080600003611ce257838281611cd857611cd8612942565b04925050506117cf565b808411611d025760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600554600854600a546040516323b872dd60e01b81526001600160a01b0392831660048201529082166024820152604481018490529116906323b872dd906064016020604051808303816000875af1158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df39190612876565b506001600160a01b03821660009081526013602052604081208054909190611e1b9084612231565b8355905080611e3c5760405162461bcd60e51b815260040161071d90612af9565b6007546040516356e4bb9760e11b8152336004820152602481018590526001600160a01b039091169063adc9772e90604401600060405180830381600087803b158015611e8857600080fd5b505af1158015611e9c573d6000803e3d6000fd5b5050505082600f60008282546114419190612806565b6000306001600160a01b037f00000000000000000000000035bfc6677e0079b63a1b6a175d48ddfae6688a1a16148015611f0b57507f000000000000000000000000000000000000000000000000000000000000000146145b15611f3557507fa9c1908b13aca3ca2545c975daff53c35c033396f9a1cb9a95e469a12d01a7d790565b610b76604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f2d7f50dd8596b4b69c70201d46a5f4defb071a545ec47691c33040ef4b3df6fa918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008083831115611ff357506000905080611ffc565b50600190508183035b9250929050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000612080612060611eb2565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b60008060008061209888888888612258565b9250925092506120a88282612327565b50909695505050505050565b6005546008546040516323b872dd60e01b81526001600160a01b039182166004820152306024820152604481018490529116906323b872dd906064016020604051808303816000875af115801561210f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121339190612876565b506001600160a01b0382166000908152601360205260408120805490919061215b9084612231565b835590508061217c5760405162461bcd60e51b815260040161071d90612af9565b600182015461218b9084612231565b60018401559050806121af5760405162461bcd60e51b815260040161071d90612af9565b82600f60008282546114419190612806565b6060610b767f5a4350726573616c65000000000000000000000000000000000000000000000960016123e4565b6060610b767f310000000000000000000000000000000000000000000000000000000000000160026123e4565b600081831061222a57816117cf565b5090919050565b6000808383018481101561224c576000809250925050611ffc565b60019590945092505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612293575060009150600390508261231d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156122e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123135750600092506001915082905061231d565b9250600091508190505b9450945094915050565b600082600381111561233b5761233b612b1d565b03612344575050565b600182600381111561235857612358612b1d565b036123765760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561238a5761238a612b1d565b036123ab5760405163fce698f760e01b81526004810182905260240161071d565b60038260038111156123bf576123bf612b1d565b036123e0576040516335e2f38360e21b81526004810182905260240161071d565b5050565b606060ff83146123fe576123f78361248f565b9050612080565b81805461240a90612b33565b80601f016020809104026020016040519081016040528092919081815260200182805461243690612b33565b80156124835780601f1061245857610100808354040283529160200191612483565b820191906000526020600020905b81548152906001019060200180831161246657829003601f168201915b50505050509050612080565b6060600061249c836124ce565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600060ff8216601f81111561208057604051632cd44ac360e21b815260040160405180910390fd5b8015158114611b2357600080fd5b60006020828403121561251657600080fd5b81356117cf816124f6565b6020808252825182820181905260009190848201906040850190845b818110156120a857612571838551805182526020810151602083015260408101516040830152606081015160608301525050565b928401926080929092019160010161253d565b6001600160a01b0381168114611b2357600080fd5b6000806000606084860312156125ae57600080fd5b83356125b981612584565b925060208401356125c981612584565b929592945050506040919091013590565b6000602082840312156125ec57600080fd5b5035919050565b60006020828403121561260557600080fd5b81356117cf81612584565b60ff81168114611b2357600080fd5b60008060008060008060c0878903121561263857600080fd5b863561264381612584565b95506020870135945060408701359350606087013561266181612610565b9598949750929560808101359460a0909101359350915050565b6000815180845260005b818110156126a157602081850181015186830182015201612685565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b881681526000602060e060208401526126e260e084018a61267b565b83810360408501526126f4818a61267b565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156127485783518352928401929184019160010161272c565b50909c9b505050505050505050505050565b8151815260208083015190820152604080830151908201526060808301519082015260808101612080565b6000806040838503121561279857600080fd5b82356127a381612584565b946020939093013593505050565b6020808252600f908201526e139bdd1a1a5b99c818da185b99d959608a1b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115612080576120806127f0565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561284157600080fd5b5051919050565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b60006020828403121561288857600080fd5b81516117cf816124f6565b6020808252601690820152751c1c995cd85b19481a5cc81b9bdd08195b98589b195960521b604082015260600190565b6020808252600e908201526d6e6f7420696e2070726573616c6560901b604082015260600190565b602080825260139082015272696e73756666696369656e7420737570706c7960681b604082015260600190565b81810381811115612080576120806127f0565b8082028115828204841417612080576120806127f0565b634e487b7160e01b600052601260045260246000fd5b60008261297557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561298c57600080fd5b81516117cf81612610565b600181815b808511156129d25781600019048211156129b8576129b86127f0565b808516156129c557918102915b93841c939080029061299c565b509250929050565b6000826129e957506001612080565b816129f657506000612080565b8160018114612a0c5760028114612a1657612a32565b6001915050612080565b60ff841115612a2757612a276127f0565b50506001821b612080565b5060208310610133831016604e8410600b8410161715612a55575081810a612080565b612a5f8383612997565b8060001904821115612a7357612a736127f0565b029392505050565b60006117cf60ff8416836129da565b805169ffffffffffffffffffff81168114612aa457600080fd5b919050565b600080600080600060a08688031215612ac157600080fd5b612aca86612a8a565b9450602086015193506040860151925060608601519150612aed60808701612a8a565b90509295509295909350565b6020808252600a90820152691059190819985a5b195960b21b604082015260600190565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680612b4757607f821691505b6020821081036107fe57634e487b7160e01b600052602260045260246000fdfea264697066735822122098e9d344eb9223f97231c5844cf662ed47bd900ddab41621fadadc2292bb705f64736f6c63430008180033
0x6101606040523480156200001257600080fd5b50604051620032a4380380620032a4833981016040819052620000359162000442565b60408051808201825260098152685a4350726573616c6560b81b602080830191909152825180840190935260018352603160f81b908301529033806200009657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000a18162000359565b50620000af826001620003a9565b61012052620000c0816002620003a9565b61014052815160208084019190912060e052815190820120610100524660a0526200014e60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600480548416928516929092179091556007805483169184169182179055600a805483169091179055600880548216948316949094179093556009805490931691161781556365e1ed70600b5562093a80600c556011805461010061ffff199091161790556003601055600d8190556012602052620242207f71a67924699a20698523213e55fe499d539379d7769cd5567e2c45d583f815a35562025d787f8e1fee8c88a9e04123b21e90cae2727a7715bf522a1e46eb5934ccd05203a6b25562027cb87f0f36ad39aee03e7108cc48f54934702a5f0d4066f10344cebf8198978d86976a5562029bf87fb4fcd034df3d20faa1c133b66d862ce92732727d40916b48ffb4020cb00fe053556202bf207f45429b9195d4ec5c0cf6c69e9c21a4ca0ea773b702c2de5735f85d2631f26746556202e2487f1223f9031f9dca49a7844c397098ce9a4e80513444d0a8bb59820dff564808e455620305707f724fd36bd271795fe7866d4cc83b61084ef704502b00c2e0b28047123b3c1acc5562032c807f855d8d6df66418fea944661cfca175a2245b01f09908f1f662c4fa2b3cbf929955600052620357787fb9bfc87ab6d50430c17fad3d76aa4e9fce5cb9f8a8035e5ad64505fa1e31bdb955620006ac565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602083511015620003c957620003c183620003e2565b9050620003dc565b81620003d684826200056a565b5060ff90505b92915050565b600080829050601f8151111562000410578260405163305a27a960e01b81526004016200008d919062000636565b80516200041d8262000687565b179392505050565b80516001600160a01b03811681146200043d57600080fd5b919050565b60008060008060008060c087890312156200045c57600080fd5b620004678762000425565b9550620004776020880162000425565b9450620004876040880162000425565b9350620004976060880162000425565b9250620004a76080880162000425565b9150620004b760a0880162000425565b90509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004ee57607f821691505b6020821081036200050f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000565576000816000526020600020601f850160051c81016020861015620005405750805b601f850160051c820191505b8181101562000561578281556001016200054c565b5050505b505050565b81516001600160401b03811115620005865762000586620004c3565b6200059e81620005978454620004d9565b8462000515565b602080601f831160018114620005d65760008415620005bd5750858301515b600019600386901b1c1916600185901b17855562000561565b600085815260208120601f198616915b828110156200060757888601518255948401946001909101908401620005e6565b5085821015620006265787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020808352835180602085015260005b81811015620006665785810183015185820160400152820162000648565b506000604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200050f5760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051612b9d6200070760003960006121f5015260006121c801526000611f8c01526000611f6401526000611ebf01526000611ee901526000611f130152612b9d6000f3fe60806040526004361061021a5760003560e01c806388c3ffb011610123578063c462ec7c116100ab578063f2fde38b1161006f578063f2fde38b1461064d578063f3fef3a31461066d578063f46f00da1461068d578063f6c56e16146106a3578063f8eb5253146106c357600080fd5b8063c462ec7c146105ae578063ca681738146105ce578063d0de8e8b146105ee578063db9b085e1461060d578063de2129041461062d57600080fd5b8063a32bf597116100f2578063a32bf5971461050f578063a694fc3a14610524578063a712c65114610544578063af41d52914610564578063bd71de031461058457600080fd5b806388c3ffb01461048e5780638da5cb5b146104bb5780639030e40f146104d9578063906f0917146104ef57600080fd5b80634452d81c116101a657806376cb479b1161017557806376cb479b146103da5780637ac2ff7b146103f05780637ecebe0014610410578063836700801461044657806384b0196e1461046657600080fd5b80634452d81c146103505780635172162a1461036657806370ad5f241461037c578063715018a6146103c557600080fd5b806328b1e979116101ed57806328b1e979146102c45780633644e515146102d7578063379607f5146102fa5780633bde045f1461031a5780633f7eaaf51461033057600080fd5b80630deefcce1461021f57806311f61596146102415780631593dee11461026c5780631a1862271461028c575b600080fd5b34801561022b57600080fd5b5061023f61023a366004612504565b6106e3565b005b34801561024d57600080fd5b50610256610740565b6040516102639190612521565b60405180910390f35b34801561027857600080fd5b5061023f610287366004612599565b610804565b34801561029857600080fd5b50600a546102ac906001600160a01b031681565b6040516001600160a01b039091168152602001610263565b61023f6102d23660046125da565b610957565b3480156102e357600080fd5b506102ec610b6c565b604051908152602001610263565b34801561030657600080fd5b5061023f6103153660046125da565b610b7b565b34801561032657600080fd5b506102ec600d5481565b34801561033c57600080fd5b506009546102ac906001600160a01b031681565b34801561035c57600080fd5b506102ec60105481565b34801561037257600080fd5b506102ec600b5481565b34801561038857600080fd5b506103b06103973660046125f3565b6013602052600090815260409020805460019091015482565b60408051928352602083019190915201610263565b3480156103d157600080fd5b5061023f610ce1565b3480156103e657600080fd5b506102ec600f5481565b3480156103fc57600080fd5b5061023f61040b36600461261f565b610cf5565b34801561041c57600080fd5b506102ec61042b3660046125f3565b6001600160a01b031660009081526003602052604090205490565b34801561045257600080fd5b5061023f6104613660046125da565b610ee2565b34801561047257600080fd5b5061047b610f10565b60405161026397969594939291906126c1565b34801561049a57600080fd5b506104ae6104a93660046125da565b610f56565b604051610263919061275a565b3480156104c757600080fd5b506000546001600160a01b03166102ac565b3480156104e557600080fd5b506102ec600e5481565b3480156104fb57600080fd5b506008546102ac906001600160a01b031681565b34801561051b57600080fd5b506102ec611051565b34801561053057600080fd5b5061023f61053f3660046125da565b6110ab565b34801561055057600080fd5b5061023f61055f3660046125da565b6111e5565b34801561057057600080fd5b5061023f61057f36600461261f565b61144c565b34801561059057600080fd5b5060115461059e9060ff1681565b6040519015158152602001610263565b3480156105ba57600080fd5b506102ec6105c93660046125da565b611670565b3480156105da57600080fd5b506102ec6105e93660046125da565b6117d6565b3480156105fa57600080fd5b5060115461059e90610100900460ff1681565b34801561061957600080fd5b5061023f6106283660046125da565b6118ee565b34801561063957600080fd5b506102ec6106483660046125da565b61191c565b34801561065957600080fd5b5061023f6106683660046125f3565b611ae8565b34801561067957600080fd5b5061023f610688366004612785565b611b26565b34801561069957600080fd5b506102ec600c5481565b3480156106af57600080fd5b5061023f6106be3660046125da565b611bd1565b3480156106cf57600080fd5b5061023f6106de366004612504565b611bff565b6106eb611c7e565b801515601160019054906101000a900460ff161515036107265760405162461bcd60e51b815260040161071d906127b1565b60405180910390fd5b601180549115156101000261ff0019909216919091179055565b60606000600d5467ffffffffffffffff81111561075f5761075f6127da565b6040519080825280602002602001820160405280156107bb57816020015b6107a86040518060800160405280600081526020016000815260200160008152602001600081525090565b81526020019060019003908161077d5790505b50905060005b600d548110156107fe576107d96104a9826001612806565b8282815181106107eb576107eb612819565b60209081029190910101526001016107c1565b50919050565b61080c611c7e565b6001600160a01b0382166108545760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161071d565b6040516370a0823160e01b815230600482015283906001600160a01b038216906370a0823190602401602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be919061282f565b8211156108dd5760405162461bcd60e51b815260040161071d90612848565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905282169063a9059cbb906044016020604051808303816000875af115801561092c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109509190612876565b5050505050565b6000610961611051565b601154909150610100900460ff1661098b5760405162461bcd60e51b815260040161071d90612893565b60008111801561099d5750600d548111155b6109b95760405162461bcd60e51b815260040161071d906128c3565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015284928392169063dd62ed3e90604401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061282f565b1015610a505760405162461bcd60e51b815260040161071d906128eb565b6000610a6d6010546064610a649190612806565b85906064611cab565b90506000610a8c6010546064610a839190612918565b86906064611cab565b90506000610a9934611670565b9050818110158015610aab5750828111155b610b015760405162461bcd60e51b815260206004820152602160248201527f736c6970706167652070657263656e74616765206973206f766572206c696d696044820152601d60fa1b606482015260840161071d565b6009546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610b3a573d6000803e3d6000fd5b50610b453382611d6f565b610b4e816117d6565b600e6000828254610b5f9190612806565b9091555050505050505050565b6000610b76611eb2565b905090565b60115460ff161515600114610bd25760405162461bcd60e51b815260206004820152601860248201527f4e6f7420616c6c6f77656420617420746869732074696d650000000000000000604482015260640161071d565b33600090815260136020526040902060010154811115610c045760405162461bcd60e51b815260040161071d90612848565b3360009081526013602052604081206001810154909190610c259084611fdd565b6001840155905080610c665760405162461bcd60e51b815260206004820152600a60248201526914dd588819985a5b195960b21b604482015260640161071d565b60055460405163a9059cbb60e01b8152336004820152602481018590526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb9190612876565b50505050565b610ce9611c7e565b610cf36000612003565b565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015287928392169063dd62ed3e90604401602060405180830381865afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e919061282f565b1015610d8c5760405162461bcd60e51b815260040161071d906128eb565b84421115610db057604051632f4aa44f60e21b81526004810186905260240161071d565b60007fab34ae4484542643a63bb830db3faf368bafb542405f816e266636434e0036db8888610dfc8b6001600160a01b0316600090815260036020526040902080546001810190915590565b6040805160208101959095526001600160a01b03909316928401929092526060830152608082015260a0810187905260c0016040516020818303038152906040528051906020012090506000610e5182612053565b90506000610e6182888888612086565b9050610e756000546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610ecc5780610ea06000546001600160a01b031690565b604051637ba5ffb560e01b81526001600160a01b0392831660048201529116602482015260440161071d565b610ed68a8a6120b4565b50505050505050505050565b610eea611c7e565b8060105403610f0b5760405162461bcd60e51b815260040161071d906127b1565b601055565b600060608060008060006060610f246121c1565b610f2c6121ee565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610f816040518060800160405280600081526020016000815260200160008152602001600081525090565b600082118015610f935750600d548211155b610fd65760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103937bab73210373ab6b132b960611b604482015260640161071d565b60006040518060800160405280848152602001600185610ff69190612918565b600c54611003919061292b565b600b546110109190612806565b815260200184600c54611023919061292b565b600b546110309190612806565b81526000948552601260209081526040909520549401939093525090919050565b600b54600090429081101561106857600091505090565b6000600b54826110789190612918565b90506000600c548261108a9190612958565b611095906001612806565b90506110a3600d548261221b565b935050505090565b336000908152601360205260409020600101548111156110dd5760405162461bcd60e51b815260040161071d90612848565b33600090815260136020526040812060018101546110fb9084611fdd565b6001830155600554600a5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101879052929450169063a9059cbb906044016020604051808303816000875af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b9190612876565b506007546040516356e4bb9760e11b8152336004820152602481018590526001600160a01b039091169063adc9772e90604401600060405180830381600087803b1580156111c857600080fd5b505af11580156111dc573d6000803e3d6000fd5b50505050505050565b60006111ef611051565b601154909150610100900460ff166112195760405162461bcd60e51b815260040161071d90612893565b60008111801561122b5750600d548111155b6112475760405162461bcd60e51b815260040161071d906128c3565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015284928392169063dd62ed3e90604401602060405180830381865afa15801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c0919061282f565b10156112de5760405162461bcd60e51b815260040161071d906128eb565b60006112e9846117d6565b600654604051636eb1769f60e11b815233600482015230602482015291925082916001600160a01b039091169063dd62ed3e90604401602060405180830381865afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611360919061282f565b10156113a55760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161071d565b6006546009546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018490529116906323b872dd906064016020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114249190612876565b5061142f3385611d6f565b80600e60008282546114419190612806565b909155505050505050565b6000611456611051565b601154909150610100900460ff166114805760405162461bcd60e51b815260040161071d90612893565b6000811180156114925750600d548111155b6114ae5760405162461bcd60e51b815260040161071d906128c3565b600554600854604051636eb1769f60e11b81526001600160a01b03918216600482015230602482015288928392169063dd62ed3e90604401602060405180830381865afa158015611503573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611527919061282f565b10156115455760405162461bcd60e51b815260040161071d906128eb565b8542111561156957604051632f4aa44f60e21b81526004810187905260240161071d565b60007fab34ae4484542643a63bb830db3faf368bafb542405f816e266636434e0036db89896115b58c6001600160a01b0316600090815260036020526040902080546001810190915590565b6040805160208101959095526001600160a01b03909316928401929092526060830152608082015260a0810188905260c001604051602081830303815290604052805190602001209050600061160a82612053565b9050600061161a82898989612086565b905061162e6000546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146116595780610ea06000546001600160a01b031690565b611663338b611d6f565b5050505050505050505050565b60008061167b611051565b601154909150610100900460ff166116a55760405162461bcd60e51b815260040161071d90612893565b6000811180156116b75750600d548111155b6116d35760405162461bcd60e51b815260040161071d906128c3565b6005546040805163313ce56760e01b815290516117cf926001600160a01b03169163313ce5679160048083019260209291908290030181865afa15801561171e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611742919061297a565b61174d90600a612a7b565b6005546040805163313ce56760e01b815290516117c7926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015611798573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bc919061297a565b61064890600a612a7b565b859190611cab565b9392505050565b6000806117e1611051565b601154909150610100900460ff1661180b5760405162461bcd60e51b815260040161071d90612893565b60008111801561181d5750600d548111155b6118395760405162461bcd60e51b815260040161071d906128c3565b600060126000611847611051565b81526020019081526020016000205490506118e681600560009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d3919061297a565b6118de90600a612a7b565b869190611cab565b949350505050565b6118f6611c7e565b80600b54036119175760405162461bcd60e51b815260040161071d906127b1565b600b55565b600080611927611051565b601154909150610100900460ff166119515760405162461bcd60e51b815260040161071d90612893565b6000811180156119635750600d548111155b61197f5760405162461bcd60e51b815260040161071d906128c3565b600061198a846117d6565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190612aa9565b5050509150506000811215611a515760405162461bcd60e51b81526020600482015260126024820152711d5b9cdd5cdd585b081c1c9a58d95199595960721b604482015260640161071d565b611adf81600660009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc919061297a565b611ad790600a612a7b565b849190611cab565b95945050505050565b611af0611c7e565b6001600160a01b038116611b1a57604051631e4fbdf760e01b81526000600482015260240161071d565b611b2381612003565b50565b611b2e611c7e565b6001600160a01b038216611b765760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015260640161071d565b47811115611b965760405162461bcd60e51b815260040161071d90612848565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611bcc573d6000803e3d6000fd5b505050565b611bd9611c7e565b80600c5403611bfa5760405162461bcd60e51b815260040161071d906127b1565b600c55565b611c07611c7e565b60115481151560ff909116151503611c6b5760405162461bcd60e51b815260206004820152602160248201527f546869732073746174757320686173206265656e2065737461626c69736865646044820152601760f91b606482015260840161071d565b6011805460ff1916911515919091179055565b6000546001600160a01b03163314610cf35760405163118cdaa760e01b815233600482015260240161071d565b6000838302816000198587098281108382030391505080600003611ce257838281611cd857611cd8612942565b04925050506117cf565b808411611d025760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600554600854600a546040516323b872dd60e01b81526001600160a01b0392831660048201529082166024820152604481018490529116906323b872dd906064016020604051808303816000875af1158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df39190612876565b506001600160a01b03821660009081526013602052604081208054909190611e1b9084612231565b8355905080611e3c5760405162461bcd60e51b815260040161071d90612af9565b6007546040516356e4bb9760e11b8152336004820152602481018590526001600160a01b039091169063adc9772e90604401600060405180830381600087803b158015611e8857600080fd5b505af1158015611e9c573d6000803e3d6000fd5b5050505082600f60008282546114419190612806565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611f0b57507f000000000000000000000000000000000000000000000000000000000000000046145b15611f3557507f000000000000000000000000000000000000000000000000000000000000000090565b610b76604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008083831115611ff357506000905080611ffc565b50600190508183035b9250929050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000612080612060611eb2565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b60008060008061209888888888612258565b9250925092506120a88282612327565b50909695505050505050565b6005546008546040516323b872dd60e01b81526001600160a01b039182166004820152306024820152604481018490529116906323b872dd906064016020604051808303816000875af115801561210f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121339190612876565b506001600160a01b0382166000908152601360205260408120805490919061215b9084612231565b835590508061217c5760405162461bcd60e51b815260040161071d90612af9565b600182015461218b9084612231565b60018401559050806121af5760405162461bcd60e51b815260040161071d90612af9565b82600f60008282546114419190612806565b6060610b767f000000000000000000000000000000000000000000000000000000000000000060016123e4565b6060610b767f000000000000000000000000000000000000000000000000000000000000000060026123e4565b600081831061222a57816117cf565b5090919050565b6000808383018481101561224c576000809250925050611ffc565b60019590945092505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612293575060009150600390508261231d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156122e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166123135750600092506001915082905061231d565b9250600091508190505b9450945094915050565b600082600381111561233b5761233b612b1d565b03612344575050565b600182600381111561235857612358612b1d565b036123765760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561238a5761238a612b1d565b036123ab5760405163fce698f760e01b81526004810182905260240161071d565b60038260038111156123bf576123bf612b1d565b036123e0576040516335e2f38360e21b81526004810182905260240161071d565b5050565b606060ff83146123fe576123f78361248f565b9050612080565b81805461240a90612b33565b80601f016020809104026020016040519081016040528092919081815260200182805461243690612b33565b80156124835780601f1061245857610100808354040283529160200191612483565b820191906000526020600020905b81548152906001019060200180831161246657829003601f168201915b50505050509050612080565b6060600061249c836124ce565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600060ff8216601f81111561208057604051632cd44ac360e21b815260040160405180910390fd5b8015158114611b2357600080fd5b60006020828403121561251657600080fd5b81356117cf816124f6565b6020808252825182820181905260009190848201906040850190845b818110156120a857612571838551805182526020810151602083015260408101516040830152606081015160608301525050565b928401926080929092019160010161253d565b6001600160a01b0381168114611b2357600080fd5b6000806000606084860312156125ae57600080fd5b83356125b981612584565b925060208401356125c981612584565b929592945050506040919091013590565b6000602082840312156125ec57600080fd5b5035919050565b60006020828403121561260557600080fd5b81356117cf81612584565b60ff81168114611b2357600080fd5b60008060008060008060c0878903121561263857600080fd5b863561264381612584565b95506020870135945060408701359350606087013561266181612610565b9598949750929560808101359460a0909101359350915050565b6000815180845260005b818110156126a157602081850181015186830182015201612685565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b881681526000602060e060208401526126e260e084018a61267b565b83810360408501526126f4818a61267b565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156127485783518352928401929184019160010161272c565b50909c9b505050505050505050505050565b8151815260208083015190820152604080830151908201526060808301519082015260808101612080565b6000806040838503121561279857600080fd5b82356127a381612584565b946020939093013593505050565b6020808252600f908201526e139bdd1a1a5b99c818da185b99d959608a1b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115612080576120806127f0565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561284157600080fd5b5051919050565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b60006020828403121561288857600080fd5b81516117cf816124f6565b6020808252601690820152751c1c995cd85b19481a5cc81b9bdd08195b98589b195960521b604082015260600190565b6020808252600e908201526d6e6f7420696e2070726573616c6560901b604082015260600190565b602080825260139082015272696e73756666696369656e7420737570706c7960681b604082015260600190565b81810381811115612080576120806127f0565b8082028115828204841417612080576120806127f0565b634e487b7160e01b600052601260045260246000fd5b60008261297557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561298c57600080fd5b81516117cf81612610565b600181815b808511156129d25781600019048211156129b8576129b86127f0565b808516156129c557918102915b93841c939080029061299c565b509250929050565b6000826129e957506001612080565b816129f657506000612080565b8160018114612a0c5760028114612a1657612a32565b6001915050612080565b60ff841115612a2757612a276127f0565b50506001821b612080565b5060208310610133831016604e8410600b8410161715612a55575081810a612080565b612a5f8383612997565b8060001904821115612a7357612a736127f0565b029392505050565b60006117cf60ff8416836129da565b805169ffffffffffffffffffff81168114612aa457600080fd5b919050565b600080600080600060a08688031215612ac157600080fd5b612aca86612a8a565b9450602086015193506040860151925060608601519150612aed60808701612a8a565b90509295509295909350565b6020808252600a90820152691059190819985a5b195960b21b604082015260600190565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680612b4757607f821691505b6020821081036107fe57634e487b7160e01b600052602260045260246000fdfea264697066735822122098e9d344eb9223f97231c5844cf662ed47bd900ddab41621fadadc2292bb705f64736f6c63430008180033000000000000000000000000eeb4e2a61d96ad39b869bec8f8e6faf259b19993000000000000000000000000811e963a7e11d81d67c7464dec22dce3459c7cfb00000000000000000000000045f5c79df615b807bd257cfa4961a5cb0e01e6f0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000ee9f2375b4bdf6387aa8265dd4fb8f16512a1d460000000000000000000000009e99758a1fa4ec15ce2c65ae9d2cb3e874b413db