60806040525f60065f6101000a81548160ff02191690831515021790555034801562000029575f80fd5b506040516200428a3803806200428a83398181016040528101906200004f9190620004aa565b6040518060400160405280600c81526020017f534f4f4d4f4b2050524f4f4600000000000000000000000000000000000000008152506040518060400160405280600681526020017f534f4f4d4f4b0000000000000000000000000000000000000000000000000000815250828282815f9081620000ce91906200073e565b508060019081620000e091906200073e565b50505062000103620000f76200017060201b60201c565b6200018660201b60201c565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000155600a6200024960201b60201c565b62000166836200025d60201b60201c565b5050505062000926565b5f62000181620002dd60201b60201c565b905090565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001815f015f828254019250508190555050565b60065f9054906101000a900460ff1615620002af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a69062000880565b60405180910390fd5b620002c0816200038b60201b60201c565b600160065f6101000a81548160ff02191690831515021790555050565b5f3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160362000384575f80368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505090505f80369050905073ffffffffffffffffffffffffffffffffffffffff81830151169250505062000388565b3390505b90565b6040518060800160405280604f81526020016200423b604f91398051906020012081805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012030620004026200043960201b60201c565b5f1b6040516020016200041a959493929190620008cb565b6040516020818303038152906040528051906020012060078190555050565b5f804690508091505090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620004748262000449565b9050919050565b620004868162000468565b811462000491575f80fd5b50565b5f81519050620004a4816200047b565b92915050565b5f60208284031215620004c257620004c162000445565b5b5f620004d18482850162000494565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200055657607f821691505b6020821081036200056c576200056b62000511565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005d07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000593565b620005dc868362000593565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000626620006206200061a84620005f4565b620005fd565b620005f4565b9050919050565b5f819050919050565b620006418362000606565b6200065962000650826200062d565b8484546200059f565b825550505050565b5f90565b6200066f62000661565b6200067c81848462000636565b505050565b5b81811015620006a357620006975f8262000665565b60018101905062000682565b5050565b601f821115620006f257620006bc8162000572565b620006c78462000584565b81016020851015620006d7578190505b620006ef620006e68562000584565b83018262000681565b50505b505050565b5f82821c905092915050565b5f620007145f1984600802620006f7565b1980831691505092915050565b5f6200072e838362000703565b9150826002028217905092915050565b6200074982620004da565b67ffffffffffffffff811115620007655762000764620004e4565b5b6200077182546200053e565b6200077e828285620006a7565b5f60209050601f831160018114620007b4575f84156200079f578287015190505b620007ab858262000721565b8655506200081a565b601f198416620007c48662000572565b5f5b82811015620007ed57848901518255600182019150602085019450602081019050620007c6565b868310156200080d578489015162000809601f89168262000703565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f616c726561647920696e697465640000000000000000000000000000000000005f82015250565b5f62000868600e8362000822565b9150620008758262000832565b602082019050919050565b5f6020820190508181035f83015262000899816200085a565b9050919050565b5f819050919050565b620008b481620008a0565b82525050565b620008c58162000468565b82525050565b5f60a082019050620008e05f830188620008a9565b620008ef6020830187620008a9565b620008fe6040830186620008a9565b6200090d6060830185620008ba565b6200091c6080830184620008a9565b9695505050505050565b61390780620009345f395ff3fe608060405260043610610165575f3560e01c80636352211e116100d0578063a22cb46511610089578063d547cfb711610063578063d547cfb71461052d578063e8a3d48514610557578063e985e9c514610581578063f2fde38b146105bd57610165565b8063a22cb465146104a1578063b88d4fde146104c9578063c87b56dd146104f157610165565b80636352211e1461039757806370a08231146103d3578063715018a61461040f578063755edd17146104255780638da5cb5b1461044d57806395d89b411461047757610165565b806318160ddd1161012257806318160ddd1461028d57806320379ee5146102b757806323b872dd146102e15780632d0335ab146103095780633408e4701461034557806342842e0e1461036f57610165565b806301ffc9a71461016957806306fdde03146101a5578063081812fc146101cf578063095ea7b31461020b5780630c53c51c146102335780630f7e597014610263575b5f80fd5b348015610174575f80fd5b5061018f600480360381019061018a9190612281565b6105e5565b60405161019c91906122c6565b60405180910390f35b3480156101b0575f80fd5b506101b96106c6565b6040516101c69190612369565b60405180910390f35b3480156101da575f80fd5b506101f560048036038101906101f091906123bc565b610755565b6040516102029190612426565b60405180910390f35b348015610216575f80fd5b50610231600480360381019061022c9190612469565b6107d6565b005b61024d6004803603810190610248919061263c565b6108ec565b60405161025a9190612721565b60405180910390f35b34801561026e575f80fd5b50610277610b52565b6040516102849190612369565b60405180910390f35b348015610298575f80fd5b506102a1610b8b565b6040516102ae9190612750565b60405180910390f35b3480156102c2575f80fd5b506102cb610ba7565b6040516102d89190612778565b60405180910390f35b3480156102ec575f80fd5b5061030760048036038101906103029190612791565b610bb0565b005b348015610314575f80fd5b5061032f600480360381019061032a91906127e1565b610c10565b60405161033c9190612750565b60405180910390f35b348015610350575f80fd5b50610359610c56565b6040516103669190612750565b60405180910390f35b34801561037a575f80fd5b5061039560048036038101906103909190612791565b610c62565b005b3480156103a2575f80fd5b506103bd60048036038101906103b891906123bc565b610c81565b6040516103ca9190612426565b60405180910390f35b3480156103de575f80fd5b506103f960048036038101906103f491906127e1565b610d2d565b6040516104069190612750565b60405180910390f35b34801561041a575f80fd5b50610423610de1565b005b348015610430575f80fd5b5061044b600480360381019061044691906127e1565b610e68565b005b348015610458575f80fd5b50610461610f09565b60405161046e9190612426565b60405180910390f35b348015610482575f80fd5b5061048b610f31565b6040516104989190612369565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c29190612836565b610fc1565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190612874565b610fd7565b005b3480156104fc575f80fd5b50610517600480360381019061051291906123bc565b611039565b6040516105249190612369565b60405180910390f35b348015610538575f80fd5b50610541611073565b60405161054e9190612369565b60405180910390f35b348015610562575f80fd5b5061056b611093565b6040516105789190612369565b60405180910390f35b34801561058c575f80fd5b506105a760048036038101906105a291906128f4565b6110b3565b6040516105b491906122c6565b60405180910390f35b3480156105c8575f80fd5b506105e360048036038101906105de91906127e1565b6111a1565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106af57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106bf57506106be82611297565b5b9050919050565b60605f80546106d49061295f565b80601f01602080910402602001604051908101604052809291908181526020018280546107009061295f565b801561074b5780601f106107225761010080835404028352916020019161074b565b820191905f5260205f20905b81548152906001019060200180831161072e57829003601f168201915b5050505050905090565b5f61075f82611300565b61079e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610795906129ff565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f6107e082610c81565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612a8d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661086f611368565b73ffffffffffffffffffffffffffffffffffffffff16148061089e575061089d81610898611368565b6110b3565b5b6108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d490612b1b565b60405180910390fd5b6108e78383611376565b505050565b60605f604051806060016040528060085f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815250905061096c878287878761142c565b6109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a290612ba9565b60405180910390fd5b6109fc600160085f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153090919063ffffffff16565b60085f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b873388604051610a7093929190612be7565b60405180910390a15f803073ffffffffffffffffffffffffffffffffffffffff16888a604051602001610aa4929190612ca2565b604051602081830303815290604052604051610ac09190612cc9565b5f604051808303815f865af19150503d805f8114610af9576040519150601f19603f3d011682016040523d82523d5f602084013e610afe565b606091505b509150915081610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90612d29565b60405180910390fd5b80935050505095945050505050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b5f6001610b98600a611545565b610ba29190612d74565b905090565b5f600754905090565b610bc1610bbb611368565b82611551565b610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612e17565b60405180910390fd5b610c0b83838361162d565b505050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f804690508091505090565b610c7c83838360405180602001604052805f815250610fd7565b505050565b5f8060025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612ea5565b60405180910390fd5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390612f33565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610de9611368565b73ffffffffffffffffffffffffffffffffffffffff16610e07610f09565b73ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490612f9b565b60405180910390fd5b610e665f61187d565b565b610e70611368565b73ffffffffffffffffffffffffffffffffffffffff16610e8e610f09565b73ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb90612f9b565b60405180910390fd5b5f610eef600a611545565b9050610efb600a611940565b610f058282611954565b5050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610f409061295f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6c9061295f565b8015610fb75780601f10610f8e57610100808354040283529160200191610fb7565b820191905f5260205f20905b815481529060010190602001808311610f9a57829003601f168201915b5050505050905090565b610fd3610fcc611368565b8383611971565b5050565b610fe8610fe2611368565b83611551565b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612e17565b60405180910390fd5b61103384848484611ad8565b50505050565b6060611043611073565b61104c83611b34565b60405160200161105d929190612ff3565b6040516020818303038152906040529050919050565b606060405180608001604052806046815260200161388c60469139905090565b60606040518060800160405280604e81526020016137fb604e9139905090565b5f80600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663c4552791866040518263ffffffff1660e01b81526004016111299190612426565b602060405180830381865afa158015611144573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111689190613051565b73ffffffffffffffffffffffffffffffffffffffff160361118d57600191505061119b565b6111978484611c8d565b9150505b92915050565b6111a9611368565b73ffffffffffffffffffffffffffffffffffffffff166111c7610f09565b73ffffffffffffffffffffffffffffffffffffffff161461121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490612f9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611282906130ec565b60405180910390fd5b6112948161187d565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f611371611d1b565b905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166113e683610c81565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361149b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114929061317a565b60405180910390fd5b60016114ae6114a987611dc7565b611e2d565b8386866040515f81526020016040526040516114cd94939291906131a7565b6020604051602081039080840390855afa1580156114ed573d5f803e3d5ffd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905095945050505050565b5f818361153d91906131ea565b905092915050565b5f815f01549050919050565b5f61155b82611300565b61159a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115919061328d565b60405180910390fd5b5f6115a483610c81565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061161357508373ffffffffffffffffffffffffffffffffffffffff166115fb84610755565b73ffffffffffffffffffffffffffffffffffffffff16145b80611624575061162381856110b3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661164d82610c81565b73ffffffffffffffffffffffffffffffffffffffff16146116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a9061331b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611711576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611708906133a9565b60405180910390fd5b61171c838383611e65565b6117265f82611376565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117739190612d74565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117c791906131ea565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001815f015f828254019250508190555050565b61196d828260405180602001604052805f815250611e6a565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d690613411565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611acb91906122c6565b60405180910390a3505050565b611ae384848461162d565b611aef84848484611ec4565b611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b259061349f565b60405180910390fd5b50505050565b60605f8203611b7a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611c88565b5f8290505f5b5f8214611ba9578080611b92906134bd565b915050600a82611ba29190613531565b9150611b80565b5f8167ffffffffffffffff811115611bc457611bc36124af565b5b6040519080825280601f01601f191660200182016040528015611bf65781602001600182028036833780820191505090505b5090505b5f8514611c8157600182611c0e9190612d74565b9150600a85611c1d9190613561565b6030611c2991906131ea565b60f81b818381518110611c3f57611c3e613591565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611c7a9190613531565b9450611bfa565b8093505050505b919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611dc0575f80368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505090505f80369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050611dc4565b3390505b90565b5f6040518060800160405280604381526020016138496043913980519060200120825f01518360200151846040015180519060200120604051602001611e1094939291906135be565b604051602081830303815290604052805190602001209050919050565b5f611e36610ba7565b82604051602001611e4892919061366b565b604051602081830303815290604052805190602001209050919050565b505050565b611e748383612046565b611e805f848484611ec4565b611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb69061349f565b60405180910390fd5b505050565b5f611ee48473ffffffffffffffffffffffffffffffffffffffff1661220a565b15612039578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f0d611368565b8786866040518563ffffffff1660e01b8152600401611f2f94939291906136a1565b6020604051808303815f875af1925050508015611f6a57506040513d601f19601f82011682018060405250810190611f6791906136ff565b60015b611fe9573d805f8114611f98576040519150601f19603f3d011682016040523d82523d5f602084013e611f9d565b606091505b505f815103611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd89061349f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061203e565b600190505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ab90613774565b60405180910390fd5b6120bd81611300565b156120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f4906137dc565b60405180910390fd5b6121085f8383611e65565b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461215591906131ea565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f80823b90505f8111915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122608161222c565b811461226a575f80fd5b50565b5f8135905061227b81612257565b92915050565b5f6020828403121561229657612295612224565b5b5f6122a38482850161226d565b91505092915050565b5f8115159050919050565b6122c0816122ac565b82525050565b5f6020820190506122d95f8301846122b7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123165780820151818401526020810190506122fb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61233b826122df565b61234581856122e9565b93506123558185602086016122f9565b61235e81612321565b840191505092915050565b5f6020820190508181035f8301526123818184612331565b905092915050565b5f819050919050565b61239b81612389565b81146123a5575f80fd5b50565b5f813590506123b681612392565b92915050565b5f602082840312156123d1576123d0612224565b5b5f6123de848285016123a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612410826123e7565b9050919050565b61242081612406565b82525050565b5f6020820190506124395f830184612417565b92915050565b61244881612406565b8114612452575f80fd5b50565b5f813590506124638161243f565b92915050565b5f806040838503121561247f5761247e612224565b5b5f61248c85828601612455565b925050602061249d858286016123a8565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6124e582612321565b810181811067ffffffffffffffff82111715612504576125036124af565b5b80604052505050565b5f61251661221b565b905061252282826124dc565b919050565b5f67ffffffffffffffff821115612541576125406124af565b5b61254a82612321565b9050602081019050919050565b828183375f83830152505050565b5f61257761257284612527565b61250d565b905082815260208101848484011115612593576125926124ab565b5b61259e848285612557565b509392505050565b5f82601f8301126125ba576125b96124a7565b5b81356125ca848260208601612565565b91505092915050565b5f819050919050565b6125e5816125d3565b81146125ef575f80fd5b50565b5f81359050612600816125dc565b92915050565b5f60ff82169050919050565b61261b81612606565b8114612625575f80fd5b50565b5f8135905061263681612612565b92915050565b5f805f805f60a0868803121561265557612654612224565b5b5f61266288828901612455565b955050602086013567ffffffffffffffff81111561268357612682612228565b5b61268f888289016125a6565b94505060406126a0888289016125f2565b93505060606126b1888289016125f2565b92505060806126c288828901612628565b9150509295509295909350565b5f81519050919050565b5f82825260208201905092915050565b5f6126f3826126cf565b6126fd81856126d9565b935061270d8185602086016122f9565b61271681612321565b840191505092915050565b5f6020820190508181035f83015261273981846126e9565b905092915050565b61274a81612389565b82525050565b5f6020820190506127635f830184612741565b92915050565b612772816125d3565b82525050565b5f60208201905061278b5f830184612769565b92915050565b5f805f606084860312156127a8576127a7612224565b5b5f6127b586828701612455565b93505060206127c686828701612455565b92505060406127d7868287016123a8565b9150509250925092565b5f602082840312156127f6576127f5612224565b5b5f61280384828501612455565b91505092915050565b612815816122ac565b811461281f575f80fd5b50565b5f813590506128308161280c565b92915050565b5f806040838503121561284c5761284b612224565b5b5f61285985828601612455565b925050602061286a85828601612822565b9150509250929050565b5f805f806080858703121561288c5761288b612224565b5b5f61289987828801612455565b94505060206128aa87828801612455565b93505060406128bb878288016123a8565b925050606085013567ffffffffffffffff8111156128dc576128db612228565b5b6128e8878288016125a6565b91505092959194509250565b5f806040838503121561290a57612909612224565b5b5f61291785828601612455565b925050602061292885828601612455565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061297657607f821691505b60208210810361298957612988612932565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f6129e9602c836122e9565b91506129f48261298f565b604082019050919050565b5f6020820190508181035f830152612a16816129dd565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a776021836122e9565b9150612a8282612a1d565b604082019050919050565b5f6020820190508181035f830152612aa481612a6b565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f775f8201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b5f612b056038836122e9565b9150612b1082612aab565b604082019050919050565b5f6020820190508181035f830152612b3281612af9565b9050919050565b7f5369676e657220616e64207369676e617475726520646f206e6f74206d6174635f8201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b936021836122e9565b9150612b9e82612b39565b604082019050919050565b5f6020820190508181035f830152612bc081612b87565b9050919050565b5f612bd1826123e7565b9050919050565b612be181612bc7565b82525050565b5f606082019050612bfa5f830186612417565b612c076020830185612bd8565b8181036040830152612c1981846126e9565b9050949350505050565b5f81905092915050565b5f612c37826126cf565b612c418185612c23565b9350612c518185602086016122f9565b80840191505092915050565b5f8160601b9050919050565b5f612c7382612c5d565b9050919050565b5f612c8482612c69565b9050919050565b612c9c612c9782612406565b612c7a565b82525050565b5f612cad8285612c2d565b9150612cb98284612c8b565b6014820191508190509392505050565b5f612cd48284612c2d565b915081905092915050565b7f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000005f82015250565b5f612d13601c836122e9565b9150612d1e82612cdf565b602082019050919050565b5f6020820190508181035f830152612d4081612d07565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d7e82612389565b9150612d8983612389565b9250828203905081811115612da157612da0612d47565b5b92915050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f5f8201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b5f612e016031836122e9565b9150612e0c82612da7565b604082019050919050565b5f6020820190508181035f830152612e2e81612df5565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e65786973745f8201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b5f612e8f6029836122e9565b9150612e9a82612e35565b604082019050919050565b5f6020820190508181035f830152612ebc81612e83565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f612f1d602a836122e9565b9150612f2882612ec3565b604082019050919050565b5f6020820190508181035f830152612f4a81612f11565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612f856020836122e9565b9150612f9082612f51565b602082019050919050565b5f6020820190508181035f830152612fb281612f79565b9050919050565b5f81905092915050565b5f612fcd826122df565b612fd78185612fb9565b9350612fe78185602086016122f9565b80840191505092915050565b5f612ffe8285612fc3565b915061300a8284612fc3565b91508190509392505050565b5f61302082612406565b9050919050565b61303081613016565b811461303a575f80fd5b50565b5f8151905061304b81613027565b92915050565b5f6020828403121561306657613065612224565b5b5f6130738482850161303d565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130d66026836122e9565b91506130e18261307c565b604082019050919050565b5f6020820190508181035f830152613103816130ca565b9050919050565b7f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f535f8201527f49474e4552000000000000000000000000000000000000000000000000000000602082015250565b5f6131646025836122e9565b915061316f8261310a565b604082019050919050565b5f6020820190508181035f83015261319181613158565b9050919050565b6131a181612606565b82525050565b5f6080820190506131ba5f830187612769565b6131c76020830186613198565b6131d46040830185612769565b6131e16060830184612769565b95945050505050565b5f6131f482612389565b91506131ff83612389565b925082820190508082111561321757613216612d47565b5b92915050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f613277602c836122e9565b91506132828261321d565b604082019050919050565b5f6020820190508181035f8301526132a48161326b565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e207468617420695f8201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b5f6133056029836122e9565b9150613310826132ab565b604082019050919050565b5f6020820190508181035f830152613332816132f9565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6133936024836122e9565b915061339e82613339565b604082019050919050565b5f6020820190508181035f8301526133c081613387565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f6133fb6019836122e9565b9150613406826133c7565b602082019050919050565b5f6020820190508181035f830152613428816133ef565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f6134896032836122e9565b91506134948261342f565b604082019050919050565b5f6020820190508181035f8301526134b68161347d565b9050919050565b5f6134c782612389565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134f9576134f8612d47565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61353b82612389565b915061354683612389565b92508261355657613555613504565b5b828204905092915050565b5f61356b82612389565b915061357683612389565b92508261358657613585613504565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6080820190506135d15f830187612769565b6135de6020830186612741565b6135eb6040830185612417565b6135f86060830184612769565b95945050505050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f613635600283612fb9565b915061364082613601565b600282019050919050565b5f819050919050565b613665613660826125d3565b61364b565b82525050565b5f61367582613629565b91506136818285613654565b6020820191506136918284613654565b6020820191508190509392505050565b5f6080820190506136b45f830187612417565b6136c16020830186612417565b6136ce6040830185612741565b81810360608301526136e081846126e9565b905095945050505050565b5f815190506136f981612257565b92915050565b5f6020828403121561371457613713612224565b5b5f613721848285016136eb565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f61375e6020836122e9565b91506137698261372a565b602082019050919050565b5f6020820190508181035f83015261378b81613752565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f6137c6601c836122e9565b91506137d182613792565b602082019050919050565b5f6020820190508181035f8301526137f3816137ba565b905091905056fe68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f496e6779755461652f736f6f6d6f6b2d70726f6f662f6d61696e2f6d657461646174612f636f6e74726163744d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e61747572652968747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f496e6779755461652f736f6f6d6f6b2d70726f6f662f6d61696e2f6d657461646174612fa264697066735822122035b1514e937926eb012f15159bc12e650acae8cbbe952cce8dd4061cd0284dca64736f6c63430008150033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1