0x60c06040523480156200001157600080fd5b506040516200317b3803806200317b8339810160408190526200003491620000da565b806200004d336000805160206200315b83398151915255565b6000805160206200315b833981519152546040516001600160a01b03909116906000907fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a908290a380516001600160601b0319606091821b8116608052602090920151901b1660a0525062000148565b80516001600160a01b0381168114620000d557600080fd5b919050565b600060408284031215620000ed57600080fd5b604080519081016001600160401b03811182821017156200011e57634e487b7160e01b600052604160045260246000fd5b6040526200012c83620000bd565b81526200013c60208401620000bd565b60208201529392505050565b60805160601c60a05160601c612fa8620001b36000396000818161029301528181610715015281816109ee01528181610bf601528181610d880152818161127e01528181611668015281816118cc0152818161198b0152611e2b015260006104d60152612fa86000f3fe6080604052600436106101a05760003560e01c80637b2d9b2c116100ec578063c2e1e3f41161008a578063d9caed1211610064578063d9caed12146104a4578063dbe55e56146104c4578063de5f6268146104f8578063f6ca71b01461050d57600080fd5b8063c2e1e3f41461044f578063c7af33521461046f578063d38bfff41461048457600080fd5b806396d538bb116100c657806396d538bb146103ca578063aa388af6146103ea578063ad1728cb1461041a578063be88599d1461042f57600080fd5b80637b2d9b2c14610375578063853828b6146103955780639136616a146103aa57600080fd5b8063435356d1116101595780635d36b190116101335780635d36b1901461030a5780635f5152261461031f57806363e373c91461033f57806367c7066c1461035557600080fd5b8063435356d1146102b557806347e7ef24146102d55780635a063f63146102f557600080fd5b80630c340a24146101ac5780630ed57b3a146101de5780630fc3b4c414610200578063103e2f8f146102365780631072cbea14610261578063430bf08a1461028157600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c161052f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ea57600080fd5b506101fe6101f93660046127fa565b61054c565b005b34801561020c57600080fd5b506101c161021b3660046127c0565b6035602052600090815260409020546001600160a01b031681565b34801561024257600080fd5b50610253683635c9adc5dea0000081565b6040519081526020016101d5565b34801561026d57600080fd5b506101fe61027c366004612874565b610587565b34801561028d57600080fd5b506101c17f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c157600080fd5b506101fe6102d0366004612915565b61061d565b3480156102e157600080fd5b506101fe6102f0366004612874565b61070a565b34801561030157600080fd5b506101fe6107d0565b34801561031657600080fd5b506101fe61086f565b34801561032b57600080fd5b5061025361033a3660046127c0565b610915565b34801561034b57600080fd5b50610253609d5481565b34801561036157600080fd5b506039546101c1906001600160a01b031681565b34801561038157600080fd5b506101c1610390366004612af5565b6109b9565b3480156103a157600080fd5b506101fe6109e3565b3480156103b657600080fd5b506101fe6103c5366004612af5565b610e68565b3480156103d657600080fd5b506101fe6103e53660046128a0565b611033565b3480156103f657600080fd5b5061040a6104053660046127c0565b611153565b60405190151581526020016101d5565b34801561042657600080fd5b506101fe6111a2565b34801561043b57600080fd5b506101fe61044a366004612a35565b611246565b34801561045b57600080fd5b506101fe61046a3660046127c0565b61175f565b34801561047b57600080fd5b5061040a6117ec565b34801561049057600080fd5b506101fe61049f3660046127c0565b61181d565b3480156104b057600080fd5b506101fe6104bf366004612833565b6118c1565b3480156104d057600080fd5b506101c17f000000000000000000000000000000000000000000000000000000000000000081565b34801561050457600080fd5b506101fe611980565b34801561051957600080fd5b50610522611f24565b6040516101d59190612b97565b6000610547600080516020612f538339815191525490565b905090565b6105546117ec565b6105795760405162461bcd60e51b815260040161057090612d79565b60405180910390fd5b6105838282611f86565b5050565b61058f6117ec565b6105ab5760405162461bcd60e51b815260040161057090612d79565b6105b482611153565b156106015760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220737570706f72746564206173736574006044820152606401610570565b61058361060c61052f565b6001600160a01b03841690836120eb565b6106256117ec565b6106415760405162461bcd60e51b815260040161057090612d79565b600054610100900460ff168061065a575060005460ff16155b6106bd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610570565b600054610100900460ff161580156106df576000805461ffff19166101011790555b6106ea848484612146565b6106f26111a2565b8015610704576000805461ff00191690555b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107525760405162461bcd60e51b815260040161057090612d42565b600080516020612f33833981519152805460028114156107845760405162461bcd60e51b815260040161057090612db0565b6002825560405162461bcd60e51b815260206004820152601860248201527f757365206465706f736974416c6c282920696e737465616400000000000000006044820152606401610570565b6039546001600160a01b0316331461082a5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74207468652048617276657374657200000000006044820152606401610570565b600080516020612f338339815191528054600281141561085c5760405162461bcd60e51b815260040161057090612db0565b60028255610868612201565b5060019055565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db546001600160a01b0316336001600160a01b03161461090a5760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b6064820152608401610570565b6109133361232d565b565b60006001600160a01b03821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21415610944575050609d5490565b6001600160a01b03821673ae7ab96520de3a18e5e111b5eaab095312d7fe84141561097157506000919050565b60405162461bcd60e51b815260206004820152601860248201527f556e6578706563746564206173736574206164647265737300000000000000006044820152606401610570565b603a81815481106109c957600080fd5b6000918252602090912001546001600160a01b0316905081565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610a325750610a1d61052f565b6001600160a01b0316336001600160a01b0316145b610a8a5760405162461bcd60e51b815260206004820152602360248201527f43616c6c6572206973206e6f7420746865205661756c74206f7220476f7665726044820152623737b960e91b6064820152608401610570565b600080516020612f3383398151915280546002811415610abc5760405162461bcd60e51b815260040161057090612db0565b60028255303115610b3a5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0306001600160a01b0316316040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b2057600080fd5b505af1158015610b34573d6000803e3d6000fd5b50505050505b6040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a082319060240160206040518083038186803b158015610b8757600080fd5b505afa158015610b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbf9190612b0e565b90508015610ccc5760405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb90610c20907f0000000000000000000000000000000000000000000000000000000000000000908590600401612b7e565b602060405180830381600087803b158015610c3a57600080fd5b505af1158015610c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c729190612ad3565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398600083604051610cc3929190612b7e565b60405180910390a25b6040516370a0823160e01b815230600482015260009073ae7ab96520de3a18e5e111b5eaab095312d7fe84906370a082319060240160206040518083038186803b158015610d1957600080fd5b505afa158015610d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d519190612b0e565b90508015610e5e5760405163a9059cbb60e01b815273ae7ab96520de3a18e5e111b5eaab095312d7fe849063a9059cbb90610db2907f0000000000000000000000000000000000000000000000000000000000000000908590600401612b7e565b602060405180830381600087803b158015610dcc57600080fd5b505af1158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e049190612ad3565b5073ae7ab96520de3a18e5e111b5eaab095312d7fe846001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398600083604051610e55929190612b7e565b60405180910390a25b5050600182555050565b610e706117ec565b610e8c5760405162461bcd60e51b815260040161057090612d79565b6036548110610ecd5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610570565b600060368281548110610ee257610ee2612ef1565b60009182526020808320909101546001600160a01b03908116808452603590925260409092205460365491935090911690610f1f90600190612e67565b831015610fa15760368054610f3690600190612e67565b81548110610f4657610f46612ef1565b600091825260209091200154603680546001600160a01b039092169185908110610f7257610f72612ef1565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6036805480610fb257610fb2612edb565b60008281526020808220600019908401810180546001600160a01b031990811690915593019093556001600160a01b038581168083526035855260409283902080549094169093559051908416815290917f16b7600acff27e39a8a96056b3d533045298de927507f5c1d97e4accde60488c910160405180910390a2505050565b61103b6117ec565b6110575760405162461bcd60e51b815260040161057090612d79565b8060005b8181101561110a57600084848381811061107757611077612ef1565b905060200201602081019061108c91906127c0565b6001600160a01b031614156110fa5760405162461bcd60e51b815260206004820152602e60248201527f43616e206e6f742073657420616e20656d70747920616464726573732061732060448201526d30903932bbb0b932103a37b5b2b760911b6064820152608401610570565b61110381612eaa565b905061105b565b507f04c0b9649497d316554306e53678d5f5f5dbc3a06f97dec13ff4cfe98b986bbc603a848460405161113f93929190612be4565b60405180910390a1610704603a8484612678565b60006001600160a01b03821673ae7ab96520de3a18e5e111b5eaab095312d7fe84148061119c57506001600160a01b03821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2145b92915050565b60405163095ea7b360e01b815273ae7ab96520de3a18e5e111b5eaab095312d7fe849063095ea7b3906111f19073889edc2edab5f40e902b864ad4d7ade8e412f9b19060001990600401612b7e565b602060405180830381600087803b15801561120b57600080fd5b505af115801561121f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112439190612ad3565b50565b600080516020612f33833981519152805460028114156112785760405162461bcd60e51b815260040161057090612db0565b600282557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663570d8e1d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d557600080fd5b505afa1580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d91906127dd565b6001600160a01b0316336001600160a01b03161461136d5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f74207468652053747261746567697374000000006044820152606401610570565b6000306001600160a01b0316319050600073889edc2edab5f40e902b864ad4d7ade8e412f9b16001600160a01b031663526eae3e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156113cb57600080fd5b505afa1580156113df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114039190612b0e565b604051633155f1fd60e11b815290915060009073889edc2edab5f40e902b864ad4d7ade8e412f9b1906362abe3fa90611445908a906001908790600401612cc8565b60006040518083038186803b15801561145d57600080fd5b505afa158015611471573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611499919081019061299d565b60405163e3afe0a360e01b815290915073889edc2edab5f40e902b864ad4d7ade8e412f9b19063e3afe0a3906114d5908a908590600401612c9a565b600060405180830381600087803b1580156114ef57600080fd5b505af1158015611503573d6000803e3d6000fd5b505030319150600090506115178583612e67565b905087611525826002612e2d565b101580156115335750878111155b61157f5760405162461bcd60e51b815260206004820152601e60248201527f5769746864726177616c20616d6f756e74206e6f7420657870656374656400006044820152606401610570565b7f267cc6358f56dbb41cd8f8e92ba8480d6ff784fb4f18a6aa22e386bf2bacb47e89826040516115b0929190612ced565b60405180910390a180609d60008282546115ca9190612e67565b9250508190555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561162057600080fd5b505af1158015611634573d6000803e3d6000fd5b505060405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2935063a9059cbb925061169291507f0000000000000000000000000000000000000000000000000000000000000000908690600401612b7e565b602060405180830381600087803b1580156116ac57600080fd5b505af11580156116c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e49190612ad3565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b639873889edc2edab5f40e902b864ad4d7ade8e412f9b184604051611748929190612b7e565b60405180910390a250505050506001825550505050565b6117676117ec565b6117835760405162461bcd60e51b815260040161057090612d79565b603954604080516001600160a01b03928316815291831660208301527fe48386b84419f4d36e0f96c10cc3510b6fb1a33795620c5098b22472bbe90796910160405180910390a1603980546001600160a01b0319166001600160a01b0392909216919091179055565b6000611804600080516020612f538339815191525490565b6001600160a01b0316336001600160a01b031614905090565b6118256117ec565b6118415760405162461bcd60e51b815260040161057090612d79565b611869817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b806001600160a01b0316611889600080516020612f538339815191525490565b6001600160a01b03167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146119095760405162461bcd60e51b815260040161057090612d42565b600080516020612f338339815191528054600281141561193b5760405162461bcd60e51b815260040161057090612db0565b6002825560405162461bcd60e51b815260206004820152601660248201527575736520636c61696d5769746864726177616c73282960501b6044820152606401610570565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146119c85760405162461bcd60e51b815260040161057090612d42565b600080516020612f33833981519152805460028114156119fa5760405162461bcd60e51b815260040161057090612db0565b600282556040516370a0823160e01b815230600482015260009073ae7ab96520de3a18e5e111b5eaab095312d7fe84906370a082319060240160206040518083038186803b158015611a4b57600080fd5b505afa158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a839190612b0e565b905060008111611acc5760405162461bcd60e51b81526020600482015260146024820152734e6f20737445544820746f20776974686472617760601b6044820152606401610570565b6000611ae1683635c9adc5dea0000083612e45565b611aec906001612e2d565b905060008167ffffffffffffffff811115611b0957611b09612f07565b604051908082528060200260200182016040528015611b32578160200160208202803683370190505b5090508260005b683635c9adc5dea00000821115611b9657683635c9adc5dea000008382611b5f81612eaa565b935081518110611b7157611b71612ef1565b6020908102919091010152611b8f683635c9adc5dea0000083612e67565b9150611b39565b81838281518110611ba957611ba9612ef1565b6020908102919091010152604051636b34082160e11b815260009073889edc2edab5f40e902b864ad4d7ade8e412f9b19063d668104290611bf09087903090600401612c70565b600060405180830381600087803b158015611c0a57600080fd5b505af1158015611c1e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c46919081019061299d565b90507f4a54e868001801e435d72d0f5a4ead23b6be3f49544fcfde1b83dd6d779a50f48185604051611c79929190612c9a565b60405180910390a16040516370a0823160e01b815230600482015260009073ae7ab96520de3a18e5e111b5eaab095312d7fe84906370a082319060240160206040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d069190612b0e565b905085811115611d585760405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c20737445746820696e207769746864726177207175657565006044820152606401610570565b86609d6000828254611d6a9190612e2d565b90915550506040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a082319060240160206040518083038186803b158015611dbc57600080fd5b505afa158015611dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df49190612b0e565b90508015611ea95760405163a9059cbb60e01b815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29063a9059cbb90611e55907f0000000000000000000000000000000000000000000000000000000000000000908590600401612b7e565b602060405180830381600087803b158015611e6f57600080fd5b505af1158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea79190612ad3565b505b73ae7ab96520de3a18e5e111b5eaab095312d7fe846001600160a01b03167f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6273889edc2edab5f40e902b864ad4d7ade8e412f9b18a604051611f0c929190612b7e565b60405180910390a25050505050505050600182555050565b6060603a805480602002602001604051908101604052809291908181526020018280548015611f7c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611f5e575b5050505050905090565b6001600160a01b038281166000908152603560205260409020541615611fe35760405162461bcd60e51b81526020600482015260126024820152711c151bdad95b88185b1c9958591e481cd95d60721b6044820152606401610570565b6001600160a01b0382161580159061200357506001600160a01b03811615155b6120435760405162461bcd60e51b8152602060048201526011602482015270496e76616c69642061646472657373657360781b6044820152606401610570565b6001600160a01b03828116600081815260356020908152604080832080549587166001600160a01b031996871681179091556036805460018101825594527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b890930180549095168417909455925190815290917fef6485b84315f9b1483beffa32aae9a0596890395e3d7521f1c5fbb51790e765910160405180910390a261058382826123ee565b6121418363a9059cbb60e01b848460405160240161210a929190612b7e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261242c565b505050565b825161215990603a9060208601906126db565b508151815181146121a35760405162461bcd60e51b8152602060048201526014602482015273496e76616c696420696e7075742061727261797360601b6044820152606401610570565b60005b818110156121fa576121ea8482815181106121c3576121c3612ef1565b60200260200101518483815181106121dd576121dd612ef1565b6020026020010151611f86565b6121f381612eaa565b90506121a6565b5050505050565b603a5460005b81811015610583576000603a828154811061222457612224612ef1565b60009182526020822001546040516370a0823160e01b81523060048201526001600160a01b03909116925082906370a082319060240160206040518083038186803b15801561227257600080fd5b505afa158015612286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122aa9190612b0e565b9050801561231a57603954604080516001600160a01b039283168152918416602083015281018290527ff6c07a063ed4e63808eb8da7112d46dbcd38de2b40a73dbcc9353c5a94c723539060600160405180910390a160395461231a906001600160a01b038481169116836120eb565b50508061232690612eaa565b9050612207565b6001600160a01b0381166123835760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f7220697320616464726573732830290000000000006044820152606401610570565b806001600160a01b03166123a3600080516020612f538339815191525490565b6001600160a01b03167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a361124381600080516020612f5383398151915255565b60405162461bcd60e51b8152602060048201526013602482015272139bc81c151bdad95b9cc8185c99481d5cd959606a1b6044820152606401610570565b6000612481826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166124fe9092919063ffffffff16565b805190915015612141578080602001905181019061249f9190612ad3565b6121415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610570565b606061250d8484600085612517565b90505b9392505050565b6060824710156125785760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610570565b843b6125c65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610570565b600080866001600160a01b031685876040516125e29190612b62565b60006040518083038185875af1925050503d806000811461261f576040519150601f19603f3d011682016040523d82523d6000602084013e612624565b606091505b509150915061263482828661263f565b979650505050505050565b6060831561264e575081612510565b82511561265e5782518084602001fd5b8160405162461bcd60e51b81526004016105709190612d0f565b8280548282559060005260206000209081019282156126cb579160200282015b828111156126cb5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190612698565b506126d7929150612730565b5090565b8280548282559060005260206000209081019282156126cb579160200282015b828111156126cb57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906126fb565b5b808211156126d75760008155600101612731565b600082601f83011261275657600080fd5b8135602061276b61276683612e09565b612dd8565b80838252828201915082860187848660051b890101111561278b57600080fd5b60005b858110156127b35781356127a181612f1d565b8452928401929084019060010161278e565b5090979650505050505050565b6000602082840312156127d257600080fd5b813561251081612f1d565b6000602082840312156127ef57600080fd5b815161251081612f1d565b6000806040838503121561280d57600080fd5b823561281881612f1d565b9150602083013561282881612f1d565b809150509250929050565b60008060006060848603121561284857600080fd5b833561285381612f1d565b9250602084013561286381612f1d565b929592945050506040919091013590565b6000806040838503121561288757600080fd5b823561289281612f1d565b946020939093013593505050565b600080602083850312156128b357600080fd5b823567ffffffffffffffff808211156128cb57600080fd5b818501915085601f8301126128df57600080fd5b8135818111156128ee57600080fd5b8660208260051b850101111561290357600080fd5b60209290920196919550909350505050565b60008060006060848603121561292a57600080fd5b833567ffffffffffffffff8082111561294257600080fd5b61294e87838801612745565b9450602086013591508082111561296457600080fd5b61297087838801612745565b9350604086013591508082111561298657600080fd5b5061299386828701612745565b9150509250925092565b600060208083850312156129b057600080fd5b825167ffffffffffffffff8111156129c757600080fd5b8301601f810185136129d857600080fd5b80516129e661276682612e09565b80828252848201915084840188868560051b8701011115612a0657600080fd5b600094505b83851015612a29578051835260019490940193918501918501612a0b565b50979650505050505050565b60008060408385031215612a4857600080fd5b823567ffffffffffffffff811115612a5f57600080fd5b8301601f81018513612a7057600080fd5b80356020612a8061276683612e09565b80838252828201915082850189848660051b8801011115612aa057600080fd5b600095505b84861015612ac3578035835260019590950194918301918301612aa5565b5098969091013596505050505050565b600060208284031215612ae557600080fd5b8151801515811461251057600080fd5b600060208284031215612b0757600080fd5b5035919050565b600060208284031215612b2057600080fd5b5051919050565b600081518084526020808501945080840160005b83811015612b5757815187529582019590820190600101612b3b565b509495945050505050565b60008251612b74818460208701612e7e565b9190910192915050565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015612bd85783516001600160a01b031683529284019291840191600101612bb3565b50909695505050505050565b6000604082016040835280865480835260608501915087600052602092508260002060005b82811015612c2e5781546001600160a01b031684529284019260019182019101612c09565b505050838103828501528481528590820160005b86811015612a29578235612c5581612f1d565b6001600160a01b031682529183019190830190600101612c42565b604081526000612c836040830185612b27565b905060018060a01b03831660208301529392505050565b604081526000612cad6040830185612b27565b8281036020840152612cbf8185612b27565b95945050505050565b606081526000612cdb6060830186612b27565b60208301949094525060400152919050565b604081526000612d006040830185612b27565b90508260208301529392505050565b6020815260008251806020840152612d2e816040850160208701612e7e565b601f01601f19169190910160400192915050565b60208082526017908201527f43616c6c6572206973206e6f7420746865205661756c74000000000000000000604082015260600190565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715612e0157612e01612f07565b604052919050565b600067ffffffffffffffff821115612e2357612e23612f07565b5060051b60200190565b60008219821115612e4057612e40612ec5565b500190565b600082612e6257634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612e7957612e79612ec5565b500390565b60005b83811015612e99578181015183820152602001612e81565b838111156107045750506000910152565b6000600019821415612ebe57612ebe612ec5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461124357600080fdfe53bf423e48ed90e97d02ab0ebab13b2a235a6bfbe9c321847d5c175333ac45357bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa26469706673582212200d001b4ed3702f39738f6174c782e705705d58a4c1baf1b496b042fe9beb051e64736f6c634300080700337bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039254033945aa2e4809cc2977e7087bee48bd7ab