0x60806040526003805464ffffffffff19166178001790556103f26004556103e8600555606460065534801561003357600080fd5b506001600081905580546001600160a01b031916331790556135e28061005a6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806392e2507811610104578063d0645c51116100a2578063e1fd632e11610071578063e1fd632e146103c9578063f2fde38b146103dc578063f5474d84146103ef578063f7ad504314610402576101cf565b8063d0645c5114610388578063d26e1dff1461039b578063d3ad656b146103a3578063d3e703cf146103b6576101cf565b8063b2fb13c2116100de578063b2fb13c214610352578063b30075fc1461035a578063b9c947611461036d578063cc2f609314610380576101cf565b806392e2507814610319578063937084851461032c578063a6b6be8c1461033f576101cf565b8063686f38f0116101715780636b4049551161014b5780636b404955146102d6578063757c4e1c146102eb578063802fb940146102fe5780638da5cb5b14610311576101cf565b8063686f38f01461029b5780636a9dc0da146102b05780636aa29881146102c3576101cf565b806347628f60116101ad57806347628f601461021a5780634fb52c701461023a57806355f575101461024d5780635ccfb71d1461027a576101cf565b80631d27050f146101d457806331c14ac6146101e95780633c1d5df0146101fc575b600080fd5b6101e76101e2366004612f10565b610415565b005b6101e76101f7366004612984565b61049d565b610204610572565b60405161021191906134a6565b60405180910390f35b61022d610228366004612bee565b610583565b6040516102119190612f41565b6101e7610248366004612e18565b610837565b61026061025b366004612984565b610896565b6040516102119e9d9c9b9a999897969594939291906130ad565b61028d6102883660046129d8565b610924565b604051610211929190613498565b6102a3610d97565b60405161021191906130a2565b6101e76102be366004612a5d565b610da0565b6101e76102d1366004612c5f565b610ec5565b6102de611076565b604051610211919061348f565b61028d6102f9366004612a18565b61107c565b6101e761030c366004612b0b565b61132a565b61022d611454565b6102a36103273660046129a0565b611463565b6102de61033a366004612c22565b611495565b6102a361034d366004612b89565b6115d1565b6101e76116f8565b6101e7610368366004612e18565b61175f565b6101e761037b366004612b3b565b6117be565b6102de6118ba565b6101e76103963660046129a0565b6118c0565b6102de611991565b6101e76103b1366004612984565b611997565b6101e76103c4366004612bb4565b611a5d565b6101e76103d7366004612e18565b611b2e565b6101e76103ea366004612984565b611b8d565b6102a36103fd366004612e6b565b611c17565b6101e7610410366004612984565b611f55565b6001546001600160a01b031633146104485760405162461bcd60e51b815260040161043f90613339565b60405180910390fd5b6003805464ffffffff00191661010063ffffffff8416021790556040517fa715e512c9ea089998019d7ece21b384bb7161dc3caf500058fdcb05bc4232f8906104929083906134a6565b60405180910390a150565b6001546001600160a01b031633146104c75760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff1661050a5760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b03831660009081526002602052604090819020805463ff0000001916630100000017815590517f3ab598f022d1ad649eef5db68128f85debd6a7bf6a29ae11d4b01dd110ef15b790610564908690612f41565b60405180910390a150505050565b600354610100900463ffffffff1681565b600063ffffffff821661068057826001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c957600080fd5b505afa1580156105dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106019190612d54565b6001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561063957600080fd5b505afa15801561064d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106719190612d8a565b50949550610831945050505050565b60408051600280825260608201835260009260208301908036833701905050905082816000815181106106af57fe5b602002602001019063ffffffff16908163ffffffff16815250506000816001815181106106d857fe5b602002602001019063ffffffff16908163ffffffff16815250506000846001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561072d57600080fd5b505afa158015610741573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107659190612d54565b6001600160a01b031663883bdbfd836040518263ffffffff1660e01b81526004016107909190613058565b60006040518083038186803b1580156107a857600080fd5b505afa1580156107bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107e49190810190612c8c565b50905061082c8463ffffffff16826000815181106107fe57fe5b60200260200101518360018151811061081357fe5b60200260200101510360060b8161082657fe5b0561202a565b925050505b92915050565b6001546001600160a01b031633146108615760405162461bcd60e51b815260040161043f90613339565b60068190556040517fa1e8a7779c35eb2e6161f5b0a5dbf6bcaf16f317d166788bfae1ea33eb210fc09061049290839061348f565b6002602081905260009182526040909120805460018201549282015460038301546004840154600585015460069095015460ff808616976101008704821697620100008804831697630100000081048416976401000000008204851697650100000000008304861697600160301b84049096169667010000000000000090930463ffffffff1695919390928e565b600080846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561096057600080fd5b505afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190612d54565b6001600160a01b0316846001600160a01b03161480610a385750846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156109eb57600080fd5b505afa1580156109ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a239190612d54565b6001600160a01b0316846001600160a01b0316145b610a545760405162461bcd60e51b815260040161043f90613181565b60008311610a745760405162461bcd60e51b815260040161043f906131ef565b600080866001600160a01b031663c4a7761e6040518163ffffffff1660e01b8152600401604080518083038186803b158015610aaf57600080fd5b505afa158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae79190612e48565b91509150866001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2457600080fd5b505afa158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5c9190612e30565b1580610b66575081155b80610b6f575080155b15610cf35760009350866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb157600080fd5b505afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190612d54565b6001600160a01b0316866001600160a01b03161415610c7a57866001600160a01b0316634d461fbb6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3b57600080fd5b505afa158015610c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c739190612e30565b9250610cee565b866001600160a01b031663648cab856040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb357600080fd5b505afa158015610cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ceb9190612e30565b92505b610d8d565b6001600160a01b0387166000908152600260205260408120548190610100900460ff16610d2b57610d268989868661107c565b610d5c565b6001600160a01b03891660009081526002602052604090206005810154600690910154610d5c918b918b919061107c565b91509150610d7387670de0b6b3a764000084612369565b9550610d8887670de0b6b3a764000083612369565b945050505b5050935093915050565b60035460ff1681565b6001546001600160a01b03163314610dca5760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03821660009081526002602052604090208054839190600160301b900460ff16610e0d5760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b0384166000908152600260205260408120905b84518160ff161015610e84576001826007016000878460ff1681518110610e4a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610e27565b507f587820c8cbf51b999284b47677716a04cf5da2568b643ec21ef498bd201baea98585604051610eb6929190612f6f565b60405180910390a15050505050565b6001546001600160a01b03163314610eef5760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03821660009081526002602052604090208054600160301b900460ff1615610f305760405162461bcd60e51b815260040161043f9061325d565b60008260ff1611610f535760405162461bcd60e51b815260040161043f90613421565b818160000160066101000a81548160ff021916908360ff160217905550610ff883600019856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb057600080fd5b505afa158015610fc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe89190612d54565b6001600160a01b03169190612419565b61103883600019856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb057600080fd5b7f0ffbdaa00809b1cda17f454a21810d6fb0be19db2adc1be661c5ec0a86a2894c838360405161106992919061303c565b60405180910390a1505050565b60045481565b600080856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b857600080fd5b505afa1580156110cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f09190612d54565b6001600160a01b0316856001600160a01b031614806111905750856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561114357600080fd5b505afa158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b9190612d54565b6001600160a01b0316856001600160a01b0316145b6111ac5760405162461bcd60e51b815260040161043f90613181565b856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e557600080fd5b505afa1580156111f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121d9190612d54565b6001600160a01b0316856001600160a01b031614156112b05761127161124e6004548661254690919063ffffffff16565b670de0b6b3a764000061126c6005548761254690919063ffffffff16565b612369565b91506112a961128b6005548661254690919063ffffffff16565b670de0b6b3a764000061126c6004548761254690919063ffffffff16565b9050611321565b6112e66112c86004548561254690919063ffffffff16565b670de0b6b3a764000061126c6005548861254690919063ffffffff16565b915061131e6113006005548561254690919063ffffffff16565b670de0b6b3a764000061126c6004548861254690919063ffffffff16565b90505b94509492505050565b6001546001600160a01b031633146113545760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff166113975760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b0386166000908152600260205260409020546301000000900460ff16156113d75760405162461bcd60e51b815260040161043f906133a7565b6001600160a01b03861660009081526002602052604090819020805461ff00191661010088151502178155600581018690556006810185905590517f2b7e1c8a9a30964a7ada38c5149564ba064d3cb46ff06d7ff182775ad7a4713d9061144390899088908890612ff5565b60405180910390a150505050505050565b6001546001600160a01b031681565b6001600160a01b0391821660009081526002602090815260408083209390941682526007909201909152205460ff1690565b600080611511856001600160a01b031663065e53606040518163ffffffff1660e01b815260040160206040518083038186803b1580156114d457600080fd5b505afa1580156114e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150c9190612d70565b61202a565b90506115516115296001600160a01b03831680612546565b670de0b6b3a76400007801000000000000000000000000000000000000000000000000612369565b9150600061155f8686610583565b905060006115796115296001600160a01b03841680612546565b9050846115918261158b876064612546565b9061259f565b11806115aa5750846115a88561158b846064612546565b115b156115c75760405162461bcd60e51b815260040161043f90613458565b5050509392505050565b6001600160a01b03821660009081526002602052604081208054849190600160301b900460ff166116145760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b038516600090815260026020526040902060040154156116ed5760026000866001600160a01b03166001600160a01b0316815260200190815260200160002060040154856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561169757600080fd5b505afa1580156116ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cf9190612e30565b11156116ed5760405162461bcd60e51b815260040161043f90613294565b506001949350505050565b6001546001600160a01b031633146117225760405162461bcd60e51b815260040161043f90613339565b6003805460ff19811660ff909116151790556040517f31d2b42be69698b73ed0afb43a71872d1c2fa75bf4910edc3d5cf929ce11fb2d90600090a1565b6001546001600160a01b031633146117895760405162461bcd60e51b815260040161043f90613339565b60048190556040517f7173676a243594886893526e7121ae1217b9c8f1bf37d7182cf351c7243c33349061049290839061348f565b6001546001600160a01b031633146117e85760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff1661182b5760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b03861660009081526002602052604090819020805465ff000000000019166501000000000088151502176affffffff00000000000000191667010000000000000063ffffffff8816021781556001810185905590517f12588f80b3d955932fa6495825fce3e5a86e65babbb64fb0f03843c81948c60790611443908990899089908990612fc9565b60065481565b6001546001600160a01b031633146118ea5760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03821660009081526002602052604090208054839190600160301b900460ff1661192d5760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b03808516600090815260026020908152604080832093871683526007840190915290819020805460ff19169055517f327ebead4bc995c77eca4e68adf4a8709ea36622e0732ecd0e23dee6bcfb886990610eb69087908790612f55565b60055481565b6001546001600160a01b031633146119c15760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff16611a045760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b03831660009081526002602052604090819020805460ff19811660ff9091161517815590517fbd7dd9863bd3d126a99c32ad6b1f31c1fd44cdbf6cafca60e4f508228ee0a4d290610564908690612f41565b6001546001600160a01b03163314611a875760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03841660009081526002602052604090208054859190600160301b900460ff16611aca5760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b038616600090815260026020819052604091829020908101879055600381018690556004810185905590517e43da711fca65981e4da1c2b18c362abff88d1aea1f55992a7beeb5e1ae17bb90611443908990899089908990613016565b6001546001600160a01b03163314611b585760405162461bcd60e51b815260040161043f90613339565b60058190556040517f8cf1b5e61ca322007d7f7f14643afd8df1240cc40ddcf5e1cdf544f2bb0acae49061049290839061348f565b6001546001600160a01b03163314611bb75760405162461bcd60e51b815260040161043f90613339565b6001600160a01b038116611bdd5760405162461bcd60e51b815260040161043f90613226565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03821660009081526002602052604081208054849190600160301b900460ff16611c5a5760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b038616611c805760405162461bcd60e51b815260040161043f906131b8565b6001600160a01b0385166000908152600260209081526040808320338452600781019092529091205460ff16611e5357805460ff16611ce557600089118015611cc95750600088115b611ce55760405162461bcd60e51b815260040161043f90613370565b8815611d9c57600080611d6988896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611d2b57600080fd5b505afa158015611d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d639190612d54565b8d610924565b91509150818a10158015611d7d5750808a11155b611d995760405162461bcd60e51b815260040161043f9061314a565b50505b8715611e5357600080611e2088896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611de257600080fd5b505afa158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1a9190612d54565b8c610924565b91509150818b10158015611e345750808b11155b611e505760405162461bcd60e51b815260040161043f9061314a565b50505b60035460ff1680611e6e5750805465010000000000900460ff165b15611ed8578054611ed690879065010000000000900460ff16611e9e57600354610100900463ffffffff16611eb2565b8254670100000000000000900463ffffffff165b835465010000000000900460ff16611ecc5760065461033a565b8360010154611495565b505b8054640100000000900460ff1615611f4657600281015415611f18578060020154891115611f185760405162461bcd60e51b815260040161043f90613302565b600381015415611f46578060030154881115611f465760405162461bcd60e51b815260040161043f906132cb565b50600198975050505050505050565b6001546001600160a01b03163314611f7f5760405162461bcd60e51b815260040161043f90613339565b6001600160a01b03811660009081526002602052604090208054829190600160301b900460ff16611fc25760405162461bcd60e51b815260040161043f906133ea565b6001600160a01b03831660009081526002602052604090819020805464ff000000001981166401000000009182900460ff161590910217815590517f4681eb28f57cf4cc50d03460a4926f257ddd329f9e73b134ea189b3d757dd21090610564908690612f41565b60008060008360020b12612041578260020b612049565b8260020b6000035b9050620d89e8811115612087576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b6000600182166120a8577001000000000000000000000000000000006120ba565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156120ee576ffff97272373d413259a46990580e213a0260801c5b600482161561210d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561212c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561214b576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561216a576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612189576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156121a8576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156121c8576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156121e8576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612208576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612228576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612248576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612268576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612288576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156122a8576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156122c9576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156122e9576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615612308576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615612325576b048a170391f7dc42444e8fa20260801c5b60008460020b131561234057806000198161233c57fe5b0490505b640100000000810615612354576001612357565b60005b60ff16602082901c0192505050919050565b600080806000198587098686029250828110908390030390508061239f576000841161239457600080fd5b508290049050612412565b8084116123ab57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b80158061249f575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561247157600080fd5b505afa158015612485573d6000803e3d6000fd5b505050506040513d602081101561249b57600080fd5b5051155b6124da5760405162461bcd60e51b81526004018080602001828103825260368152602001806135a06036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663095ea7b360e01b179052612541908490612606565b505050565b60008261255557506000610831565b8282028284828161256257fe5b04146124125760405162461bcd60e51b81526004018080602001828103825260218152602001806135556021913960400191505060405180910390fd5b60008082116125f5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816125fe57fe5b049392505050565b600061265b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126b79092919063ffffffff16565b8051909150156125415780806020019051602081101561267a57600080fd5b50516125415760405162461bcd60e51b815260040180806020018281038252602a815260200180613576602a913960400191505060405180910390fd5b60606126c684846000856126ce565b949350505050565b60608247101561270f5760405162461bcd60e51b815260040180806020018281038252602681526020018061352f6026913960400191505060405180910390fd5b61271885612829565b612769576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106127a75780518252601f199092019160209182019101612788565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612809576040519150601f19603f3d011682016040523d82523d6000602084013e61280e565b606091505b509150915061281e828286612833565b979650505050505050565b803b15155b919050565b60608315612842575081612412565b8251156128525782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561289c578181015183820152602001612884565b50505050905090810190601f1680156128c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082601f8301126128e7578081fd5b815160206128fc6128f7836134db565b6134b7565b8281528181019085830183850287018401881015612918578586fd5b855b8581101561293f57815161292d816134f9565b8452928401929084019060010161291a565b5090979650505050505050565b8051600281900b811461282e57600080fd5b805161ffff8116811461282e57600080fd5b803563ffffffff8116811461282e57600080fd5b600060208284031215612995578081fd5b8135612412816134f9565b600080604083850312156129b2578081fd5b82356129bd816134f9565b915060208301356129cd816134f9565b809150509250929050565b6000806000606084860312156129ec578081fd5b83356129f7816134f9565b92506020840135612a07816134f9565b929592945050506040919091013590565b60008060008060808587031215612a2d578081fd5b8435612a38816134f9565b93506020850135612a48816134f9565b93969395505050506040820135916060013590565b60008060408385031215612a6f578182fd5b8235612a7a816134f9565b915060208381013567ffffffffffffffff811115612a96578283fd5b8401601f81018613612aa6578283fd5b8035612ab46128f7826134db565b81815283810190838501858402850186018a1015612ad0578687fd5b8694505b83851015612afb578035612ae7816134f9565b835260019490940193918501918501612ad4565b5080955050505050509250929050565b60008060008060808587031215612b20578182fd5b8435612b2b816134f9565b93506020850135612a4881613511565b60008060008060808587031215612b50578182fd5b8435612b5b816134f9565b93506020850135612b6b81613511565b9250612b7960408601612970565b9396929550929360600135925050565b60008060408385031215612b9b578182fd5b8235612ba6816134f9565b946020939093013593505050565b60008060008060808587031215612bc9578182fd5b8435612bd4816134f9565b966020860135965060408601359560600135945092505050565b60008060408385031215612c00578182fd5b8235612c0b816134f9565b9150612c1960208401612970565b90509250929050565b600080600060608486031215612c36578081fd5b8335612c41816134f9565b9250612c4f60208501612970565b9150604084013590509250925092565b60008060408385031215612c71578182fd5b8235612c7c816134f9565b915060208301356129cd8161351f565b60008060408385031215612c9e578182fd5b825167ffffffffffffffff80821115612cb5578384fd5b818501915085601f830112612cc8578384fd5b81516020612cd86128f7836134db565b82815281810190858301838502870184018b1015612cf4578889fd5b8896505b84871015612d245780518060060b8114612d1057898afd5b835260019690960195918301918301612cf8565b5091880151919650909350505080821115612d3d578283fd5b50612d4a858286016128d7565b9150509250929050565b600060208284031215612d65578081fd5b8151612412816134f9565b600060208284031215612d81578081fd5b6124128261294c565b600080600080600080600060e0888a031215612da4578485fd5b8751612daf816134f9565b9650612dbd6020890161294c565b9550612dcb6040890161295e565b9450612dd96060890161295e565b9350612de76080890161295e565b925060a0880151612df78161351f565b60c0890151909250612e0881613511565b8091505092959891949750929550565b600060208284031215612e29578081fd5b5035919050565b600060208284031215612e41578081fd5b5051919050565b60008060408385031215612e5a578182fd5b505080516020909101519092909150565b6000806000806000610100808789031215612e84578384fd5b8635955060208088013595506040880135612e9e816134f9565b94506060880135612eae816134f9565b9350609f88018913612ebe578283fd5b612ec860806134b7565b8060808a018b858c011115612edb578586fd5b8594505b6004851015612efe578035835260019490940193918301918301612edf565b50809450505050509295509295909350565b600060208284031215612f21578081fd5b61241282612970565b15159052565b63ffffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6000604082016001600160a01b03808616845260206040818601528286518085526060870191508288019450855b81811015612fbb578551851683529483019491830191600101612f9d565b509098975050505050505050565b6001600160a01b03949094168452911515602084015263ffffffff166040830152606082015260800190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b0392909216825260ff16602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561309657835163ffffffff1683529284019291840191600101613074565b50909695505050505050565b901515815260200190565b8e151581528d151560208201526101c081016130cc604083018f612f2a565b6130d9606083018e612f2a565b6130e6608083018d612f2a565b6130f360a083018c612f2a565b61310060c083018b612f3a565b61310d60e083018a612f30565b8761010083015286610120830152856101408301528461016083015283610180830152826101a08301529f9e505050505050505050505050505050565b6020808252600e908201527f496d70726f70657220726174696f000000000000000000000000000000000000604082015260600190565b6020808252600f908201527f746f6b656e206d6973746d617463680000000000000000000000000000000000604082015260600190565b60208082526015908201527f746f2073686f756c64206265206e6f6e2d7a65726f0000000000000000000000604082015260600190565b60208082526016908201527f6465706f736974732063616e2774206265207a65726f00000000000000000000604082015260600190565b6020808252601b908201527f6e65774f776e65722073686f756c64206265206e6f6e2d7a65726f0000000000604082015260600190565b6020808252600d908201527f616c726561647920616464656400000000000000000000000000000000000000604082015260600190565b60208082526012908201527f65786365656473206d617820737570706c790000000000000000000000000000604082015260600190565b6020808252600e908201527f746f6b656e312065786365656473000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f746f6b656e302065786365656473000000000000000000000000000000000000604082015260600190565b6020808252600a908201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604082015260600190565b6020808252601a908201527f6d757374206465706f73697420746f20626f7468207369646573000000000000604082015260600190565b60208082526023908201527f637573746f6d20726174696f206973206e6f206c6f6e67657220617661696c61604082015262626c6560e81b606082015260800190565b60208082526009908201527f6e6f742061646465640000000000000000000000000000000000000000000000604082015260600190565b6020808252600b908201527f76657273696f6e203c2031000000000000000000000000000000000000000000604082015260600190565b60208082526015908201527f5072696365206368616e6765204f766572666c6f770000000000000000000000604082015260600190565b90815260200190565b918252602082015260400190565b63ffffffff91909116815260200190565b60405181810167ffffffffffffffff811182821017156134d357fe5b604052919050565b600067ffffffffffffffff8211156134ef57fe5b5060209081020190565b6001600160a01b038116811461350e57600080fd5b50565b801515811461350e57600080fd5b60ff8116811461350e57600080fdfe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a164736f6c6343000706000a