0x60a060405234801561001057600080fd5b50604051610c7c380380610c7c83398101604081905261002f91610039565b1515608052610062565b60006020828403121561004b57600080fd5b8151801515811461005b57600080fd5b9392505050565b608051610bf261008a60003960008181607c0152818161017f01526103140152610bf26000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635a4ff6791461005157806361bc221a1461005b5780639420f4a914610077578063d09de08a146100ae575b600080fd5b6100596100b6565b005b61006460005481565b6040519081526020015b60405180910390f35b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b604051901515815260200161006e565b61005961017d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b61017b334761037b565b565b7f00000000000000000000000000000000000000000000000000000000000000001561023d576101ac336104da565b610238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f436f756e74657252656c6179436f6e74657874455243323737312e696e63726560448201527f6d656e743a20697347656c61746f52656c6179455243323737314465760000006064820152608401610168565b6102d2565b61024633610519565b6102d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f436f756e74657252656c6179436f6e74657874455243323737312e696e63726560448201527f6d656e743a20697347656c61746f52656c6179455243323737310000000000006064820152608401610168565b6000805490806102e183610aa3565b91905055506102ee610591565b7fd26752d6efe11773b4a85cdfa0b3fe9efa9707bd50024c7beaed659a141f78586000547f00000000000000000000000000000000000000000000000000000000000000006103445761033f610623565b61034c565b61034c610662565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301520160405180910390a1565b804710156103e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610168565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461043f576040519150601f19603f3d011682016040523d82523d6000602084013e610444565b606091505b50509050806104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610168565b505050565b60006104e461066d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600046610144148061052c575046610118145b15610561575073ffffffffffffffffffffffffffffffffffffffff167322dcc39b2ac376862183dd35a1664798dafc7da61490565b5073ffffffffffffffffffffffffffffffffffffffff1673b539068872230f20456cf38ec52ef2f91af4ae491490565b61017b367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4013560601c367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc0135367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8013560601c73ffffffffffffffffffffffffffffffffffffffff1691906106b6565b600061062e33610519565b61063757503390565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b600061062e336104da565b6000466101441480610680575046610118145b61069d5750731c256822a1789589013af03574179414332df56790565b5073c334e547a287881a30a9a21a8422e542df0819ed90565b806000036106c357505050565b73ffffffffffffffffffffffffffffffffffffffff831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610715576104d573ffffffffffffffffffffffffffffffffffffffff8416838361071f565b6104d5828261037b565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526104d5928692916000916107ea918516908490610894565b8051909150156104d557808060200190518101906108089190610b02565b6104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610168565b60606108a384846000856108ab565b949350505050565b60608247101561093d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610168565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516109669190610b4f565b60006040518083038185875af1925050503d80600081146109a3576040519150601f19603f3d011682016040523d82523d6000602084013e6109a8565b606091505b50915091506109b9878383876109c4565b979650505050505050565b60608315610a5a578251600003610a535773ffffffffffffffffffffffffffffffffffffffff85163b610a53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610168565b50816108a3565b6108a38383815115610a6f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101689190610b6b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610afb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600060208284031215610b1457600080fd5b81518015158114610b2457600080fd5b9392505050565b60005b83811015610b46578181015183820152602001610b2e565b50506000910152565b60008251610b61818460208701610b2b565b9190910192915050565b6020815260008251806020840152610b8a816040850160208701610b2b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122062621cce16edd4f2add90b161e81ae66930c38f9afb29bc89d0e5a3bdffd181664736f6c634300081300330000000000000000000000000000000000000000000000000000000000000000