0x60806040523480156200001157600080fd5b506040518060400160405280600781526020017f53706f74696679000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f535054000000000000000000000000000000000000000000000000000000000081525081600090816200008f91906200042d565b508060019081620000a191906200042d565b5050506000600760006101000a81548160ff021916908315150217905550620000df620000d3620000e560201b60201c565b620000ed60201b60201c565b62000514565b600033905090565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200023557607f821691505b6020821081036200024b576200024a620001ed565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000276565b620002c1868362000276565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200030e620003086200030284620002d9565b620002e3565b620002d9565b9050919050565b6000819050919050565b6200032a83620002ed565b62000342620003398262000315565b84845462000283565b825550505050565b600090565b620003596200034a565b620003668184846200031f565b505050565b5b818110156200038e57620003826000826200034f565b6001810190506200036c565b5050565b601f821115620003dd57620003a78162000251565b620003b28462000266565b81016020851015620003c2578190505b620003da620003d18562000266565b8301826200036b565b50505b505050565b600082821c905092915050565b60006200040260001984600802620003e2565b1980831691505092915050565b60006200041d8383620003ef565b9150826002028217905092915050565b6200043882620001b3565b67ffffffffffffffff811115620004545762000453620001be565b5b6200046082546200021c565b6200046d82828562000392565b600060209050601f831160018114620004a5576000841562000490578287015190505b6200049c85826200040f565b8655506200050c565b601f198416620004b58662000251565b60005b82811015620004df57848901518255600182019150602085019450602081019050620004b8565b86831015620004ff5784890151620004fb601f891682620003ef565b8355505b6001600288020188555050505b505050505050565b61357080620005246000396000f3fe6080604052600436106101355760003560e01c8063715018a6116100ab578063a22cb4651161006f578063a22cb465146103df578063b88d4fde14610408578063c87b56dd14610431578063d204c45e1461046e578063e985e9c514610497578063f2fde38b146104d457610135565b8063715018a61461033f5780638456cb59146103565780638da5cb5b1461036d57806395d89b4114610398578063a0712d68146103c357610135565b80633f4ba83a116100fd5780633f4ba83a1461023157806342842e0e1461024857806342966c68146102715780635c975abb1461029a5780636352211e146102c557806370a082311461030257610135565b806301ffc9a71461013a57806306fdde0314610177578063081812fc146101a2578063095ea7b3146101df57806323b872dd14610208575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612289565b6104fd565b60405161016e91906122d1565b60405180910390f35b34801561018357600080fd5b5061018c61050f565b604051610199919061237c565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c491906123d4565b6105a1565b6040516101d69190612442565b60405180910390f35b3480156101eb57600080fd5b5061020660048036038101906102019190612489565b6105e7565b005b34801561021457600080fd5b5061022f600480360381019061022a91906124c9565b6106fe565b005b34801561023d57600080fd5b5061024661075e565b005b34801561025457600080fd5b5061026f600480360381019061026a91906124c9565b610770565b005b34801561027d57600080fd5b50610298600480360381019061029391906123d4565b610790565b005b3480156102a657600080fd5b506102af6107ec565b6040516102bc91906122d1565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e791906123d4565b610803565b6040516102f99190612442565b60405180910390f35b34801561030e57600080fd5b506103296004803603810190610324919061251c565b610889565b6040516103369190612558565b60405180910390f35b34801561034b57600080fd5b50610354610940565b005b34801561036257600080fd5b5061036b610954565b005b34801561037957600080fd5b50610382610966565b60405161038f9190612442565b60405180910390f35b3480156103a457600080fd5b506103ad610990565b6040516103ba919061237c565b60405180910390f35b6103dd60048036038101906103d891906123d4565b610a22565b005b3480156103eb57600080fd5b506104066004803603810190610401919061259f565b610a2f565b005b34801561041457600080fd5b5061042f600480360381019061042a9190612714565b610a45565b005b34801561043d57600080fd5b50610458600480360381019061045391906123d4565b610aa7565b604051610465919061237c565b60405180910390f35b34801561047a57600080fd5b5061049560048036038101906104909190612838565b610ab9565b005b3480156104a357600080fd5b506104be60048036038101906104b99190612894565b610af2565b6040516104cb91906122d1565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f6919061251c565b610b86565b005b600061050882610c09565b9050919050565b60606000805461051e90612903565b80601f016020809104026020016040519081016040528092919081815260200182805461054a90612903565b80156105975780601f1061056c57610100808354040283529160200191610597565b820191906000526020600020905b81548152906001019060200180831161057a57829003601f168201915b5050505050905090565b60006105ac82610c6a565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105f282610803565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610662576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610659906129a6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610681610cb5565b73ffffffffffffffffffffffffffffffffffffffff1614806106b057506106af816106aa610cb5565b610af2565b5b6106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e690612a38565b60405180910390fd5b6106f98383610cbd565b505050565b61070f610709610cb5565b82610d76565b61074e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074590612aca565b60405180910390fd5b610759838383610e0b565b505050565b610766611104565b61076e611182565b565b61078b83838360405180602001604052806000815250610a45565b505050565b6107a161079b610cb5565b82610d76565b6107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d790612aca565b60405180910390fd5b6107e9816111e5565b50565b6000600760009054906101000a900460ff16905090565b60008061080f836111f1565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790612b36565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090612bc8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610948611104565b610952600061122e565b565b61095c611104565b6109646112f4565b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461099f90612903565b80601f01602080910402602001604051908101604052809291908181526020018280546109cb90612903565b8015610a185780601f106109ed57610100808354040283529160200191610a18565b820191906000526020600020905b8154815290600101906020018083116109fb57829003601f168201915b5050505050905090565b610a2c3382611357565b50565b610a41610a3a610cb5565b8383611574565b5050565b610a56610a50610cb5565b83610d76565b610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612aca565b60405180910390fd5b610aa1848484846116e0565b50505050565b6060610ab28261173c565b9050919050565b610ac1611104565b6000610acd600861184e565b9050610ad9600861185c565b610ae38382611872565b610aed8183611890565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b8e611104565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612c5a565b60405180910390fd5b610c068161122e565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c635750610c6282611934565b5b9050919050565b610c7381611a16565b610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990612b36565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610d3083610803565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d8283610803565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dc45750610dc38185610af2565b5b80610e0257508373ffffffffffffffffffffffffffffffffffffffff16610dea846105a1565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610e2b82610803565b73ffffffffffffffffffffffffffffffffffffffff1614610e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7890612cec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee790612d7e565b60405180910390fd5b610efd8383836001611a57565b8273ffffffffffffffffffffffffffffffffffffffff16610f1d82610803565b73ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90612cec565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110ff8383836001611a71565b505050565b61110c610cb5565b73ffffffffffffffffffffffffffffffffffffffff1661112a610966565b73ffffffffffffffffffffffffffffffffffffffff1614611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612dea565b60405180910390fd5b565b61118a611a77565b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6111ce610cb5565b6040516111db9190612442565b60405180910390a1565b6111ee81611ac0565b50565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6112fc611b13565b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611340610cb5565b60405161134d9190612442565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd90612e56565b60405180910390fd5b6113cf81611a16565b1561140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690612ec2565b60405180910390fd5b61141d600083836001611a57565b61142681611a16565b15611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145d90612ec2565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611570600083836001611a71565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d990612f2e565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116d391906122d1565b60405180910390a3505050565b6116eb848484610e0b565b6116f784848484611b5d565b611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90612fc0565b60405180910390fd5b50505050565b606061174782610c6a565b600060066000848152602001908152602001600020805461176790612903565b80601f016020809104026020016040519081016040528092919081815260200182805461179390612903565b80156117e05780601f106117b5576101008083540402835291602001916117e0565b820191906000526020600020905b8154815290600101906020018083116117c357829003601f168201915b5050505050905060006117f1611ce4565b90506000815103611806578192505050611849565b60008251111561183b57808260405160200161182392919061301c565b60405160208183030381529060405292505050611849565b61184484611cfb565b925050505b919050565b600081600001549050919050565b6001816000016000828254019250508190555050565b61188c828260405180602001604052806000815250611d63565b5050565b61189982611a16565b6118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf906130b2565b60405180910390fd5b806006600084815260200190815260200160002090816118f8919061327e565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516119289190612558565b60405180910390a15050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806119ff57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611a0f5750611a0e82611dbe565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611a38836111f1565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a5f611b13565b611a6b84848484611e28565b50505050565b50505050565b611a7f6107ec565b611abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab59061339c565b60405180910390fd5b565b611ac981611e2e565b6000600660008381526020019081526020016000208054611ae990612903565b905014611b1057600660008281526020019081526020016000206000611b0f91906121c0565b5b50565b611b1b6107ec565b15611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613408565b60405180910390fd5b565b6000611b7e8473ffffffffffffffffffffffffffffffffffffffff16611f7c565b15611cd7578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611ba7610cb5565b8786866040518563ffffffff1660e01b8152600401611bc9949392919061347d565b6020604051808303816000875af1925050508015611c0557506040513d601f19601f82011682018060405250810190611c0291906134de565b60015b611c87573d8060008114611c35576040519150601f19603f3d011682016040523d82523d6000602084013e611c3a565b606091505b506000815103611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612fc0565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611cdc565b600190505b949350505050565b606060405180602001604052806000815250905090565b6060611d0682610c6a565b6000611d10611ce4565b90506000815111611d305760405180602001604052806000815250611d5b565b80611d3a84611f9f565b604051602001611d4b92919061301c565b6040516020818303038152906040525b915050919050565b611d6d8383611357565b611d7a6000848484611b5d565b611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db090612fc0565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b6000611e3982610803565b9050611e49816000846001611a57565b611e5282610803565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f78816000846001611a71565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606060006001611fae8461206d565b01905060008167ffffffffffffffff811115611fcd57611fcc6125e9565b5b6040519080825280601f01601f191660200182016040528015611fff5781602001600182028036833780820191505090505b509050600082602001820190505b600115612062578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120565761205561350b565b5b0494506000850361200d575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120cb577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816120c1576120c061350b565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612108576d04ee2d6d415b85acef810000000083816120fe576120fd61350b565b5b0492506020810190505b662386f26fc10000831061213757662386f26fc10000838161212d5761212c61350b565b5b0492506010810190505b6305f5e1008310612160576305f5e10083816121565761215561350b565b5b0492506008810190505b612710831061218557612710838161217b5761217a61350b565b5b0492506004810190505b606483106121a8576064838161219e5761219d61350b565b5b0492506002810190505b600a83106121b7576001810190505b80915050919050565b5080546121cc90612903565b6000825580601f106121de57506121fd565b601f0160209004906000526020600020908101906121fc9190612200565b5b50565b5b80821115612219576000816000905550600101612201565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61226681612231565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e612227565b5b60006122ad84828501612274565b91505092915050565b60008115159050919050565b6122cb816122b6565b82525050565b60006020820190506122e660008301846122c2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561232657808201518184015260208101905061230b565b60008484015250505050565b6000601f19601f8301169050919050565b600061234e826122ec565b61235881856122f7565b9350612368818560208601612308565b61237181612332565b840191505092915050565b600060208201905081810360008301526123968184612343565b905092915050565b6000819050919050565b6123b18161239e565b81146123bc57600080fd5b50565b6000813590506123ce816123a8565b92915050565b6000602082840312156123ea576123e9612227565b5b60006123f8848285016123bf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061242c82612401565b9050919050565b61243c81612421565b82525050565b60006020820190506124576000830184612433565b92915050565b61246681612421565b811461247157600080fd5b50565b6000813590506124838161245d565b92915050565b600080604083850312156124a05761249f612227565b5b60006124ae85828601612474565b92505060206124bf858286016123bf565b9150509250929050565b6000806000606084860312156124e2576124e1612227565b5b60006124f086828701612474565b935050602061250186828701612474565b9250506040612512868287016123bf565b9150509250925092565b60006020828403121561253257612531612227565b5b600061254084828501612474565b91505092915050565b6125528161239e565b82525050565b600060208201905061256d6000830184612549565b92915050565b61257c816122b6565b811461258757600080fd5b50565b60008135905061259981612573565b92915050565b600080604083850312156125b6576125b5612227565b5b60006125c485828601612474565b92505060206125d58582860161258a565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61262182612332565b810181811067ffffffffffffffff821117156126405761263f6125e9565b5b80604052505050565b600061265361221d565b905061265f8282612618565b919050565b600067ffffffffffffffff82111561267f5761267e6125e9565b5b61268882612332565b9050602081019050919050565b82818337600083830152505050565b60006126b76126b284612664565b612649565b9050828152602081018484840111156126d3576126d26125e4565b5b6126de848285612695565b509392505050565b600082601f8301126126fb576126fa6125df565b5b813561270b8482602086016126a4565b91505092915050565b6000806000806080858703121561272e5761272d612227565b5b600061273c87828801612474565b945050602061274d87828801612474565b935050604061275e878288016123bf565b925050606085013567ffffffffffffffff81111561277f5761277e61222c565b5b61278b878288016126e6565b91505092959194509250565b600067ffffffffffffffff8211156127b2576127b16125e9565b5b6127bb82612332565b9050602081019050919050565b60006127db6127d684612797565b612649565b9050828152602081018484840111156127f7576127f66125e4565b5b612802848285612695565b509392505050565b600082601f83011261281f5761281e6125df565b5b813561282f8482602086016127c8565b91505092915050565b6000806040838503121561284f5761284e612227565b5b600061285d85828601612474565b925050602083013567ffffffffffffffff81111561287e5761287d61222c565b5b61288a8582860161280a565b9150509250929050565b600080604083850312156128ab576128aa612227565b5b60006128b985828601612474565b92505060206128ca85828601612474565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061291b57607f821691505b60208210810361292e5761292d6128d4565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006129906021836122f7565b915061299b82612934565b604082019050919050565b600060208201905081810360008301526129bf81612983565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612a22603d836122f7565b9150612a2d826129c6565b604082019050919050565b60006020820190508181036000830152612a5181612a15565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612ab4602d836122f7565b9150612abf82612a58565b604082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612b206018836122f7565b9150612b2b82612aea565b602082019050919050565b60006020820190508181036000830152612b4f81612b13565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612bb26029836122f7565b9150612bbd82612b56565b604082019050919050565b60006020820190508181036000830152612be181612ba5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c446026836122f7565b9150612c4f82612be8565b604082019050919050565b60006020820190508181036000830152612c7381612c37565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612cd66025836122f7565b9150612ce182612c7a565b604082019050919050565b60006020820190508181036000830152612d0581612cc9565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d686024836122f7565b9150612d7382612d0c565b604082019050919050565b60006020820190508181036000830152612d9781612d5b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612dd46020836122f7565b9150612ddf82612d9e565b602082019050919050565b60006020820190508181036000830152612e0381612dc7565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000612e406020836122f7565b9150612e4b82612e0a565b602082019050919050565b60006020820190508181036000830152612e6f81612e33565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000612eac601c836122f7565b9150612eb782612e76565b602082019050919050565b60006020820190508181036000830152612edb81612e9f565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000612f186019836122f7565b9150612f2382612ee2565b602082019050919050565b60006020820190508181036000830152612f4781612f0b565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000612faa6032836122f7565b9150612fb582612f4e565b604082019050919050565b60006020820190508181036000830152612fd981612f9d565b9050919050565b600081905092915050565b6000612ff6826122ec565b6130008185612fe0565b9350613010818560208601612308565b80840191505092915050565b60006130288285612feb565b91506130348284612feb565b91508190509392505050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b600061309c602e836122f7565b91506130a782613040565b604082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130f7565b61313e86836130f7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061317b6131766131718461239e565b613156565b61239e565b9050919050565b6000819050919050565b61319583613160565b6131a96131a182613182565b848454613104565b825550505050565b600090565b6131be6131b1565b6131c981848461318c565b505050565b5b818110156131ed576131e26000826131b6565b6001810190506131cf565b5050565b601f82111561323257613203816130d2565b61320c846130e7565b8101602085101561321b578190505b61322f613227856130e7565b8301826131ce565b50505b505050565b600082821c905092915050565b600061325560001984600802613237565b1980831691505092915050565b600061326e8383613244565b9150826002028217905092915050565b613287826122ec565b67ffffffffffffffff8111156132a05761329f6125e9565b5b6132aa8254612903565b6132b58282856131f1565b600060209050601f8311600181146132e857600084156132d6578287015190505b6132e08582613262565b865550613348565b601f1984166132f6866130d2565b60005b8281101561331e578489015182556001820191506020850194506020810190506132f9565b8683101561333b5784890151613337601f891682613244565b8355505b6001600288020188555050505b505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006133866014836122f7565b915061339182613350565b602082019050919050565b600060208201905081810360008301526133b581613379565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006133f26010836122f7565b91506133fd826133bc565b602082019050919050565b60006020820190508181036000830152613421816133e5565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061344f82613428565b6134598185613433565b9350613469818560208601612308565b61347281612332565b840191505092915050565b60006080820190506134926000830187612433565b61349f6020830186612433565b6134ac6040830185612549565b81810360608301526134be8184613444565b905095945050505050565b6000815190506134d88161225d565b92915050565b6000602082840312156134f4576134f3612227565b5b6000613502848285016134c9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220bd43556d83c14f5700c1a724d63f56b84a8e60d7b87ededc3fc35590e27e4dcd64736f6c63430008120033