0x60a06040523480156200001157600080fd5b5060405162003424380380620034248339810160408190526200003491620000d2565b6200003f3362000065565b600380546001600160a01b0319166001600160a01b03928316179055166080526200010a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000cd57600080fd5b919050565b60008060408385031215620000e657600080fd5b620000f183620000b5565b91506200010160208401620000b5565b90509250929050565b6080516132db62000149600039600081816103b1015281816106c20152818161086401528181610c71015281816117240152611a6501526132db6000f3fe6080604052600436106101845760003560e01c806378e3214f116100d6578063c683630d1161007f578063f2fde38b11610059578063f2fde38b14610468578063fa461e331461022a578063fa483e721461022a57600080fd5b8063c683630d146103d3578063d7068fe114610413578063d9c453571461045557600080fd5b8063923b8a2a116100b0578063923b8a2a1461035f5780639ccfd8c11461037f578063ad5c46481461039f57600080fd5b806378e3214f146102f45780638b674f5d146103145780638da5cb5b1461033457600080fd5b806333320de311610138578063654b648711610112578063654b64871461022a578063715018a6146102bf578063774b6b7e146102d457600080fd5b806333320de31461026c5780633334e6631461028c5780633d4a345c1461029f57600080fd5b806323a69e751161016957806323a69e751461022a578063263cc4fd1461024c5780632c8958f61461022a57600080fd5b806303a18fa3146101905780630b129abf146101e757600080fd5b3661018b57005b600080fd5b34801561019c57600080fd5b506003546101bd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101f357600080fd5b506101bd610202366004612521565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561023657600080fd5b5061024a61024536600461258c565b610488565b005b34801561025857600080fd5b5061024a610267366004612601565b61049a565b34801561027857600080fd5b5061024a610287366004612799565b6104e9565b61024a61029a366004612a49565b6105a5565b3480156102ab57600080fd5b5061024a6102ba366004612af3565b610a0f565b3480156102cb57600080fd5b5061024a610b45565b3480156102e057600080fd5b5061024a6102ef366004612bb3565b610b59565b34801561030057600080fd5b5061024a61030f366004612c2f565b610df4565b34801561032057600080fd5b5061024a61032f366004612c5b565b610e47565b34801561034057600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166101bd565b34801561036b57600080fd5b5061024a61037a36600461258c565b610f03565b34801561038b57600080fd5b5061024a61039a366004612c9d565b611035565b3480156103ab57600080fd5b506101bd7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103df57600080fd5b506104036103ee366004612601565b60026020526000908152604090205460ff1681565b60405190151581526020016101de565b34801561041f57600080fd5b506104477f9932588c857b0691792b49bc2500676cf28f18fb0177f2f1fd3490fb07babb7281565b6040519081526020016101de565b61024a610463366004612c5b565b6110b4565b34801561047457600080fd5b5061024a610483366004612601565b611163565b6104948484848461121a565b50505050565b6104a2611321565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6104f1611321565b80518251146104ff57600080fd5b60005b82518110156105a05781818151811061051d5761051d612cd4565b60200260200101516002600085848151811061053b5761053b612cd4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610502565b505050565b8142811015610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f526f757465723a2045585049524544000000000000000000000000000000000060448201526064015b60405180910390fd5b3360009081526002602052604090205460ff1661068e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c6973746564000000000000604482015260640161060c565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff87161415610742577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561072857600080fd5b505af115801561073c573d6000803e3d6000fd5b50505050505b60005b87518110156107c4576000805b89838151811061076457610764612cd4565b6020026020010151518110156107ba576107b08a848151811061078957610789612cd4565b602002602001015182815181106107a2576107a2612cd4565b6020026020010151836113a2565b9150600101610752565b5050600101610745565b5060006107d0866116c2565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff871614156108d65780610810576000610834565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805b506040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b1580156108bd57600080fd5b505af11580156108d1573d6000803e3d6000fd5b505050505b8251156109795760006108e9848361180b565b6040810151602082015191925001801561097657600354825160408085015181518581526020810191909152958490039573ffffffffffffffffffffffffffffffffffffffff93841693928316928c169184917f4bc8151c051441255339d01fbaeb38cf109cbfd75e9a5c62fb8f1dfb37fe6fd6910160405180910390a461097489828460006119f4565b505b50505b6000610984886116c2565b90506109c58887836109975760006109be565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90930192835b60016119f4565b610a048787846109d65760006109fd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193845b60006119f4565b505050505050505050565b610a17611321565b8051825114610a82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964206c656e677468000000000000000000000000000000000000604482015260640161060c565b60005b82518110156105a057818181518110610aa057610aa0612cd4565b602002602001015160016000858481518110610abe57610abe612cd4565b6020908102919091018101517fffffffff0000000000000000000000000000000000000000000000000000000016825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600101610a85565b610b4d611321565b610b576000611af1565b565b3360009081526002602052604090205460ff16610bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c6973746564000000000000604482015260640161060c565b6000610bdd856116c2565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff86161415610ce35780610c1d576000610c41565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805b506040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015610cca57600080fd5b505af1158015610cde573d6000803e3d6000fd5b505050505b8115610dbc576000610d2c84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061180b915050565b60408101516020820151919250018015610db957600354825160408085015181518581526020810191909152958490039573ffffffffffffffffffffffffffffffffffffffff93841693928316928b169184917f4bc8151c051441255339d01fbaeb38cf109cbfd75e9a5c62fb8f1dfb37fe6fd6910160405180910390a4610db788828460006119f4565b505b50505b6000610dc7876116c2565b9050610dda8786836109975760006109be565b610deb8686846109d65760006109fd565b50505050505050565b610dfc611321565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff83161415610e3c57610e383382611b66565b5050565b610e38823383611c79565b3360009081526002602052604090205460ff16610ec0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c6973746564000000000000604482015260640161060c565b6000610ece82840184612d03565b90506000805b8251811015610efc57610ef28382815181106107a2576107a2612cd4565b9150600101610ed4565b5050505050565b8315801590610f1157508215155b610f77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e206f72204f757420416d6f756e74206973205a65726f0000000000000000604482015260640161060c565b7f9932588c857b0691792b49bc2500676cf28f18fb0177f2f1fd3490fb07babb728054903373ffffffffffffffffffffffffffffffffffffffff83161461101a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f757465723a20696e76616c69642073656e6465722063616c6c6261636b00604482015260640161060c565b600061102884860186612601565b9050610deb813389611c79565b61103d611321565b7fffffffff0000000000000000000000000000000000000000000000000000000091909116600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3360009081526002602052604090205460ff1661112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f41646472657373206973206e6f742077686974656c6973746564000000000000604482015260640161060c565b600061113b82840184612d40565b90506105a0816000015182602001518360400151846060015185608001518660a001516105a5565b61116b611321565b73ffffffffffffffffffffffffffffffffffffffff811661120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161060c565b61121781611af1565b50565b8315158061122757508215155b61123057600080fd5b7f9932588c857b0691792b49bc2500676cf28f18fb0177f2f1fd3490fb07babb728054903373ffffffffffffffffffffffffffffffffffffffff8316146112d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f757465723a20696e76616c69642073656e6465722063616c6c6261636b00604482015260640161060c565b60006112e184860186612e0e565b9050600081600001518060200190518101906112fd9190612e92565b9050600080891361130e5787611310565b885b9050610a0482602001513383611c79565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161060c565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821061145157604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4167677265676174696f6e4578656375746f723a2070726576416d6f756e744f60448201527f7574206d757374206265206c657373207468616e206d61785f75696e74323234606482015260840161060c565b6020808401517fffffffff00000000000000000000000000000000000000000000000000000000811660009081526001909252604090912054819073ffffffffffffffffffffffffffffffffffffffff168061152f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4167677265676174696f6e4578656375746f723a204578656375746f7220666f60448201527f722064657820646f65736e277420657869737465640000000000000000000000606482015260840161060c565b60e08263ffffffff16901b851794506000808273ffffffffffffffffffffffffffffffffffffffff1685896000015189604051602001611570929190612f7a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526115ac9291602001612f9c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526115e491612fe4565b600060405180830381855af49150503d806000811461161f576040519150601f19603f3d011682016040523d82523d6000602084013e611624565b606091505b5091509150816116a05761166d816040518060400160405280601781526020017f7377617053696e676c65506f6f6c206661696c65643a20000000000000000000815250611dec565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c9190613000565b808060200190518101906116b49190613013565b955050505050505b92915050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff831614156117b4576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a08231906024015b60206040518083038186803b15801561177c57600080fd5b505afa158015611790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bc9190613013565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401611764565b919050565b61184c6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081525090565b6020835111156119905760008380602001905181019061186c919061302c565b905060808160200151901c81602001516fffffffffffffffffffffffffffffffff160183111561198a5780516113886bffffffffffffffffffffffff8216106118b7576113886118b9565b805b825160601c845260208301519091506fffffffffffffffffffffffffffffffff1684036127106113888202046020850152835173ffffffffffffffffffffffffffffffffffffffff166119125760208401819052611975565b600354845173ffffffffffffffffffffffffffffffffffffffff9081169116141561195a576020840180516127106bffffffffffffffffffffffff8516840204019052611975565b6127106bffffffffffffffffffffffff831682020460408501525b60408401516020850151909103036060840152505b506116bc565b8251602014156116bc576000838060200190518101906119b09190613013565b9050608081901c816fffffffffffffffffffffffffffffffff16018311156119ed576fffffffffffffffffffffffffffffffff8116830360208301525b5092915050565b816119fe57610494565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff85161415611ae6578015611ad7576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d90602401600060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050505b611ae18383611b66565b610494565b610494848484611c79565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80611b6f575050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051611ba69190612fe4565b60006040518083038185875af1925050503d8060008114611be3576040519150601f19603f3d011682016040523d82523d6000602084013e611be8565b606091505b50509050806105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201527f4c45440000000000000000000000000000000000000000000000000000000000606482015260840161060c565b80611c8357505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790529151600092839290871691611d1a9190612fe4565b6000604051808303816000865af19150503d8060008114611d57576040519150601f19603f3d011682016040523d82523d6000602084013e611d5c565b606091505b5091509150818015611d86575080511580611d86575080806020019051810190611d86919061307b565b610efc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015260640161060c565b60606044835110158015611e59575082600081518110611e0e57611e0e612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f0800000000000000000000000000000000000000000000000000000000000000145b8015611ebe575082600181518110611e7357611e73612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167fc300000000000000000000000000000000000000000000000000000000000000145b8015611f23575082600281518110611ed857611ed8612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7900000000000000000000000000000000000000000000000000000000000000145b8015611f88575082600381518110611f3d57611f3d612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167fa000000000000000000000000000000000000000000000000000000000000000145b1561203457604483810180519091611fa091906130c7565b8451101561200a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e76616c69642072657665727420726561736f6e0000000000000000000000604482015260640161060c565b828160405160200161201d9291906130df565b6040516020818303038152906040529150506116bc565b8251602414801561209e57508260008151811061205357612053612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f4e00000000000000000000000000000000000000000000000000000000000000145b80156121035750826001815181106120b8576120b8612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f4800000000000000000000000000000000000000000000000000000000000000145b801561216857508260028151811061211d5761211d612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7b00000000000000000000000000000000000000000000000000000000000000145b80156121cd57508260038151811061218257612182612cd4565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7100000000000000000000000000000000000000000000000000000000000000145b156121f2576024830151826121e182612224565b60405160200161201d929190613161565b816121fc8461224c565b60405160200161220d9291906131ad565b604051602081830303815290604052905092915050565b60606116bc8260405160200161223c91815260200190565b6040516020818303038152906040525b80516060907f30313233343536373839616263646566000000000000000000000000000000009060009061228190600261322f565b61228c9060026130c7565b67ffffffffffffffff8111156122a4576122a461261e565b6040519080825280601f01601f1916602001820160405280156122ce576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061230557612305612cd4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061236857612368612cd4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b84518110156124e9578260048683815181106123b8576123b8612cd4565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c60f81c601081106123f4576123f4612cd4565b1a60f81b8261240483600261322f565b61240f9060026130c7565b8151811061241f5761241f612cd4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508285828151811061246157612461612cd4565b60209101015160f81c600f166010811061247d5761247d612cd4565b1a60f81b8261248d83600261322f565b6124989060036130c7565b815181106124a8576124a8612cd4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806124e18161326c565b91505061239a565b509392505050565b80357fffffffff000000000000000000000000000000000000000000000000000000008116811461180657600080fd5b60006020828403121561253357600080fd5b61253c826124f1565b9392505050565b60008083601f84011261255557600080fd5b50813567ffffffffffffffff81111561256d57600080fd5b60208301915083602082850101111561258557600080fd5b9250929050565b600080600080606085870312156125a257600080fd5b8435935060208501359250604085013567ffffffffffffffff8111156125c757600080fd5b6125d387828801612543565b95989497509550505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461121757600080fd5b60006020828403121561261357600080fd5b813561253c816125df565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156126705761267061261e565b60405290565b60405160c0810167ffffffffffffffff811182821017156126705761267061261e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156126e0576126e061261e565b604052919050565b600067ffffffffffffffff8211156127025761270261261e565b5060051b60200190565b8035611806816125df565b600082601f83011261272857600080fd5b8135602061273d612738836126e8565b612699565b82815260059290921b8401810191818101908684111561275c57600080fd5b8286015b84811015612780578035612773816125df565b8352918301918301612760565b509695505050505050565b801515811461121757600080fd5b600080604083850312156127ac57600080fd5b823567ffffffffffffffff808211156127c457600080fd5b6127d086838701612717565b93506020915081850135818111156127e757600080fd5b85019050601f810186136127fa57600080fd5b8035612808612738826126e8565b81815260059190911b8201830190838101908883111561282757600080fd5b928401925b8284101561284e57833561283f8161278b565b8252928401929084019061282c565b80955050505050509250929050565b600082601f83011261286e57600080fd5b813567ffffffffffffffff8111156128885761288861261e565b6128b960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612699565b8181528460208386010111156128ce57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126128fc57600080fd5b8135602061290c612738836126e8565b82815260059290921b8401810191818101908684111561292b57600080fd5b8286015b8481101561278057803567ffffffffffffffff808211156129505760008081fd5b81890191506040807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848d030112156129895760008081fd5b61299161264d565b87840135838111156129a35760008081fd5b6129b18d8a8388010161285d565b8252509201358683015250835291830191830161292f565b600082601f8301126129da57600080fd5b813560206129ea612738836126e8565b82815260059290921b84018101918181019086841115612a0957600080fd5b8286015b8481101561278057803567ffffffffffffffff811115612a2d5760008081fd5b612a3b8986838b01016128eb565b845250918301918301612a0d565b60008060008060008060c08789031215612a6257600080fd5b863567ffffffffffffffff80821115612a7a57600080fd5b612a868a838b016129c9565b975060208901359150612a98826125df565b909550604088013590612aaa826125df565b909450606088013590612abc826125df565b9093506080880135925060a08801359080821115612ad957600080fd5b50612ae689828a0161285d565b9150509295509295509295565b60008060408385031215612b0657600080fd5b823567ffffffffffffffff80821115612b1e57600080fd5b818501915085601f830112612b3257600080fd5b81356020612b42612738836126e8565b82815260059290921b84018101918181019089841115612b6157600080fd5b948201945b83861015612b8657612b77866124f1565b82529482019490820190612b66565b96505086013592505080821115612b9c57600080fd5b50612ba985828601612717565b9150509250929050565b600080600080600060808688031215612bcb57600080fd5b8535612bd6816125df565b94506020860135612be6816125df565b93506040860135612bf6816125df565b9250606086013567ffffffffffffffff811115612c1257600080fd5b612c1e88828901612543565b969995985093965092949392505050565b60008060408385031215612c4257600080fd5b8235612c4d816125df565b946020939093013593505050565b60008060208385031215612c6e57600080fd5b823567ffffffffffffffff811115612c8557600080fd5b612c9185828601612543565b90969095509350505050565b60008060408385031215612cb057600080fd5b612cb9836124f1565b91506020830135612cc9816125df565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612d1557600080fd5b813567ffffffffffffffff811115612d2c57600080fd5b612d38848285016128eb565b949350505050565b600060208284031215612d5257600080fd5b813567ffffffffffffffff80821115612d6a57600080fd5b9083019060c08286031215612d7e57600080fd5b612d86612676565b823582811115612d9557600080fd5b612da1878286016129c9565b825250612db06020840161270c565b6020820152612dc16040840161270c565b6040820152612dd26060840161270c565b60608201526080830135608082015260a083013582811115612df357600080fd5b612dff8782860161285d565b60a08301525095945050505050565b600060208284031215612e2057600080fd5b813567ffffffffffffffff80821115612e3857600080fd5b9083019060408286031215612e4c57600080fd5b612e5461264d565b823582811115612e6357600080fd5b612e6f8782860161285d565b82525060208301359250612e82836125df565b6020810192909252509392505050565b600060608284031215612ea457600080fd5b6040516060810181811067ffffffffffffffff82111715612ec757612ec761261e565b6040528251612ed5816125df565b81526020830151612ee5816125df565b60208201526040830151612ef8816125df565b60408201529392505050565b60005b83811015612f1f578181015183820152602001612f07565b838111156104945750506000910152565b60008151808452612f48816020860160208601612f04565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b604081526000612f8d6040830185612f30565b90508260208301529392505050565b7fffffffff000000000000000000000000000000000000000000000000000000008316815260008251612fd6816004850160208701612f04565b919091016004019392505050565b60008251612ff6818460208701612f04565b9190910192915050565b60208152600061253c6020830184612f30565b60006020828403121561302557600080fd5b5051919050565b60006040828403121561303e57600080fd5b6040516040810181811067ffffffffffffffff821117156130615761306161261e565b604052825181526020928301519281019290925250919050565b60006020828403121561308d57600080fd5b815161253c8161278b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156130da576130da613098565b500190565b600083516130f1818460208801612f04565b7f4572726f72280000000000000000000000000000000000000000000000000000908301908152835161312b816006840160208801612f04565b7f290000000000000000000000000000000000000000000000000000000000000060069290910191820152600701949350505050565b60008351613173818460208801612f04565b7f50616e6963280000000000000000000000000000000000000000000000000000908301908152835161312b816006840160208801612f04565b600083516131bf818460208801612f04565b7f556e6b6e6f776e2800000000000000000000000000000000000000000000000090830190815283516131f9816008840160208801612f04565b7f290000000000000000000000000000000000000000000000000000000000000060089290910191820152600901949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561326757613267613098565b500290565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561329e5761329e613098565b506001019056fea2646970667358221220023dab90e343aa8fa1bbc73d90b54957d0ac3b67a99e3e592bc3ee752c3069e564736f6c634300080900330000000000000000000000004f9a0e7fd2bf6067db6994cf12e4495df938e6e90000000000000000000000004f82e73edb06d29ff62c91ec8f5ff06571bdeb29