608060405234801562000010575f80fd5b506040518060400160405280600d81526020017f426c61737476657273654e4654000000000000000000000000000000000000008152506040518060400160405280600481526020017f424e465400000000000000000000000000000000000000000000000000000000815250815f90816200008d91906200034c565b5080600190816200009f91906200034c565b50505033600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000430565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200016457607f821691505b6020821081036200017a57620001796200011f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620001de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ea8683620001a1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002346200022e620002288462000202565b6200020b565b62000202565b9050919050565b5f819050919050565b6200024f8362000214565b620002676200025e826200023b565b848454620001ad565b825550505050565b5f90565b6200027d6200026f565b6200028a81848462000244565b505050565b5b81811015620002b157620002a55f8262000273565b60018101905062000290565b5050565b601f8211156200030057620002ca8162000180565b620002d58462000192565b81016020851015620002e5578190505b620002fd620002f48562000192565b8301826200028f565b50505b505050565b5f82821c905092915050565b5f620003225f198460080262000305565b1980831691505092915050565b5f6200033c838362000311565b9150826002028217905092915050565b6200035782620000e8565b67ffffffffffffffff811115620003735762000372620000f2565b5b6200037f82546200014c565b6200038c828285620002b5565b5f60209050601f831160018114620003c2575f8415620003ad578287015190505b620003b985826200032f565b86555062000428565b601f198416620003d28662000180565b5f5b82811015620003fb57848901518255600182019150602085019450602081019050620003d4565b868310156200041b578489015162000417601f89168262000311565b8355505b6001600288020188555050505b505050505050565b612c0a806200043e5f395ff3fe608060405260043610610134575f3560e01c80634f6ccce7116100aa578063a22cb4651161006e578063a22cb46514610442578063b88d4fde1461046a578063c87b56dd14610492578063ce606ee0146104ce578063e985e9c5146104f8578063f3fef3a31461053457610134565b80634f6ccce7146103285780636352211e1461036457806370a08231146103a057806383638710146103dc57806395d89b411461041857610134565b806318148f1b116100fc57806318148f1b1461020c57806318160ddd1461024857806323b872dd146102725780632f745c591461029a57806332cb6b0c146102d657806342842e0e1461030057610134565b806301ffc9a71461013857806306fdde0314610174578063081812fc1461019e578063095ea7b3146101da5780631249c58b14610202575b5f80fd5b348015610143575f80fd5b5061015e60048036038101906101599190612077565b61055c565b60405161016b91906120bc565b60405180910390f35b34801561017f575f80fd5b506101886105d5565b604051610195919061215f565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf91906121b2565b610664565b6040516101d1919061221c565b60405180910390f35b3480156101e5575f80fd5b5061020060048036038101906101fb919061225f565b61067f565b005b61020a610695565b005b348015610217575f80fd5b50610232600480360381019061022d919061229d565b610747565b60405161023f919061237f565b60405180910390f35b348015610253575f80fd5b5061025c6107f2565b60405161026991906123ae565b60405180910390f35b34801561027d575f80fd5b50610298600480360381019061029391906123c7565b6107fe565b005b3480156102a5575f80fd5b506102c060048036038101906102bb919061225f565b6108fd565b6040516102cd91906123ae565b60405180910390f35b3480156102e1575f80fd5b506102ea6109a1565b6040516102f791906123ae565b60405180910390f35b34801561030b575f80fd5b50610326600480360381019061032191906123c7565b6109a7565b005b348015610333575f80fd5b5061034e600480360381019061034991906121b2565b6109c6565b60405161035b91906123ae565b60405180910390f35b34801561036f575f80fd5b5061038a600480360381019061038591906121b2565b610a38565b604051610397919061221c565b60405180910390f35b3480156103ab575f80fd5b506103c660048036038101906103c1919061229d565b610a49565b6040516103d391906123ae565b60405180910390f35b3480156103e7575f80fd5b5061040260048036038101906103fd91906121b2565b610aff565b60405161040f919061221c565b60405180910390f35b348015610423575f80fd5b5061042c610b10565b604051610439919061215f565b60405180910390f35b34801561044d575f80fd5b5061046860048036038101906104639190612441565b610ba0565b005b348015610475575f80fd5b50610490600480360381019061048b91906125ab565b610bb6565b005b34801561049d575f80fd5b506104b860048036038101906104b391906121b2565b610bd3565b6040516104c5919061215f565b60405180910390f35b3480156104d9575f80fd5b506104e2610c39565b6040516104ef919061221c565b60405180910390f35b348015610503575f80fd5b5061051e6004803603810190610519919061262b565b610c5e565b60405161052b91906120bc565b60405180910390f35b34801561053f575f80fd5b5061055a600480360381019061055591906126a4565b610cec565b005b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105ce57506105cd82610e06565b5b9050919050565b60605f80546105e39061270f565b80601f016020809104026020016040519081016040528092919081815260200182805461060f9061270f565b801561065a5780601f106106315761010080835404028352916020019161065a565b820191905f5260205f20905b81548152906001019060200180831161063d57829003601f168201915b5050505050905090565b5f61066e82610ee7565b5061067882610f6d565b9050919050565b610691828261068c610fa6565b610fad565b5050565b6127106106a06107f2565b106106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612789565b60405180910390fd5b5f341015610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a906127f1565b60405180910390fd5b5f600161072e6107f2565b610738919061283c565b90506107443382610fbf565b50565b60605f61075383610a49565b90505f8167ffffffffffffffff8111156107705761076f612487565b5b60405190808252806020026020018201604052801561079e5781602001602082028036833780820191505090505b5090505f5b828110156107e7576107b585826108fd565b8282815181106107c8576107c761286f565b5b60200260200101818152505080806107df9061289c565b9150506107a3565b508092505050919050565b5f600880549050905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086e575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610865919061221c565b60405180910390fd5b5f610881838361087c610fa6565b610fdc565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108f7578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108ee939291906128e3565b60405180910390fd5b50505050565b5f61090783610a49565b821061094c5782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610943929190612918565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b61271081565b6109c183838360405180602001604052805f815250610bb6565b505050565b5f6109cf6107f2565b8210610a14575f826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610a0b929190612918565b60405180910390fd5b60088281548110610a2857610a2761286f565b5b905f5260205f2001549050919050565b5f610a4282610ee7565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aba575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610ab1919061221c565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610b0982610a38565b9050919050565b606060018054610b1f9061270f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4b9061270f565b8015610b965780601f10610b6d57610100808354040283529160200191610b96565b820191905f5260205f20905b815481529060010190602001808311610b7957829003601f168201915b5050505050905090565b610bb2610bab610fa6565b83836110f6565b5050565b610bc18484846107fe565b610bcd8484848461125f565b50505050565b6060610bde82610ee7565b505f610be8611411565b90505f815111610c065760405180602001604052805f815250610c31565b80610c1084611427565b604051602001610c21929190612979565b6040516020818303038152906040525b915050919050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d72906129e6565b60405180910390fd5b80471015610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590612a4e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610e01573d5f803e3d5ffd5b505050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ed057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610ee05750610edf826114f1565b5b9050919050565b5f80610ef28361155a565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f6457826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610f5b91906123ae565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610fba8383836001611593565b505050565b610fd8828260405180602001604052805f815250611752565b5050565b5f80610fe985858561176d565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361102c5761102784611978565b61106b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461106a5761106981856119bc565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036110ac576110a784611b06565b6110eb565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110ea576110e98585611bc6565b5b5b809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361116657816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161115d919061221c565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161125291906120bc565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561140b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026112a2610fa6565b8685856040518563ffffffff1660e01b81526004016112c49493929190612abe565b6020604051808303815f875af19250505080156112ff57506040513d601f19601f820116820180604052508101906112fc9190612b1c565b60015b611380573d805f811461132d576040519150601f19603f3d011682016040523d82523d5f602084013e611332565b606091505b505f81510361137857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161136f919061221c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461140957836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611400919061221c565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b60605f600161143584611c4a565b0190505f8167ffffffffffffffff81111561145357611452612487565b5b6040519080825280601f01601f1916602001820160405280156114855781602001600182028036833780820191505090505b5090505f82602001820190505b6001156114e6578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816114db576114da612b47565b5b0494505f8503611492575b819350505050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806115cb57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116fd575f6115da84610ee7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561164457508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561165757506116558184610c5e565b155b1561169957826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611690919061221c565b60405180910390fd5b81156116fb57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61175c8383611d9b565b6117685f84848461125f565b505050565b5f806117788461155a565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117b9576117b8818486611e8e565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611844576117f85f855f80611593565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146118c357600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f6119c683610a49565b90505f60075f8481526020019081526020015f20549050818114611a9d575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f6001600880549050611b199190612b74565b90505f60095f8481526020019081526020015f205490505f60088381548110611b4557611b4461286f565b5b905f5260205f20015490508060088381548110611b6557611b6461286f565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f90556008805480611bad57611bac612ba7565b5b600190038181905f5260205f20015f9055905550505050565b5f6001611bd284610a49565b611bdc9190612b74565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611ca6577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611c9c57611c9b612b47565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611ce3576d04ee2d6d415b85acef81000000008381611cd957611cd8612b47565b5b0492506020810190505b662386f26fc100008310611d1257662386f26fc100008381611d0857611d07612b47565b5b0492506010810190505b6305f5e1008310611d3b576305f5e1008381611d3157611d30612b47565b5b0492506008810190505b6127108310611d60576127108381611d5657611d55612b47565b5b0492506004810190505b60648310611d835760648381611d7957611d78612b47565b5b0492506002810190505b600a8310611d92576001810190505b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0b575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e02919061221c565b60405180910390fd5b5f611e1783835f610fdc565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e89575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611e80919061221c565b60405180910390fd5b505050565b611e99838383611f51565b611f4c575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f0d57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611f0491906123ae565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611f43929190612918565b60405180910390fd5b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561200857508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611fc95750611fc88484610c5e565b5b8061200757508273ffffffffffffffffffffffffffffffffffffffff16611fef83610f6d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61205681612022565b8114612060575f80fd5b50565b5f813590506120718161204d565b92915050565b5f6020828403121561208c5761208b61201a565b5b5f61209984828501612063565b91505092915050565b5f8115159050919050565b6120b6816120a2565b82525050565b5f6020820190506120cf5f8301846120ad565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561210c5780820151818401526020810190506120f1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612131826120d5565b61213b81856120df565b935061214b8185602086016120ef565b61215481612117565b840191505092915050565b5f6020820190508181035f8301526121778184612127565b905092915050565b5f819050919050565b6121918161217f565b811461219b575f80fd5b50565b5f813590506121ac81612188565b92915050565b5f602082840312156121c7576121c661201a565b5b5f6121d48482850161219e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612206826121dd565b9050919050565b612216816121fc565b82525050565b5f60208201905061222f5f83018461220d565b92915050565b61223e816121fc565b8114612248575f80fd5b50565b5f8135905061225981612235565b92915050565b5f80604083850312156122755761227461201a565b5b5f6122828582860161224b565b92505060206122938582860161219e565b9150509250929050565b5f602082840312156122b2576122b161201a565b5b5f6122bf8482850161224b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6122fa8161217f565b82525050565b5f61230b83836122f1565b60208301905092915050565b5f602082019050919050565b5f61232d826122c8565b61233781856122d2565b9350612342836122e2565b805f5b838110156123725781516123598882612300565b975061236483612317565b925050600181019050612345565b5085935050505092915050565b5f6020820190508181035f8301526123978184612323565b905092915050565b6123a88161217f565b82525050565b5f6020820190506123c15f83018461239f565b92915050565b5f805f606084860312156123de576123dd61201a565b5b5f6123eb8682870161224b565b93505060206123fc8682870161224b565b925050604061240d8682870161219e565b9150509250925092565b612420816120a2565b811461242a575f80fd5b50565b5f8135905061243b81612417565b92915050565b5f80604083850312156124575761245661201a565b5b5f6124648582860161224b565b92505060206124758582860161242d565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6124bd82612117565b810181811067ffffffffffffffff821117156124dc576124db612487565b5b80604052505050565b5f6124ee612011565b90506124fa82826124b4565b919050565b5f67ffffffffffffffff82111561251957612518612487565b5b61252282612117565b9050602081019050919050565b828183375f83830152505050565b5f61254f61254a846124ff565b6124e5565b90508281526020810184848401111561256b5761256a612483565b5b61257684828561252f565b509392505050565b5f82601f8301126125925761259161247f565b5b81356125a284826020860161253d565b91505092915050565b5f805f80608085870312156125c3576125c261201a565b5b5f6125d08782880161224b565b94505060206125e18782880161224b565b93505060406125f28782880161219e565b925050606085013567ffffffffffffffff8111156126135761261261201e565b5b61261f8782880161257e565b91505092959194509250565b5f80604083850312156126415761264061201a565b5b5f61264e8582860161224b565b925050602061265f8582860161224b565b9150509250929050565b5f612673826121dd565b9050919050565b61268381612669565b811461268d575f80fd5b50565b5f8135905061269e8161267a565b92915050565b5f80604083850312156126ba576126b961201a565b5b5f6126c785828601612690565b92505060206126d88582860161219e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061272657607f821691505b602082108103612739576127386126e2565b5b50919050565b7f4d617820737570706c79207265616368656400000000000000000000000000005f82015250565b5f6127736012836120df565b915061277e8261273f565b602082019050919050565b5f6020820190508181035f8301526127a081612767565b9050919050565b7f496e73756666696369656e742066756e647300000000000000000000000000005f82015250565b5f6127db6012836120df565b91506127e6826127a7565b602082019050919050565b5f6020820190508181035f830152612808816127cf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128468261217f565b91506128518361217f565b92508282019050808211156128695761286861280f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6128a68261217f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128d8576128d761280f565b5b600182019050919050565b5f6060820190506128f65f83018661220d565b612903602083018561239f565b612910604083018461220d565b949350505050565b5f60408201905061292b5f83018561220d565b612938602083018461239f565b9392505050565b5f81905092915050565b5f612953826120d5565b61295d818561293f565b935061296d8185602086016120ef565b80840191505092915050565b5f6129848285612949565b91506129908284612949565b91508190509392505050565b7f4e6f7420746865206f776e6572000000000000000000000000000000000000005f82015250565b5f6129d0600d836120df565b91506129db8261299c565b602082019050919050565b5f6020820190508181035f8301526129fd816129c4565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f612a38601d836120df565b9150612a4382612a04565b602082019050919050565b5f6020820190508181035f830152612a6581612a2c565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f612a9082612a6c565b612a9a8185612a76565b9350612aaa8185602086016120ef565b612ab381612117565b840191505092915050565b5f608082019050612ad15f83018761220d565b612ade602083018661220d565b612aeb604083018561239f565b8181036060830152612afd8184612a86565b905095945050505050565b5f81519050612b168161204d565b92915050565b5f60208284031215612b3157612b3061201a565b5b5f612b3e84828501612b08565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b7e8261217f565b9150612b898361217f565b9250828203905081811115612ba157612ba061280f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea2646970667358221220c507e33f5c3b8ade018307efcec9f4f1b01a8ed62c788ad832f8031502f25c3664736f6c63430008140033