608060405234801562000010575f80fd5b5060405180602001604052805f81525062000031816200005860201b60201c565b5062000052620000466200006d60201b60201c565b6200007460201b60201c565b6200047f565b80600290816200006991906200039b565b5050565b5f33905090565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620001b357607f821691505b602082108103620001c957620001c86200016e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200022d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001f0565b620002398683620001f0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002836200027d620002778462000251565b6200025a565b62000251565b9050919050565b5f819050919050565b6200029e8362000263565b620002b6620002ad826200028a565b848454620001fc565b825550505050565b5f90565b620002cc620002be565b620002d981848462000293565b505050565b5b818110156200030057620002f45f82620002c2565b600181019050620002df565b5050565b601f8211156200034f576200031981620001cf565b6200032484620001e1565b8101602085101562000334578190505b6200034c6200034385620001e1565b830182620002de565b50505b505050565b5f82821c905092915050565b5f620003715f198460080262000354565b1980831691505092915050565b5f6200038b838362000360565b9150826002028217905092915050565b620003a68262000137565b67ffffffffffffffff811115620003c257620003c162000141565b5b620003ce82546200019b565b620003db82828562000304565b5f60209050601f83116001811462000411575f8415620003fc578287015190505b6200040885826200037e565b86555062000477565b601f1984166200042186620001cf565b5f5b828110156200044a5784890151825560018201915060208501945060208101905062000423565b868310156200046a578489015162000466601f89168262000360565b8355505b6001600288020188555050505b505050505050565b613b8f806200048d5f395ff3fe608060405234801561000f575f80fd5b506004361061013f575f3560e01c80635257259d116100b6578063a22cb4651161007a578063a22cb46514610349578063d81d0a1514610365578063e985e9c514610381578063f242432a146103b1578063f2fde38b146103cd578063fe99049a146103e95761013f565b80635257259d146102cb578063715018a6146102e757806383455d06146102f15780638da5cb5b1461030d57806395d89b411461032b5761013f565b806311fecb4e1161010857806311fecb4e1461020d578063156e29f61461022957806318160ddd146102455780632eb2c2d614610263578063394811c61461027f5780634e1273f41461029b5761013f565b8062fdd58e1461014357806301ffc9a71461017357806302fe5305146101a357806306fdde03146101bf5780630e89341c146101dd575b5f80fd5b61015d60048036038101906101589190612183565b610405565b60405161016a91906121d0565b60405180910390f35b61018d6004803603810190610188919061223e565b61045b565b60405161019a9190612283565b60405180910390f35b6101bd60048036038101906101b891906123d8565b61053c565b005b6101c7610558565b6040516101d49190612499565b60405180910390f35b6101f760048036038101906101f291906124b9565b6105e4565b6040516102049190612499565b60405180910390f35b610227600480360381019061022291906125de565b610618565b005b610243600480360381019061023e9190612638565b6106f8565b005b61024d610779565b60405161025a91906121d0565b60405180910390f35b61027d600480360381019061027891906127e6565b61077f565b005b610299600480360381019061029491906128b1565b610820565b005b6102b560048036038101906102b09190612915565b6108a4565b6040516102c29190612a42565b60405180910390f35b6102e560048036038101906102e09190612638565b6109bb565b005b6102ef610a5d565b005b61030b60048036038101906103069190612a62565b610a70565b005b610315610b62565b6040516103229190612b3c565b60405180910390f35b610333610b8a565b6040516103409190612499565b60405180910390f35b610363600480360381019061035e9190612b7f565b610c16565b005b61037f600480360381019061037a9190612bbd565b610c2c565b005b61039b60048036038101906103969190612c45565b610da6565b6040516103a89190612283565b60405180910390f35b6103cb60048036038101906103c69190612c83565b610e34565b005b6103e760048036038101906103e29190612d16565b610ed5565b005b61040360048036038101906103fe91906128b1565b610f57565b005b5f60095f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052557507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061053557506105348261112e565b5b9050919050565b806007908161054b9190612f3b565b5061055581611197565b50565b6005805461056590612d6e565b80601f016020809104026020016040519081016040528092919081815260200182805461059190612d6e565b80156105dc5780601f106105b3576101008083540402835291602001916105dc565b820191905f5260205f20905b8154815290600101906020018083116105bf57829003601f168201915b505050505081565b606060076105f1836111aa565b60405160200161060292919061310e565b6040516020818303038152906040529050919050565b5f825190505f5b818110156106f25783818151811061063a5761063961313c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628660016040516106d99291906131d2565b60405180910390a4806106eb90613226565b905061061f565b50505050565b61071283838360405180602001604052805f815250611274565b8060095f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461076d919061326d565b92505081905550505050565b60045481565b6107876112f8565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806107cd57506107cc856107c76112f8565b610da6565b5b61080c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080390613310565b60405180910390fd5b61081985858585856112ff565b5050505050565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161089692919061332e565b60405180910390a450505050565b606081518351146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906133c5565b60405180910390fd5b5f835167ffffffffffffffff811115610906576109056122b4565b5b6040519080825280602002602001820160405280156109345781602001602082028036833780820191505090505b5090505f5b84518110156109b0576109808582815181106109585761095761313c565b5b60200260200101518583815181106109735761097261313c565b5b6020026020010151610405565b8282815181106109935761099261313c565b5b602002602001018181525050806109a990613226565b9050610939565b508091505092915050565b5f600190505b828111610a57578160095f8381526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a23919061326d565b92505081905550610a4484828460405180602001604052805f815250611274565b8080610a4f90613226565b9150506109c1565b50505050565b610a6561160d565b610a6e5f61168b565b565b600860149054906101000a900460ff1615610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790613453565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055508460059081610aea9190612f3b565b508360069081610afa9190612f3b565b50826004819055508160079081610b119190612f3b565b508060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5b82611197565b5050505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60068054610b9790612d6e565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc390612d6e565b8015610c0e5780601f10610be557610100808354040283529160200191610c0e565b820191905f5260205f20905b815481529060010190602001808311610bf157829003601f168201915b505050505081565b610c28610c216112f8565b838361174e565b5050565b8051825114610c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c67906134e1565b60405180910390fd5b5f5b8251811015610d2257818181518110610c8e57610c8d61313c565b5b602002602001015160095f858481518110610cac57610cab61313c565b5b602002602001015181526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d0a919061326d565b9250508190555080610d1b90613226565b9050610c72565b508273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8585604051610d999291906134ff565b60405180910390a4505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610e3c6112f8565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610e825750610e8185610e7c6112f8565b610da6565b5b610ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb890613310565b60405180910390fd5b610ece85858585856118b5565b5050505050565b610edd61160d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f42906135a4565b60405180910390fd5b610f548161168b565b50565b8060095f8481526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd90613632565b60405180910390fd5b8060095f8481526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110419190613650565b925050819055508060095f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110a3919061326d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62858560405161112092919061332e565b60405180910390a450505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b80600290816111a69190612f3b565b5050565b60605f60016111b884611b3e565b0190505f8167ffffffffffffffff8111156111d6576111d56122b4565b5b6040519080825280601f01601f1916602001820160405280156112085781602001600182028036833780820191505090505b5090505f82602001820190505b600115611269578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161125e5761125d613683565b5b0494505f8503611215575b819350505050919050565b8373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6286866040516112ea92919061332e565b60405180910390a450505050565b5f33905090565b8151835114611343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133a906134e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a890613720565b60405180910390fd5b5f6113ba6112f8565b90506113ca818787878787611c8f565b5f5b845181101561156a575f8582815181106113e9576113e861313c565b5b602002602001015190505f8583815181106114075761140661313c565b5b602002602001015190505f805f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90613632565b60405180910390fd5b8181035f808581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461154f919061326d565b925050819055505050508061156390613226565b90506113cc565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516115e19291906134ff565b60405180910390a46115f7818787878787611c97565b611605818787878787611c9f565b505050505050565b6116156112f8565b73ffffffffffffffffffffffffffffffffffffffff16611633610b62565b73ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168090613788565b60405180910390fd5b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b390613816565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118a89190612283565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613720565b60405180910390fd5b5f61192c6112f8565b90505f61193885611e75565b90505f61194485611e75565b9050611954838989858589611c8f565b5f805f8881526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050858110156119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90613632565b60405180910390fd5b8581035f808981526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550855f808981526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a92919061326d565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611b0f92919061332e565b60405180910390a4611b25848a8a86868a611c97565b611b33848a8a8a8a8a611eed565b505050505050505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611b9a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611b9057611b8f613683565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611bd7576d04ee2d6d415b85acef81000000008381611bcd57611bcc613683565b5b0492506020810190505b662386f26fc100008310611c0657662386f26fc100008381611bfc57611bfb613683565b5b0492506010810190505b6305f5e1008310611c2f576305f5e1008381611c2557611c24613683565b5b0492506008810190505b6127108310611c54576127108381611c4a57611c49613683565b5b0492506004810190505b60648310611c775760648381611c6d57611c6c613683565b5b0492506002810190505b600a8310611c86576001810190505b80915050919050565b505050505050565b505050505050565b611cbe8473ffffffffffffffffffffffffffffffffffffffff166120c3565b15611e6d578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611d04959493929190613886565b6020604051808303815f875af1925050508015611d3f57506040513d601f19601f82011682018060405250810190611d3c9190613900565b60015b611de457611d4b613937565b806308c379a003611da75750611d5f613956565b80611d6a5750611da9565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9e9190612499565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb90613a55565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6290613ae3565b60405180910390fd5b505b505050505050565b60605f600167ffffffffffffffff811115611e9357611e926122b4565b5b604051908082528060200260200182016040528015611ec15781602001602082028036833780820191505090505b50905082815f81518110611ed857611ed761313c565b5b60200260200101818152505080915050919050565b611f0c8473ffffffffffffffffffffffffffffffffffffffff166120c3565b156120bb578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611f52959493929190613b01565b6020604051808303815f875af1925050508015611f8d57506040513d601f19601f82011682018060405250810190611f8a9190613900565b60015b61203257611f99613937565b806308c379a003611ff55750611fad613956565b80611fb85750611ff7565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fec9190612499565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202990613a55565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b090613ae3565b60405180910390fd5b505b505050505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61211f826120f6565b9050919050565b61212f81612115565b8114612139575f80fd5b50565b5f8135905061214a81612126565b92915050565b5f819050919050565b61216281612150565b811461216c575f80fd5b50565b5f8135905061217d81612159565b92915050565b5f8060408385031215612199576121986120ee565b5b5f6121a68582860161213c565b92505060206121b78582860161216f565b9150509250929050565b6121ca81612150565b82525050565b5f6020820190506121e35f8301846121c1565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61221d816121e9565b8114612227575f80fd5b50565b5f8135905061223881612214565b92915050565b5f60208284031215612253576122526120ee565b5b5f6122608482850161222a565b91505092915050565b5f8115159050919050565b61227d81612269565b82525050565b5f6020820190506122965f830184612274565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6122ea826122a4565b810181811067ffffffffffffffff82111715612309576123086122b4565b5b80604052505050565b5f61231b6120e5565b905061232782826122e1565b919050565b5f67ffffffffffffffff821115612346576123456122b4565b5b61234f826122a4565b9050602081019050919050565b828183375f83830152505050565b5f61237c6123778461232c565b612312565b905082815260208101848484011115612398576123976122a0565b5b6123a384828561235c565b509392505050565b5f82601f8301126123bf576123be61229c565b5b81356123cf84826020860161236a565b91505092915050565b5f602082840312156123ed576123ec6120ee565b5b5f82013567ffffffffffffffff81111561240a576124096120f2565b5b612416848285016123ab565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561245657808201518184015260208101905061243b565b5f8484015250505050565b5f61246b8261241f565b6124758185612429565b9350612485818560208601612439565b61248e816122a4565b840191505092915050565b5f6020820190508181035f8301526124b18184612461565b905092915050565b5f602082840312156124ce576124cd6120ee565b5b5f6124db8482850161216f565b91505092915050565b5f67ffffffffffffffff8211156124fe576124fd6122b4565b5b602082029050602081019050919050565b5f80fd5b5f612525612520846124e4565b612312565b905080838252602082019050602084028301858111156125485761254761250f565b5b835b81811015612571578061255d888261213c565b84526020840193505060208101905061254a565b5050509392505050565b5f82601f83011261258f5761258e61229c565b5b813561259f848260208601612513565b91505092915050565b5f60ff82169050919050565b6125bd816125a8565b81146125c7575f80fd5b50565b5f813590506125d8816125b4565b92915050565b5f80604083850312156125f4576125f36120ee565b5b5f83013567ffffffffffffffff811115612611576126106120f2565b5b61261d8582860161257b565b925050602061262e858286016125ca565b9150509250929050565b5f805f6060848603121561264f5761264e6120ee565b5b5f61265c8682870161213c565b935050602061266d8682870161216f565b925050604061267e8682870161216f565b9150509250925092565b5f67ffffffffffffffff8211156126a2576126a16122b4565b5b602082029050602081019050919050565b5f6126c56126c084612688565b612312565b905080838252602082019050602084028301858111156126e8576126e761250f565b5b835b8181101561271157806126fd888261216f565b8452602084019350506020810190506126ea565b5050509392505050565b5f82601f83011261272f5761272e61229c565b5b813561273f8482602086016126b3565b91505092915050565b5f67ffffffffffffffff821115612762576127616122b4565b5b61276b826122a4565b9050602081019050919050565b5f61278a61278584612748565b612312565b9050828152602081018484840111156127a6576127a56122a0565b5b6127b184828561235c565b509392505050565b5f82601f8301126127cd576127cc61229c565b5b81356127dd848260208601612778565b91505092915050565b5f805f805f60a086880312156127ff576127fe6120ee565b5b5f61280c8882890161213c565b955050602061281d8882890161213c565b945050604086013567ffffffffffffffff81111561283e5761283d6120f2565b5b61284a8882890161271b565b935050606086013567ffffffffffffffff81111561286b5761286a6120f2565b5b6128778882890161271b565b925050608086013567ffffffffffffffff811115612898576128976120f2565b5b6128a4888289016127b9565b9150509295509295909350565b5f805f80608085870312156128c9576128c86120ee565b5b5f6128d68782880161213c565b94505060206128e78782880161213c565b93505060406128f88782880161216f565b92505060606129098782880161216f565b91505092959194509250565b5f806040838503121561292b5761292a6120ee565b5b5f83013567ffffffffffffffff811115612948576129476120f2565b5b6129548582860161257b565b925050602083013567ffffffffffffffff811115612975576129746120f2565b5b6129818582860161271b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6129bd81612150565b82525050565b5f6129ce83836129b4565b60208301905092915050565b5f602082019050919050565b5f6129f08261298b565b6129fa8185612995565b9350612a05836129a5565b805f5b83811015612a35578151612a1c88826129c3565b9750612a27836129da565b925050600181019050612a08565b5085935050505092915050565b5f6020820190508181035f830152612a5a81846129e6565b905092915050565b5f805f805f60a08688031215612a7b57612a7a6120ee565b5b5f86013567ffffffffffffffff811115612a9857612a976120f2565b5b612aa4888289016123ab565b955050602086013567ffffffffffffffff811115612ac557612ac46120f2565b5b612ad1888289016123ab565b9450506040612ae28882890161216f565b935050606086013567ffffffffffffffff811115612b0357612b026120f2565b5b612b0f888289016123ab565b9250506080612b208882890161213c565b9150509295509295909350565b612b3681612115565b82525050565b5f602082019050612b4f5f830184612b2d565b92915050565b612b5e81612269565b8114612b68575f80fd5b50565b5f81359050612b7981612b55565b92915050565b5f8060408385031215612b9557612b946120ee565b5b5f612ba28582860161213c565b9250506020612bb385828601612b6b565b9150509250929050565b5f805f60608486031215612bd457612bd36120ee565b5b5f612be18682870161213c565b935050602084013567ffffffffffffffff811115612c0257612c016120f2565b5b612c0e8682870161271b565b925050604084013567ffffffffffffffff811115612c2f57612c2e6120f2565b5b612c3b8682870161271b565b9150509250925092565b5f8060408385031215612c5b57612c5a6120ee565b5b5f612c688582860161213c565b9250506020612c798582860161213c565b9150509250929050565b5f805f805f60a08688031215612c9c57612c9b6120ee565b5b5f612ca98882890161213c565b9550506020612cba8882890161213c565b9450506040612ccb8882890161216f565b9350506060612cdc8882890161216f565b925050608086013567ffffffffffffffff811115612cfd57612cfc6120f2565b5b612d09888289016127b9565b9150509295509295909350565b5f60208284031215612d2b57612d2a6120ee565b5b5f612d388482850161213c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d8557607f821691505b602082108103612d9857612d97612d41565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612dfa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612dbf565b612e048683612dbf565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612e3f612e3a612e3584612150565b612e1c565b612150565b9050919050565b5f819050919050565b612e5883612e25565b612e6c612e6482612e46565b848454612dcb565b825550505050565b5f90565b612e80612e74565b612e8b818484612e4f565b505050565b5b81811015612eae57612ea35f82612e78565b600181019050612e91565b5050565b601f821115612ef357612ec481612d9e565b612ecd84612db0565b81016020851015612edc578190505b612ef0612ee885612db0565b830182612e90565b50505b505050565b5f82821c905092915050565b5f612f135f1984600802612ef8565b1980831691505092915050565b5f612f2b8383612f04565b9150826002028217905092915050565b612f448261241f565b67ffffffffffffffff811115612f5d57612f5c6122b4565b5b612f678254612d6e565b612f72828285612eb2565b5f60209050601f831160018114612fa3575f8415612f91578287015190505b612f9b8582612f20565b865550613002565b601f198416612fb186612d9e565b5f5b82811015612fd857848901518255600182019150602085019450602081019050612fb3565b86831015612ff55784890151612ff1601f891682612f04565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f815461302081612d6e565b61302a818661300a565b9450600182165f811461304457600181146130595761308b565b60ff198316865281151582028601935061308b565b61306285612d9e565b5f5b8381101561308357815481890152600182019150602081019050613064565b838801955050505b50505092915050565b5f61309e8261241f565b6130a8818561300a565b93506130b8818560208601612439565b80840191505092915050565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000005f82015250565b5f6130f860058361300a565b9150613103826130c4565b600582019050919050565b5f6131198285613014565b91506131258284613094565b9150613130826130ec565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61318361317e613179846125a8565b612e1c565b612150565b9050919050565b61319381613169565b82525050565b5f819050919050565b5f6131bc6131b76131b284613199565b612e1c565b612150565b9050919050565b6131cc816131a2565b82525050565b5f6040820190506131e55f83018561318a565b6131f260208301846131c3565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61323082612150565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613262576132616131f9565b5b600182019050919050565b5f61327782612150565b915061328283612150565b925082820190508082111561329a576132996131f9565b5b92915050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b5f6132fa602e83612429565b9150613305826132a0565b604082019050919050565b5f6020820190508181035f830152613327816132ee565b9050919050565b5f6040820190506133415f8301856121c1565b61334e60208301846121c1565b9392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6133af602983612429565b91506133ba82613355565b604082019050919050565b5f6020820190508181035f8301526133dc816133a3565b9050919050565b7f436f6e747261637420696e7374616e63652068617320616c72656164792062655f8201527f656e20696e697469616c697a6564000000000000000000000000000000000000602082015250565b5f61343d602e83612429565b9150613448826133e3565b604082019050919050565b5f6020820190508181035f83015261346a81613431565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f6134cb602883612429565b91506134d682613471565b604082019050919050565b5f6020820190508181035f8301526134f8816134bf565b9050919050565b5f6040820190508181035f83015261351781856129e6565b9050818103602083015261352b81846129e6565b90509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61358e602683612429565b915061359982613534565b604082019050919050565b5f6020820190508181035f8301526135bb81613582565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f61361c602a83612429565b9150613627826135c2565b604082019050919050565b5f6020820190508181035f83015261364981613610565b9050919050565b5f61365a82612150565b915061366583612150565b925082820390508181111561367d5761367c6131f9565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61370a602583612429565b9150613715826136b0565b604082019050919050565b5f6020820190508181035f830152613737816136fe565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613772602083612429565b915061377d8261373e565b602082019050919050565b5f6020820190508181035f83015261379f81613766565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f613800602983612429565b915061380b826137a6565b604082019050919050565b5f6020820190508181035f83015261382d816137f4565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f61385882613834565b613862818561383e565b9350613872818560208601612439565b61387b816122a4565b840191505092915050565b5f60a0820190506138995f830188612b2d565b6138a66020830187612b2d565b81810360408301526138b881866129e6565b905081810360608301526138cc81856129e6565b905081810360808301526138e0818461384e565b90509695505050505050565b5f815190506138fa81612214565b92915050565b5f60208284031215613915576139146120ee565b5b5f613922848285016138ec565b91505092915050565b5f8160e01c9050919050565b5f60033d11156139535760045f803e6139505f5161392b565b90505b90565b5f60443d106139e2576139676120e5565b60043d036004823e80513d602482011167ffffffffffffffff8211171561398f5750506139e2565b808201805167ffffffffffffffff8111156139ad57505050506139e2565b80602083010160043d0385018111156139ca5750505050506139e2565b6139d9826020018501866122e1565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d455243313135355f8201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b5f613a3f603483612429565b9150613a4a826139e5565b604082019050919050565b5f6020820190508181035f830152613a6c81613a33565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a656374655f8201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b5f613acd602883612429565b9150613ad882613a73565b604082019050919050565b5f6020820190508181035f830152613afa81613ac1565b9050919050565b5f60a082019050613b145f830188612b2d565b613b216020830187612b2d565b613b2e60408301866121c1565b613b3b60608301856121c1565b8181036080830152613b4d818461384e565b9050969550505050505056fea26469706673582212209b94b1c75393c6bc62f692ae013c073471d13513213abfe85a4c19d345e57fb164736f6c63430008140033