60806040526040518060400160405280601a81526020017f697066736574682e636f6d205769746864726177616c204e4654000000000000815250600390816100489190610bdb565b506040518060400160405280601c81526020017f636c61696d2072657761726473206f6e20697066736574682e636f6d000000008152506004908161008d9190610bdb565b50348015610099575f80fd5b506040518060600160405280603581526020016132c8603591396100c2816100eb60201b60201c565b506100e633600161271060405180602001604052805f8152506100fe60201b60201c565b611079565b80600290816100fa9190610bdb565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361016e575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016101659190610ce9565b60405180910390fd5b5f80610180858561019f60201b60201c565b915091506101975f878484876101cf60201b60201c565b505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6101e18585858561029360201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461028c575f61022361062960201b60201c565b90506001845103610275575f6102425f8661063060201b90919060201c565b90505f6102585f8661063060201b90919060201c565b905061026e83898985858961064360201b60201c565b505061028a565b6102898187878787876107f260201b60201c565b5b505b5050505050565b80518251146102dd57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016102d4929190610d11565b60405180910390fd5b5f6102ec61062960201b60201c565b90505f5b83518110156104e8575f61030d828661063060201b90919060201c565b90505f610323838661063060201b90919060201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610446575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156103f257888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016103e99493929190610d38565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146104db57805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104d39190610da8565b925050819055505b50508060010190506102f0565b5060018351036105a3575f6105065f8561063060201b90919060201c565b90505f61051c5f8561063060201b90919060201c565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051610594929190610d11565b60405180910390a45050610622565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610619929190610e92565b60405180910390a45b5050505050565b5f33905090565b5f60208202602084010151905092915050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156107ea578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016106a3959493929190610f37565b6020604051808303815f875af19250505080156106de57506040513d601f19601f820116820180604052508101906106db9190610fe8565b60015b61075f573d805f811461070c576040519150601f19603f3d011682016040523d82523d5f602084013e610711565b606091505b505f81510361075757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161074e9190610ce9565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146107e857846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107df9190610ce9565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115610999578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401610852959493929190611013565b6020604051808303815f875af192505050801561088d57506040513d601f19601f8201168201806040525081019061088a9190610fe8565b60015b61090e573d805f81146108bb576040519150601f19603f3d011682016040523d82523d5f602084013e6108c0565b606091505b505f81510361090657846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108fd9190610ce9565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461099757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161098e9190610ce9565b60405180910390fd5b505b505050505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a1c57607f821691505b602082108103610a2f57610a2e6109d8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610a917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a56565b610a9b8683610a56565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610adf610ada610ad584610ab3565b610abc565b610ab3565b9050919050565b5f819050919050565b610af883610ac5565b610b0c610b0482610ae6565b848454610a62565b825550505050565b5f90565b610b20610b14565b610b2b818484610aef565b505050565b5b81811015610b4e57610b435f82610b18565b600181019050610b31565b5050565b601f821115610b9357610b6481610a35565b610b6d84610a47565b81016020851015610b7c578190505b610b90610b8885610a47565b830182610b30565b50505b505050565b5f82821c905092915050565b5f610bb35f1984600802610b98565b1980831691505092915050565b5f610bcb8383610ba4565b9150826002028217905092915050565b610be4826109a1565b67ffffffffffffffff811115610bfd57610bfc6109ab565b5b610c078254610a05565b610c12828285610b52565b5f60209050601f831160018114610c43575f8415610c31578287015190505b610c3b8582610bc0565b865550610ca2565b601f198416610c5186610a35565b5f5b82811015610c7857848901518255600182019150602085019450602081019050610c53565b86831015610c955784890151610c91601f891682610ba4565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cd382610caa565b9050919050565b610ce381610cc9565b82525050565b5f602082019050610cfc5f830184610cda565b92915050565b610d0b81610ab3565b82525050565b5f604082019050610d245f830185610d02565b610d316020830184610d02565b9392505050565b5f608082019050610d4b5f830187610cda565b610d586020830186610d02565b610d656040830185610d02565b610d726060830184610d02565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610db282610ab3565b9150610dbd83610ab3565b9250828201905080821115610dd557610dd4610d7b565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610e0d81610ab3565b82525050565b5f610e1e8383610e04565b60208301905092915050565b5f602082019050919050565b5f610e4082610ddb565b610e4a8185610de5565b9350610e5583610df5565b805f5b83811015610e85578151610e6c8882610e13565b9750610e7783610e2a565b925050600181019050610e58565b5085935050505092915050565b5f6040820190508181035f830152610eaa8185610e36565b90508181036020830152610ebe8184610e36565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f0982610ec7565b610f138185610ed1565b9350610f23818560208601610ee1565b610f2c81610eef565b840191505092915050565b5f60a082019050610f4a5f830188610cda565b610f576020830187610cda565b610f646040830186610d02565b610f716060830185610d02565b8181036080830152610f838184610eff565b90509695505050505050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610fc781610f93565b8114610fd1575f80fd5b50565b5f81519050610fe281610fbe565b92915050565b5f60208284031215610ffd57610ffc610f8f565b5b5f61100a84828501610fd4565b91505092915050565b5f60a0820190506110265f830188610cda565b6110336020830187610cda565b81810360408301526110458186610e36565b905081810360608301526110598185610e36565b9050818103608083015261106d8184610eff565b90509695505050505050565b612242806110865f395ff3fe60806040526004361061009a575f3560e01c80634e1273f4116100635780634e1273f4146101a457806395d89b41146101e0578063a22cb4651461020a578063c204642c14610232578063e985e9c51461024e578063f242432a1461028a5761009a565b8062fdd58e1461009e57806301ffc9a7146100da57806306fdde03146101165780630e89341c146101405780632eb2c2d61461017c575b5f80fd5b3480156100a9575f80fd5b506100c460048036038101906100bf91906115c6565b6102b2565b6040516100d19190611613565b60405180910390f35b3480156100e5575f80fd5b5061010060048036038101906100fb9190611681565b610307565b60405161010d91906116c6565b60405180910390f35b348015610121575f80fd5b5061012a6103e8565b604051610137919061174f565b60405180910390f35b34801561014b575f80fd5b506101666004803603810190610161919061176f565b610474565b604051610173919061174f565b60405180910390f35b348015610187575f80fd5b506101a2600480360381019061019d919061198a565b610506565b005b3480156101af575f80fd5b506101ca60048036038101906101c59190611b15565b6105ad565b6040516101d79190611c42565b60405180910390f35b3480156101eb575f80fd5b506101f46106b4565b604051610201919061174f565b60405180910390f35b348015610215575f80fd5b50610230600480360381019061022b9190611c8c565b610740565b005b61024c60048036038101906102479190611d23565b610756565b005b348015610259575f80fd5b50610274600480360381019061026f9190611d80565b610830565b60405161028191906116c6565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab9190611dbe565b6108be565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103d157507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103e157506103e082610965565b5b9050919050565b600380546103f590611e7e565b80601f016020809104026020016040519081016040528092919081815260200182805461042190611e7e565b801561046c5780601f106104435761010080835404028352916020019161046c565b820191905f5260205f20905b81548152906001019060200180831161044f57829003601f168201915b505050505081565b60606002805461048390611e7e565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90611e7e565b80156104fa5780601f106104d1576101008083540402835291602001916104fa565b820191905f5260205f20905b8154815290600101906020018083116104dd57829003601f168201915b50505050509050919050565b5f61050f6109ce565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561055457506105528682610830565b155b156105985780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161058f929190611ebd565b60405180910390fd5b6105a586868686866109d5565b505050505050565b606081518351146105f957815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016105f0929190611ee4565b60405180910390fd5b5f835167ffffffffffffffff8111156106155761061461179e565b5b6040519080825280602002602001820160405280156106435781602001602082028036833780820191505090505b5090505f5b84518110156106a95761067f6106678287610ac990919063ffffffff16565b61067a8387610adc90919063ffffffff16565b6102b2565b82828151811061069257610691611f0b565b5b602002602001018181525050806001019050610648565b508091505092915050565b600480546106c190611e7e565b80601f01602080910402602001604051908101604052809291908181526020018280546106ed90611e7e565b80156107385780601f1061070f57610100808354040283529160200191610738565b820191905f5260205f20905b81548152906001019060200180831161071b57829003601f168201915b505050505081565b61075261074b6109ce565b8383610aef565b5050565b5f5b8383905081101561082a5783838281811061077657610775611f0b565b5b905060200201602081019061078b9190611f38565b73ffffffffffffffffffffffffffffffffffffffff1673856c4efb76c1d1ae02e20ceb03a2a6a08b0b8dc373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62856001604051610815929190611fa5565b60405180910390a48080600101915050610758565b50505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6108c76109ce565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561090c575061090a8682610830565b155b156109505780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610947929190611ebd565b60405180910390fd5b61095d8686868686610c58565b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a45575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610a3c9190611fcc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610ab5575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610aac9190611fcc565b60405180910390fd5b610ac28585858585610d5e565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b5f575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610b569190611fcc565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c4b91906116c6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610cc8575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610cbf9190611fcc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d38575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610d2f9190611fcc565b60405180910390fd5b5f80610d448585610e0a565b91509150610d558787848487610d5e565b50505050505050565b610d6a85858585610e3a565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610e03575f610da66109ce565b90506001845103610df2575f610dc55f86610adc90919063ffffffff16565b90505f610ddb5f86610adc90919063ffffffff16565b9050610deb8389898585896111ca565b5050610e01565b610e00818787878787611379565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b8051825114610e8457815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610e7b929190611ee4565b60405180910390fd5b5f610e8d6109ce565b90505f5b8351811015611089575f610eae8286610adc90919063ffffffff16565b90505f610ec48386610adc90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610fe7575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f9357888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610f8a9493929190611fe5565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461107c57805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110749190612055565b925050819055505b5050806001019050610e91565b506001835103611144575f6110a75f85610adc90919063ffffffff16565b90505f6110bd5f85610adc90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611135929190611ee4565b60405180910390a450506111c3565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516111ba929190612088565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611371578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161122a95949392919061210f565b6020604051808303815f875af192505050801561126557506040513d601f19601f82011682018060405250810190611262919061217b565b60015b6112e6573d805f8114611293576040519150601f19603f3d011682016040523d82523d5f602084013e611298565b606091505b505f8151036112de57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112d59190611fcc565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461136f57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113669190611fcc565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611520578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016113d99594939291906121a6565b6020604051808303815f875af192505050801561141457506040513d601f19601f82011682018060405250810190611411919061217b565b60015b611495573d805f8114611442576040519150601f19603f3d011682016040523d82523d5f602084013e611447565b606091505b505f81510361148d57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114849190611fcc565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461151e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016115159190611fcc565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61156282611539565b9050919050565b61157281611558565b811461157c575f80fd5b50565b5f8135905061158d81611569565b92915050565b5f819050919050565b6115a581611593565b81146115af575f80fd5b50565b5f813590506115c08161159c565b92915050565b5f80604083850312156115dc576115db611531565b5b5f6115e98582860161157f565b92505060206115fa858286016115b2565b9150509250929050565b61160d81611593565b82525050565b5f6020820190506116265f830184611604565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6116608161162c565b811461166a575f80fd5b50565b5f8135905061167b81611657565b92915050565b5f6020828403121561169657611695611531565b5b5f6116a38482850161166d565b91505092915050565b5f8115159050919050565b6116c0816116ac565b82525050565b5f6020820190506116d95f8301846116b7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611721826116df565b61172b81856116e9565b935061173b8185602086016116f9565b61174481611707565b840191505092915050565b5f6020820190508181035f8301526117678184611717565b905092915050565b5f6020828403121561178457611783611531565b5b5f611791848285016115b2565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6117d482611707565b810181811067ffffffffffffffff821117156117f3576117f261179e565b5b80604052505050565b5f611805611528565b905061181182826117cb565b919050565b5f67ffffffffffffffff8211156118305761182f61179e565b5b602082029050602081019050919050565b5f80fd5b5f61185761185284611816565b6117fc565b9050808382526020820190506020840283018581111561187a57611879611841565b5b835b818110156118a3578061188f88826115b2565b84526020840193505060208101905061187c565b5050509392505050565b5f82601f8301126118c1576118c061179a565b5b81356118d1848260208601611845565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156118f8576118f761179e565b5b61190182611707565b9050602081019050919050565b828183375f83830152505050565b5f61192e611929846118de565b6117fc565b90508281526020810184848401111561194a576119496118da565b5b61195584828561190e565b509392505050565b5f82601f8301126119715761197061179a565b5b813561198184826020860161191c565b91505092915050565b5f805f805f60a086880312156119a3576119a2611531565b5b5f6119b08882890161157f565b95505060206119c18882890161157f565b945050604086013567ffffffffffffffff8111156119e2576119e1611535565b5b6119ee888289016118ad565b935050606086013567ffffffffffffffff811115611a0f57611a0e611535565b5b611a1b888289016118ad565b925050608086013567ffffffffffffffff811115611a3c57611a3b611535565b5b611a488882890161195d565b9150509295509295909350565b5f67ffffffffffffffff821115611a6f57611a6e61179e565b5b602082029050602081019050919050565b5f611a92611a8d84611a55565b6117fc565b90508083825260208201905060208402830185811115611ab557611ab4611841565b5b835b81811015611ade5780611aca888261157f565b845260208401935050602081019050611ab7565b5050509392505050565b5f82601f830112611afc57611afb61179a565b5b8135611b0c848260208601611a80565b91505092915050565b5f8060408385031215611b2b57611b2a611531565b5b5f83013567ffffffffffffffff811115611b4857611b47611535565b5b611b5485828601611ae8565b925050602083013567ffffffffffffffff811115611b7557611b74611535565b5b611b81858286016118ad565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611bbd81611593565b82525050565b5f611bce8383611bb4565b60208301905092915050565b5f602082019050919050565b5f611bf082611b8b565b611bfa8185611b95565b9350611c0583611ba5565b805f5b83811015611c35578151611c1c8882611bc3565b9750611c2783611bda565b925050600181019050611c08565b5085935050505092915050565b5f6020820190508181035f830152611c5a8184611be6565b905092915050565b611c6b816116ac565b8114611c75575f80fd5b50565b5f81359050611c8681611c62565b92915050565b5f8060408385031215611ca257611ca1611531565b5b5f611caf8582860161157f565b9250506020611cc085828601611c78565b9150509250929050565b5f80fd5b5f8083601f840112611ce357611ce261179a565b5b8235905067ffffffffffffffff811115611d0057611cff611cca565b5b602083019150836020820283011115611d1c57611d1b611841565b5b9250929050565b5f805f60408486031215611d3a57611d39611531565b5b5f84013567ffffffffffffffff811115611d5757611d56611535565b5b611d6386828701611cce565b93509350506020611d76868287016115b2565b9150509250925092565b5f8060408385031215611d9657611d95611531565b5b5f611da38582860161157f565b9250506020611db48582860161157f565b9150509250929050565b5f805f805f60a08688031215611dd757611dd6611531565b5b5f611de48882890161157f565b9550506020611df58882890161157f565b9450506040611e06888289016115b2565b9350506060611e17888289016115b2565b925050608086013567ffffffffffffffff811115611e3857611e37611535565b5b611e448882890161195d565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e9557607f821691505b602082108103611ea857611ea7611e51565b5b50919050565b611eb781611558565b82525050565b5f604082019050611ed05f830185611eae565b611edd6020830184611eae565b9392505050565b5f604082019050611ef75f830185611604565b611f046020830184611604565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611f4d57611f4c611531565b5b5f611f5a8482850161157f565b91505092915050565b5f819050919050565b5f819050919050565b5f611f8f611f8a611f8584611f63565b611f6c565b611593565b9050919050565b611f9f81611f75565b82525050565b5f604082019050611fb85f830185611604565b611fc56020830184611f96565b9392505050565b5f602082019050611fdf5f830184611eae565b92915050565b5f608082019050611ff85f830187611eae565b6120056020830186611604565b6120126040830185611604565b61201f6060830184611604565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61205f82611593565b915061206a83611593565b925082820190508082111561208257612081612028565b5b92915050565b5f6040820190508181035f8301526120a08185611be6565b905081810360208301526120b48184611be6565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6120e1826120bd565b6120eb81856120c7565b93506120fb8185602086016116f9565b61210481611707565b840191505092915050565b5f60a0820190506121225f830188611eae565b61212f6020830187611eae565b61213c6040830186611604565b6121496060830185611604565b818103608083015261215b81846120d7565b90509695505050505050565b5f8151905061217581611657565b92915050565b5f602082840312156121905761218f611531565b5b5f61219d84828501612167565b91505092915050565b5f60a0820190506121b95f830188611eae565b6121c66020830187611eae565b81810360408301526121d88186611be6565b905081810360608301526121ec8185611be6565b9050818103608083015261220081846120d7565b9050969550505050505056fea2646970667358221220eddf6249e1ac32576737a6d557fb860daad1c44117523ddda5b0c4aa430840d564736f6c63430008190033697066733a2f2f516d586b35786a4447636d7763656e37705268435a3446515054543568726b6f7958686b4635314b5a6354567444