0x60806040526131d5806100136000396000f3fe6080604052600436106101cf5760003560e01c80639580a912116100f6578063d4fac45d1161008f578063f0002ea911610061578063f0002ea9146106a0578063fb92df38146106c0578063fdbcd3ef146106e0578063ff118f311461070057005b8063d4fac45d146105eb578063daca6f781461060b578063e9a4b8ff14610660578063efde64611461068057005b8063b817dcc2116100c8578063b817dcc214610513578063d074f68d1461058b578063d08cb593146105ab578063d1c07028146105cb57005b80639580a9121461045f578063b2fd03f9146104a6578063b3ef3604146104c6578063b6fc38f9146104f357005b80634b0f7e27116101685780637088f7e91161013a5780637088f7e9146103de57806378065306146103f1578063879c85b9146104115780638d80ff0a1461043f57005b80634b0f7e271461032a57806355c6712f146103595780636bab4d52146103865780636fef49d4146103be57005b806335f33fb8116101a157806335f33fb81461029a5780633b12b8f7146102ca5780633b6c4cae146102f7578063434e897d1461031757005b806314d66c52146101d8578063162790551461020e57806317c7013d1461023f57806331ac11b51461026c57005b366101d657005b005b3480156101e457600080fd5b506101f86101f336600461237f565b610720565b60405161020591906123e2565b60405180910390f35b34801561021a57600080fd5b5061022f61022936600461246c565b3b151590565b6040519015158152602001610205565b34801561024b57600080fd5b5061025f61025a366004612489565b61098f565b60405161020591906124c5565b34801561027857600080fd5b5061028c610287366004612509565b610a3b565b604051908152602001610205565b3480156102a657600080fd5b506102ba6102b536600461259a565b610aa8565b6040516102059493929190612666565b3480156102d657600080fd5b506102ea6102e53660046126fd565b610ce5565b60405161020591906127e0565b34801561030357600080fd5b506102ea6103123660046127f3565b610dcc565b6101d66103253660046128a8565b610e4c565b34801561033657600080fd5b5061034a6103453660046128dc565b610ea7565b60405161020593929190612947565b34801561036557600080fd5b506103796103743660046127f3565b611170565b6040516102059190612966565b34801561039257600080fd5b506103a66103a1366004612979565b611222565b6040516001600160a01b039091168152602001610205565b3480156103ca57600080fd5b506103a66103d93660046129bb565b611259565b6101d66103ec3660046128a8565b6112b5565b3480156103fd57600080fd5b506103a661040c3660046129f2565b6112f4565b34801561041d57600080fd5b5061043161042c36600461246c565b61131e565b604051610205929190612a20565b34801561044b57600080fd5b506101d661045a3660046128a8565b61135b565b34801561046b57600080fd5b5061028c61047a366004612509565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b3480156104b257600080fd5b5061025f6104c1366004612a42565b6113a7565b3480156104d257600080fd5b506104e66104e1366004612489565b6114c5565b6040516102059190612a87565b3480156104ff57600080fd5b5061025f61050e366004612a42565b61156e565b34801561051f57600080fd5b5061055d61052e366004612ac1565b6062020160208101516040820151606083015160808401516081909401519094600094851a949190911a929190565b6040805195865260ff948516602087015292909316918401919091526060830152608082015260a001610205565b34801561059757600080fd5b506102ea6105a6366004612b05565b6116dc565b3480156105b757600080fd5b506102ea6105c6366004612b64565b61182d565b3480156105d757600080fd5b506104e66105e6366004612b94565b6118fa565b3480156105f757600080fd5b5061028c610606366004612be5565b611a90565b34801561061757600080fd5b5061062b610626366004612c13565b611b26565b6040805160ff909616865260208601949094529284019190915260608301526001600160a01b0316608082015260a001610205565b34801561066c57600080fd5b506102ea61067b366004612c4f565b611c36565b34801561068c57600080fd5b506102ea61069b366004612cff565b611c94565b3480156106ac57600080fd5b506102ea6106bb36600461237f565b611d0d565b3480156106cc57600080fd5b506102ea6106db366004612d58565b611db7565b3480156106ec57600080fd5b506103796106fb366004612ddd565b611e40565b34801561070c57600080fd5b5061037961071b366004612e36565b6120a4565b606081516001600160401b0381111561073b5761073b61227a565b60405190808252806020026020018201604052801561076e57816020015b60608152602001906001900390816107595790505b50905060005b82518110156109885783516001600160401b038111156107965761079661227a565b6040519080825280602002602001820160405280156107bf578160200160208202803683370190505b508282815181106107d2576107d2612e6b565b602002602001018190525060005b84518110156109755760006001600160a01b031684838151811061080657610806612e6b565b60200260200101516001600160a01b0316141561087d5784818151811061082f5761082f612e6b565b60200260200101516001600160a01b03163183838151811061085357610853612e6b565b6020026020010151828151811061086c5761086c612e6b565b602002602001018181525050610963565b83828151811061088f5761088f612e6b565b60200260200101516001600160a01b03166370a082318683815181106108b7576108b7612e6b565b60200260200101516040518263ffffffff1660e01b81526004016108ea91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b9190612e81565b83838151811061093d5761093d612e6b565b6020026020010151828151811061095657610956612e6b565b6020026020010181815250505b8061096d81612eb0565b9150506107e0565b508061098081612eb0565b915050610774565b5092915050565b8051606090806001600160401b038111156109ac576109ac61227a565b6040519080825280602002602001820160405280156109d5578160200160208202803683370190505b50915060005b81811015610a34578381815181106109f5576109f5612e6b565b60200260200101516001600160a01b031631838281518110610a1957610a19612e6b565b6020908102919091010152610a2d81612eb0565b90506109db565b5050919050565b6000808383604051602001610a5a929190918252602082015260400190565b6040516020818303038152906040528051906020012090507f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005280601c52603c60002091505092915050565b60606000806060876001600160a01b031663cd19f95f6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610aed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b159190810190612ecb565b60405163a2deadbd60e01b81529295509093509150600090819081906001600160a01b038b169063a2deadbd90610b50908c906004016127e0565b602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b919190612e81565b9050856001600160401b03811115610bab57610bab61227a565b604051908082528060200260200182016040528015610bd4578160200160208202803683370190505b50965060005b86811015610cd657600080600080610c1c8d866062020160208101516040820151606083015160808401516081909401519094600094851a949190911a929190565b9450945094505093506001610c318786610a3b565b6040805160008152602081018083529290925260ff861690820152606081018490526080810183905260a0016020604051602081039080840390855afa158015610c7f573d6000803e3d6000fd5b505050602060405103519650868c8681518110610c9e57610c9e612e6b565b60200260200101906001600160a01b031690816001600160a01b0316815250508697505050505080610ccf90612eb0565b9050610bda565b50505050945094509450949050565b825160609060005b81811015610dc35782868281518110610d0857610d08612e6b565b602002602001015163a9059cbb878481518110610d2757610d27612e6b565b6020026020010151878581518110610d4157610d41612e6b565b60209081029190910101516040516001600160a01b039092166024830152604482015260640160408051601f19818403018152918152602080830180516001600160e01b031660e09590951b9490941790935251610da194939201612f79565b604051602081830303815290604052925080610dbc90612eb0565b9050610ced565b50509392505050565b6060600063797debe960e01b8585604051602401610deb929190612fc5565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b03199095169490941790935281519051919350610e3392869285910161301b565b6040516020818303038152906040529150509392505050565b805160205b81811015610ea2578083015160601c6014820184015160348301850151605484018601600080838386885af193505082610e92573d9150816000803e816000fd5b8060540184019350505050610e51565b505050565b6000806060856001600160a01b031663cd19f95f6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f129190810190612ecb565b91945092509050610f23824261305a565b91506000808060008060008060008d6001600160a01b031663a2deadbd8e6040518263ffffffff1660e01b8152600401610f5d91906127e0565b602060405180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190612e81565b905060005b8b81101561115e57606281028d016020810151604082015160608301516080840151608190940151909a50600093841a995090921a9650945092508a87116110255760405162461bcd60e51b815260206004820152601060248201526f32bc3834b930ba34b7b71032b93937b960811b60448201526064015b60405180910390fd5b60016110318389610a3b565b6040805160008152602081018083529290925260ff881690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561107f573d6000803e3d6000fd5b505050602060405103519750886001600160a01b0316886001600160a01b0316116110dc5760405162461bcd60e51b815260206004820152600d60248201526c36b0b730b3b2b91032b93937b960991b604482015260640161101c565b898660ff16815181106110f1576110f1612e6b565b60200260200101516001600160a01b0316886001600160a01b03161461114a5760405162461bcd60e51b815260206004820152600e60248201526d34b9903737ba1036b0b730b3b2b960911b604482015260640161101c565b8798508061115790612eb0565b9050610fa3565b50505050505050505093509350939050565b8151606090806001600160401b0381111561118d5761118d61227a565b6040519080825280602002602001820160405280156111b6578160200160208202803683370190505b50915060005b81811015610dc3576111e8868683815181106111da576111da612e6b565b602002602001015186611259565b8382815181106111fa576111fa612e6b565b6001600160a01b039092166020928302919091019091015261121b81612eb0565b90506111bc565b604080516001600160a01b0384163f9181018290526020810185905282815260009190600b0160ff81536055902095945050505050565b60405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b805160205b81811015610ea257828101805160601c9060140160008060248382865af1915050806112eb573d806000803e806000fd5b506038016112ba565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b60606000826001600160a01b0316803b806020016040519081016040528181526000908060200190933c936001600160a01b039093163f92915050565b805160205b81811015610ea2578083015160601c6014820184015160348301850160008083836000875af192505081611399573d806000803e806000fd5b919091016034019050611360565b8051606090806001600160401b038111156113c4576113c461227a565b6040519080825280602002602001820160405280156113ed578160200160208202803683370190505b50915060005b818110156114bd57846001600160a01b03166357a98b7a85838151811061141c5761141c612e6b565b60200260200101516040518263ffffffff1660e01b815260040161144f91906001600160a01b0391909116815260200190565b602060405180830381865afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114909190612e81565b8382815181106114a2576114a2612e6b565b60209081029190910101526114b681612eb0565b90506113f3565b505092915050565b8051606090806001600160401b038111156114e2576114e261227a565b60405190808252806020026020018201604052801561150b578160200160208202803683370190505b50915060005b81811015610a345761153c84828151811061152e5761152e612e6b565b60200260200101513b151590565b83828151811061154e5761154e612e6b565b9115156020928302919091019091015261156781612eb0565b9050611511565b606081516001600160401b038111156115895761158961227a565b6040519080825280602002602001820160405280156115b2578160200160208202803683370190505b50905060005b82518110156109885760006001600160a01b03168382815181106115de576115de612e6b565b60200260200101516001600160a01b0316141561162357836001600160a01b03163182828151811061161257611612612e6b565b6020026020010181815250506116ca565b82818151811061163557611635612e6b565b60209081029190910101516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa158015611687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ab9190612e81565b8282815181106116bd576116bd612e6b565b6020026020010181815250505b806116d481612eb0565b9150506115b8565b805160609060005b818110156117ae57600061171185838151811061170357611703612e6b565b6020026020010151896121a6565b905085811061179d578385838151811061172d5761172d612e6b565b602090810291909101810151604080516001600160a01b038c1660248201526044808201879052825180830390910181526064909101825280840180516001600160e01b031663a9059cbb60e01b179052905161178b949301612f79565b60405160208183030381529060405293505b506117a781612eb0565b90506116e4565b50600063738d647560e01b836040516024016117ca91906127e0565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b03199095169490941790935281519051919350611812928a9285910161301b565b60405160208183030381529060405292505050949350505050565b606060005b825181101561098857600083828151811061184f5761184f612e6b565b60200260200101516001600160a01b03163190508481106118e9576040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b03166319f8a90960e31b179052845184908690859081106118b8576118b8612e6b565b60200260200101518251836040516020016118d69493929190613071565b6040516020818303038152906040529350505b506118f381612eb0565b9050611832565b8151606090806001600160401b038111156119175761191761227a565b604051908082528060200260200182016040528015611940578160200160208202803683370190505b5091506001600160a01b0383166119bb5760005b818110156119b557600085828151811061197057611970612e6b565b60200260200101516001600160a01b0316311183828151811061199557611995612e6b565b911515602092830291909101909101526119ae81612eb0565b9050611954565b50610988565b60005b818110156114bd576000846001600160a01b03166370a082318784815181106119e9576119e9612e6b565b60200260200101516040518263ffffffff1660e01b8152600401611a1c91906001600160a01b0391909116815260200190565b602060405180830381865afa158015611a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5d9190612e81565b11838281518110611a7057611a70612e6b565b91151560209283029190910190910152611a8981612eb0565b90506119be565b6000806001600160a01b038316611ab257506001600160a01b03831631611b1f565b6040516370a0823160e01b81526001600160a01b0385811660048301528416906370a0823190602401602060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c9190612e81565b90505b9392505050565b6000806000806000806040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250905060008189604051602001611b7c9291906130c4565b60405160208183030381529060405280519060200120905087519350600080600060208b0151915060408b0151905060608b015160001a9250600060018585858560405160008152602001604052604051611bf3949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015611c15573d6000803e3d6000fd5b5050604051601f190151949e939d50919b5096995091975095505050505050565b805160609060005b81811015610a345782848281518110611c5957611c59612e6b565b6020026020010151604051602001611c729291906130e6565b604051602081830303815290604052925080611c8d90612eb0565b9050611c3e565b815160609060005b818110156114bd5782858281518110611cb757611cb7612e6b565b6020026020010151858381518110611cd157611cd1612e6b565b6020026020010151604051602001611ceb93929190613115565b604051602081830303815290604052925080611d0690612eb0565b9050611c9c565b815181516060919060005b82811015611dae5760005b82811015611d9d5784611d68878381518110611d4157611d41612e6b565b6020026020010151898581518110611d5b57611d5b612e6b565b60200260200101516121a6565b604051602001611d799291906130c4565b60405160208183030381529060405294508080611d9590612eb0565b915050611d23565b50611da781612eb0565b9050611d18565b50505092915050565b606060005b8551811015611e375781611e04878381518110611ddb57611ddb612e6b565b6020026020010151878481518110611df557611df5612e6b565b602002602001015187876116dc565b604051602001611e159291906130e6565b604051602081830303815290604052915080611e3090612eb0565b9050611dbc565b50949350505050565b825160609082611e875784600081518110611e5d57611e5d612e6b565b60200260200101516001600160a01b0316846001600160a01b031610611e8257600080fd5b611f52565b80831015611f0657848381518110611ea157611ea1612e6b565b60200260200101516001600160a01b0316846001600160a01b0316108015611efd575084611ed060018561305a565b81518110611ee057611ee0612e6b565b60200260200101516001600160a01b0316846001600160a01b0316115b611e8257600080fd5b8083148015611f49575084611f1c60018561305a565b81518110611f2c57611f2c612e6b565b60200260200101516001600160a01b0316846001600160a01b0316115b611f5257600080fd5b611f5d816001613154565b6001600160401b03811115611f7457611f7461227a565b604051908082528060200260200182016040528015611f9d578160200160208202803683370190505b50915060005b81811015611fff57858181518110611fbd57611fbd612e6b565b6020026020010151838281518110611fd757611fd7612e6b565b6001600160a01b0390921660209283029190910190910152611ff881612eb0565b9050611fa3565b50805b83811115612068578261201660018361305a565b8151811061202657612026612e6b565b602002602001015183828151811061204057612040612e6b565b6001600160a01b03909216602092830291909101909101526120618161316c565b9050612002565b508382848151811061207c5761207c612e6b565b60200260200101906001600160a01b031690816001600160a01b031681525050509392505050565b81518290600281116120f85760405162461bcd60e51b815260206004820152601f60248201527f4d616e616765722063616e6e6f74206265206c657373207468616e2074776f00604482015260640161101c565b80831061213e5760405162461bcd60e51b81526020600482015260146024820152731859191c995cdcc81a5cc81b9bdd08195e1a5cdd60621b604482015260640161101c565b825b818110156114bd5782612154826001613154565b8151811061216457612164612e6b565b602002602001015183828151811061217e5761217e612e6b565b6001600160a01b039092166020928302919091019091015261219f81612eb0565b9050612140565b604080516001600160a01b0383811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166370a0823160e01b179052915160009283928392918716916122009190613183565b600060405180830381855afa9150503d806000811461223b576040519150601f19603f3d011682016040523d82523d6000602084013e612240565b606091505b509150915081801561225457506020815110155b61225d57600080fd5b808060200190518101906122719190612e81565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156122b8576122b861227a565b604052919050565b60006001600160401b038211156122d9576122d961227a565b5060051b60200190565b6001600160a01b03811681146122f857600080fd5b50565b8035612306816122e3565b919050565b600082601f83011261231c57600080fd5b8135602061233161232c836122c0565b612290565b82815260059290921b8401810191818101908684111561235057600080fd5b8286015b84811015612374578035612367816122e3565b8352918301918301612354565b509695505050505050565b6000806040838503121561239257600080fd5b82356001600160401b03808211156123a957600080fd5b6123b58683870161230b565b935060208501359150808211156123cb57600080fd5b506123d88582860161230b565b9150509250929050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b8381101561245e57888603603f19018552825180518088529088019088880190845b818110156124485783518352928a0192918a019160010161242c565b509097505050938601939186019160010161240a565b509398975050505050505050565b60006020828403121561247e57600080fd5b8135611b1f816122e3565b60006020828403121561249b57600080fd5b81356001600160401b038111156124b157600080fd5b6124bd8482850161230b565b949350505050565b6020808252825182820181905260009190848201906040850190845b818110156124fd578351835292840192918401916001016124e1565b50909695505050505050565b6000806040838503121561251c57600080fd5b50508035926020909101359150565b600082601f83011261253c57600080fd5b81356001600160401b038111156125555761255561227a565b612568601f8201601f1916602001612290565b81815284602083860101111561257d57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156125b057600080fd5b84356125bb816122e3565b935060208501356125cb816122e3565b925060408501356001600160401b03808211156125e757600080fd5b6125f38883890161252b565b9350606087013591508082111561260957600080fd5b506126168782880161252b565b91505092959194509250565b600081518084526020808501945080840160005b8381101561265b5781516001600160a01b031687529582019590820190600101612636565b509495945050505050565b6080815260006126796080830187612622565b85602084015284604084015282810360608401526126978185612622565b979650505050505050565b600082601f8301126126b357600080fd5b813560206126c361232c836122c0565b82815260059290921b840181019181810190868411156126e257600080fd5b8286015b8481101561237457803583529183019183016126e6565b60008060006060848603121561271257600080fd5b83356001600160401b038082111561272957600080fd5b6127358783880161230b565b9450602086013591508082111561274b57600080fd5b6127578783880161230b565b9350604086013591508082111561276d57600080fd5b5061277a868287016126a2565b9150509250925092565b60005b8381101561279f578181015183820152602001612787565b838111156127ae576000848401525b50505050565b600081518084526127cc816020860160208601612784565b601f01601f19169290920160200192915050565b602081526000611b1f60208301846127b4565b60008060006060848603121561280857600080fd5b8335612813816122e3565b92506020848101356001600160401b0381111561282f57600080fd5b8501601f8101871361284057600080fd5b803561284e61232c826122c0565b81815260059190911b8201830190838101908983111561286d57600080fd5b928401925b8284101561288b57833582529284019290840190612872565b809650505050505061289f604085016122fb565b90509250925092565b6000602082840312156128ba57600080fd5b81356001600160401b038111156128d057600080fd5b6124bd8482850161252b565b6000806000606084860312156128f157600080fd5b83356128fc816122e3565b925060208401356001600160401b038082111561291857600080fd5b6129248783880161252b565b9350604086013591508082111561293a57600080fd5b5061277a8682870161252b565b8381528260208201526060604082015260006122716060830184612622565b602081526000611b1f6020830184612622565b60008060006060848603121561298e57600080fd5b8335925060208401356129a0816122e3565b915060408401356129b0816122e3565b809150509250925092565b6000806000606084860312156129d057600080fd5b83356129db816122e3565b92506020840135915060408401356129b0816122e3565b600080600060608486031215612a0757600080fd5b833592506020840135915060408401356129b0816122e3565b604081526000612a3360408301856127b4565b90508260208301529392505050565b60008060408385031215612a5557600080fd5b8235612a60816122e3565b915060208301356001600160401b03811115612a7b57600080fd5b6123d88582860161230b565b6020808252825182820181905260009190848201906040850190845b818110156124fd578351151583529284019291840191600101612aa3565b60008060408385031215612ad457600080fd5b82356001600160401b03811115612aea57600080fd5b612af68582860161252b565b95602094909401359450505050565b60008060008060808587031215612b1b57600080fd5b8435612b26816122e3565b93506020850135612b36816122e3565b92506040850135915060608501356001600160401b03811115612b5857600080fd5b6126168782880161230b565b60008060408385031215612b7757600080fd5b8235915060208301356001600160401b03811115612a7b57600080fd5b60008060408385031215612ba757600080fd5b82356001600160401b03811115612bbd57600080fd5b612bc98582860161230b565b9250506020830135612bda816122e3565b809150509250929050565b60008060408385031215612bf857600080fd5b8235612c03816122e3565b91506020830135612bda816122e3565b60008060408385031215612c2657600080fd5b8235915060208301356001600160401b03811115612c4357600080fd5b6123d88582860161252b565b60006020808385031215612c6257600080fd5b82356001600160401b0380821115612c7957600080fd5b818501915085601f830112612c8d57600080fd5b8135612c9b61232c826122c0565b81815260059190911b83018401908481019088831115612cba57600080fd5b8585015b83811015612cf257803585811115612cd65760008081fd5b612ce48b89838a010161252b565b845250918601918601612cbe565b5098975050505050505050565b60008060408385031215612d1257600080fd5b82356001600160401b0380821115612d2957600080fd5b612d358683870161230b565b93506020850135915080821115612d4b57600080fd5b506123d8858286016126a2565b60008060008060808587031215612d6e57600080fd5b84356001600160401b0380821115612d8557600080fd5b612d918883890161230b565b95506020870135915080821115612da757600080fd5b612db38883890161230b565b9450604087013593506060870135915080821115612dd057600080fd5b506126168782880161230b565b600080600060608486031215612df257600080fd5b83356001600160401b03811115612e0857600080fd5b612e148682870161230b565b9350506020840135612e25816122e3565b929592945050506040919091013590565b60008060408385031215612e4957600080fd5b82356001600160401b03811115612e5f57600080fd5b612af68582860161230b565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612e9357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415612ec457612ec4612e9a565b5060010190565b600080600060608486031215612ee057600080fd5b83519250602080850151925060408501516001600160401b03811115612f0557600080fd5b8501601f81018713612f1657600080fd5b8051612f2461232c826122c0565b81815260059190911b82018301908381019089831115612f4357600080fd5b928401925b82841015612f6a578351612f5b816122e3565b82529284019290840190612f48565b80955050505050509250925092565b60008451612f8b818460208901612784565b606085901b6bffffffffffffffffffffffff19169083019081528351612fb8816014840160208801612784565b0160140195945050505050565b6001600160a01b038316815260406020808301829052835191830182905260009184820191906060850190845b8181101561300e57845183529383019391830191600101612ff2565b5090979650505050505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000825161304b816034850160208701612784565b91909101603401949350505050565b60008282101561306c5761306c612e9a565b500390565b60008551613083818460208a01612784565b80830190506bffffffffffffffffffffffff198660601b16815284601482015283516130b6816034840160208801612784565b016034019695505050505050565b600083516130d6818460208801612784565b9190910191825250602001919050565b600083516130f8818460208801612784565b83519083019061310c818360208801612784565b01949350505050565b60008451613127818460208901612784565b60609490941b6bffffffffffffffffffffffff191691909301908152601481019190915260340192915050565b6000821982111561316757613167612e9a565b500190565b60008161317b5761317b612e9a565b506000190190565b60008251613195818460208701612784565b919091019291505056fea2646970667358221220f55f53bf6ba76dac0751e65baaf0b462b669dd382dfdd87a8f9108f1a99e93fb64736f6c634300080c0033