0x6101206040523480156200001257600080fd5b5060405162001643380380620016438339810160408190526200003591620003e6565b60016000556001600160a01b0383166200006c5760405162461bcd60e51b81526004016200006390620004a1565b60405180910390fd5b6001600160a01b038216620000955760405162461bcd60e51b81526004016200006390620004d8565b6001600160a01b038116620000be5760405162461bcd60e51b815260040162000063906200046a565b6000839050826001600160a01b031660a0816001600160a01b031660601b81525050806001600160a01b0316637f07b1306040518163ffffffff1660e01b815260040160206040518083038186803b1580156200011a57600080fd5b505afa1580156200012f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001559190620003c2565b6001600160a01b0316610100816001600160a01b031660601b815250506000816001600160a01b0316637f07b1306040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ae57600080fd5b505afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620003c2565b60405163095ea7b360e01b815290915083906001600160a01b0383169063095ea7b390620002209088906000199060040162000451565b602060405180830381600087803b1580156200023b57600080fd5b505af115801562000250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027691906200042f565b5060405163095ea7b360e01b81526001600160a01b0382169063095ea7b390620002a99088906000199060040162000451565b602060405180830381600087803b158015620002c457600080fd5b505af1158015620002d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ff91906200042f565b50826001600160a01b0316639d4c94426040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033a57600080fd5b505afa1580156200034f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003759190620003c2565b6001600160601b0319606091821b811660e05291811b821660c0529290921b909116608052506200050f92505050565b80516001600160a01b0381168114620003bd57600080fd5b919050565b600060208284031215620003d4578081fd5b620003df82620003a5565b9392505050565b600080600060608486031215620003fb578182fd5b6200040684620003a5565b92506200041660208501620003a5565b91506200042660408501620003a5565b90509250925092565b60006020828403121562000441578081fd5b81518015158114620003df578182fd5b6001600160a01b03929092168252602082015260400190565b60208082526014908201527f496e76616c696420776574682061646472657373000000000000000000000000604082015260600190565b6020808252601a908201527f496e76616c696420636f6e74726f6c6c65722061646472657373000000000000604082015260600190565b6020808252601b908201527f496e76616c6964207377617020726f7574657220616464726573730000000000604082015260600190565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c611097620005ac60003980610314528061060a52806107b952508061025f528061062e52806106c45280610a1e525080608f528061035452806103aa528061054a52806105e65280610779528061098e52508061043452806108d85280610abe52508060c152806104d752806108125280610a9a52506110976000f3fe60806040526004361061007f5760003560e01c80639d4c94421161004e5780639d4c94421461018f578063e56cfbbe146101a4578063f77c4791146101b7578063f887ea40146101cc5761010a565b8063150b7a021461010f57806317fd9e0e146101455780633fc8cef3146101585780637f07b1301461017a5761010a565b3661010a57336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806100e35750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6101085760405162461bcd60e51b81526004016100ff90610f86565b60405180910390fd5b005b600080fd5b34801561011b57600080fd5b5061012f61012a366004610d1e565b6101e1565b60405161013c9190610eeb565b60405180910390f35b610108610153366004610e0f565b6101f1565b34801561016457600080fd5b5061016d6105e4565b60405161013c9190610eb3565b34801561018657600080fd5b5061016d610608565b34801561019b57600080fd5b5061016d61062c565b6101086101b2366004610e0f565b610650565b3480156101c357600080fd5b5061016d610a98565b3480156101d857600080fd5b5061016d610abc565b630a85bd0160e11b949350505050565b60026000541415610249576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000556040516331a9108f60e11b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9061029c908890600401610fcc565b60206040518083038186803b1580156102b457600080fd5b505afa1580156102c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ec9190610cfb565b6001600160a01b0316146103125760405162461bcd60e51b81526004016100ff90610f4f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681602001516001600160a01b031614801561038c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681600001516001600160a01b0316145b6103a85760405162461bcd60e51b81526004016100ff90610f18565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561040357600080fd5b505af1158015610417573d6000803e3d6000fd5b5050604051631b67c43360e31b8152600093506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063db3e2198915061046b908590600401610fbd565b602060405180830381600087803b15801561048557600080fd5b505af1158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd9190610dd4565b604051638632cb0360e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638632cb039061051090889088908890600401610fd5565b600060405180830381600087803b15801561052a57600080fd5b505af115801561053e573d6000803e3d6000fd5b50506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150632e1a7d4d905061057d3484610ae0565b6040518263ffffffff1660e01b81526004016105999190610fcc565b600060405180830381600087803b1580156105b357600080fd5b505af11580156105c7573d6000803e3d6000fd5b506105d89250339150479050610b42565b50506001600055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260005414156106a8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000558315610777576040516331a9108f60e11b815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90610701908890600401610fcc565b60206040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107519190610cfb565b6001600160a01b0316146107775760405162461bcd60e51b81526004016100ff90610f4f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681602001516001600160a01b03161480156107f157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681600001516001600160a01b0316145b61080d5760405162461bcd60e51b81526004016100ff90610f18565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631bf7bf6c348888886040518563ffffffff1660e01b815260040161086193929190610fd5565b60408051808303818588803b15801561087957600080fd5b505af115801561088d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108b29190610dec565b60a0850181905260405163414bf38960e01b815291935091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063414bf3899061090d908790600401610fbd565b602060405180830381600087803b15801561092757600080fd5b505af115801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190610dd4565b60608501519091506001600160a01b0316301415610a0257604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906109c3908490600401610fcc565b600060405180830381600087803b1580156109dd57600080fd5b505af11580156109f1573d6000803e3d6000fd5b50610a029250339150839050610b42565b86610a8a57604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90610a5790309033908890600401610ec7565b600060405180830381600087803b158015610a7157600080fd5b505af1158015610a85573d6000803e3d6000fd5b505050505b505060016000555050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600082821115610b37576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b80471015610b97576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114610be2576040519150601f19603f3d011682016040523d82523d6000602084013e610be7565b606091505b5050905080610c275760405162461bcd60e51b815260040180806020018281038252603a815260200180611028603a913960400191505060405180910390fd5b505050565b8035610c378161100f565b919050565b6000610100808385031215610c4f578182fd5b6040519081019067ffffffffffffffff82118183101715610c6c57fe5b81604052809250610c7c84610c2c565b8152610c8a60208501610c2c565b6020820152610c9b60408501610ce8565b6040820152610cac60608501610c2c565b60608201526080840135608082015260a084013560a082015260c084013560c0820152610cdb60e08501610c2c565b60e0820152505092915050565b803562ffffff81168114610c3757600080fd5b600060208284031215610d0c578081fd5b8151610d178161100f565b9392505050565b60008060008060808587031215610d33578283fd5b8435610d3e8161100f565b9350602085810135610d4f8161100f565b935060408601359250606086013567ffffffffffffffff80821115610d72578384fd5b818801915088601f830112610d85578384fd5b813581811115610d9157fe5b610da3601f8201601f19168501610feb565b91508082528984828501011115610db8578485fd5b8084840185840137810190920192909252939692955090935050565b600060208284031215610de5578081fd5b5051919050565b60008060408385031215610dfe578182fd5b505080516020909101519092909150565b6000806000806101608587031215610e25578384fd5b843593506020850135925060408501359150610e448660608701610c3c565b905092959194509250565b6001600160a01b0380825116835280602083015116602084015262ffffff60408301511660408401528060608301511660608401526080820151608084015260a082015160a084015260c082015160c08401528060e08301511660e0840152505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116815260200190565b60208082526011908201527f57726f6e67207377617020746f6b656e73000000000000000000000000000000604082015260600190565b6020808252600b908201527f4e6f7420616c6c6f776564000000000000000000000000000000000000000000604082015260600190565b60208082526011908201527f63616e2774207265636569766520657468000000000000000000000000000000604082015260600190565b6101008101610b3c8284610e4f565b90815260200190565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561100757fe5b604052919050565b6001600160a01b038116811461102457600080fd5b5056fe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564a2646970667358221220dca83f927accd8f5dd17b8c7ca8e2147659fcc484c1799c390e51729507a6b9f64736f6c6343000706003300000000000000000000000064187ae08781b09368e6253f9e94951243a493d5000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2