0x60806040523480156200001157600080fd5b50604051806060016040528060278152602001620041d4602791396200003d816200014f60201b60201c565b506200005e620000526200016460201b60201c565b6200016c60201b60201c565b60007331310827decfb0d410f36a83f21963dbd7b2b0d19050620000a3816000670de0b6b3a7640000604051806020016040528060008152506200023260201b60201c565b620000d38160016b033b2e3c9fd0803ce8000000604051806020016040528060008152506200023260201b60201c565b620000f88160026001604051806020016040528060008152506200023260201b60201c565b62000120816003633b9aca00604051806020016040528060008152506200023260201b60201c565b62000148816004633b9aca00604051806020016040528060008152506200023260201b60201c565b506200101b565b80600290816200016091906200093b565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620002a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029b9062000aa9565b60405180910390fd5b6000620002b66200016460201b60201c565b90506000620002cb856200041960201b60201c565b90506000620002e0856200041960201b60201c565b9050620002f9836000898585896200049a60201b60201c565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200035a919062000afa565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051620003da92919062000b46565b60405180910390a4620003f983600089858589620004a260201b60201c565b6200041083600089898989620004aa60201b60201c565b50505050505050565b60606000600167ffffffffffffffff8111156200043b576200043a620006cc565b5b6040519080825280602002602001820160405280156200046a5781602001602082028036833780820191505090505b509050828160008151811062000485576200048462000b73565b5b60200260200101818152505080915050919050565b505050505050565b505050505050565b620004d18473ffffffffffffffffffffffffffffffffffffffff166200069e60201b60201c565b1562000696578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016200051a95949392919062000c81565b6020604051808303816000875af19250505080156200055957506040513d601f19601f8201168201806040525081019062000556919062000d51565b60015b6200060a576200056862000d90565b806308c379a003620005cb57506200057f62000deb565b806200058c5750620005cd565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005c2919062000ec7565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006019062000f61565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161462000694576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200068b9062000ff9565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200074357607f821691505b602082108103620007595762000758620006fb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000784565b620007cf868362000784565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200081c620008166200081084620007e7565b620007f1565b620007e7565b9050919050565b6000819050919050565b6200083883620007fb565b62000850620008478262000823565b84845462000791565b825550505050565b600090565b6200086762000858565b620008748184846200082d565b505050565b5b818110156200089c57620008906000826200085d565b6001810190506200087a565b5050565b601f821115620008eb57620008b5816200075f565b620008c08462000774565b81016020851015620008d0578190505b620008e8620008df8562000774565b83018262000879565b50505b505050565b600082821c905092915050565b60006200091060001984600802620008f0565b1980831691505092915050565b60006200092b8383620008fd565b9150826002028217905092915050565b6200094682620006c1565b67ffffffffffffffff811115620009625762000961620006cc565b5b6200096e82546200072a565b6200097b828285620008a0565b600060209050601f831160018114620009b357600084156200099e578287015190505b620009aa85826200091d565b86555062000a1a565b601f198416620009c3866200075f565b60005b82811015620009ed57848901518255600182019150602085019450602081019050620009c6565b8683101562000a0d578489015162000a09601f891682620008fd565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600062000a9160218362000a22565b915062000a9e8262000a33565b604082019050919050565b6000602082019050818103600083015262000ac48162000a82565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b0782620007e7565b915062000b1483620007e7565b925082820190508082111562000b2f5762000b2e62000acb565b5b92915050565b62000b4081620007e7565b82525050565b600060408201905062000b5d600083018562000b35565b62000b6c602083018462000b35565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bcf8262000ba2565b9050919050565b62000be18162000bc2565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000c2357808201518184015260208101905062000c06565b60008484015250505050565b6000601f19601f8301169050919050565b600062000c4d8262000be7565b62000c59818562000bf2565b935062000c6b81856020860162000c03565b62000c768162000c2f565b840191505092915050565b600060a08201905062000c98600083018862000bd6565b62000ca7602083018762000bd6565b62000cb6604083018662000b35565b62000cc5606083018562000b35565b818103608083015262000cd9818462000c40565b90509695505050505050565b6000604051905090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62000d2b8162000cf4565b811462000d3757600080fd5b50565b60008151905062000d4b8162000d20565b92915050565b60006020828403121562000d6a5762000d6962000cef565b5b600062000d7a8482850162000d3a565b91505092915050565b60008160e01c9050919050565b600060033d111562000db25760046000803e62000daf60005162000d83565b90505b90565b62000dc08262000c2f565b810181811067ffffffffffffffff8211171562000de25762000de1620006cc565b5b80604052505050565b600060443d1062000e835762000e0062000ce5565b60043d036004823e80513d602482011167ffffffffffffffff8211171562000e2a57505062000e83565b808201805167ffffffffffffffff81111562000e4a575050505062000e83565b80602083010160043d03850181111562000e6957505050505062000e83565b62000e7a8260200185018662000db5565b82955050505050505b90565b600062000e9382620006c1565b62000e9f818562000a22565b935062000eb181856020860162000c03565b62000ebc8162000c2f565b840191505092915050565b6000602082019050818103600083015262000ee3818462000e86565b905092915050565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b600062000f4960348362000a22565b915062000f568262000eeb565b604082019050919050565b6000602082019050818103600083015262000f7c8162000f3a565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b600062000fe160288362000a22565b915062000fee8262000f83565b604082019050919050565b60006020820190508181036000830152620010148162000fd2565b9050919050565b6131a9806200102b6000396000f3fe608060405234801561001057600080fd5b50600436106101205760003560e01c8063715018a6116100ad578063d562e20411610071578063d562e20414610307578063e3e55f0814610325578063e985e9c514610343578063f242432a14610373578063f2fde38b1461038f57610120565b8063715018a6146102775780638da5cb5b14610281578063a22cb4651461029f578063c1341c4f146102bb578063c87b56dd146102d757610120565b806313dc989f116100f457806313dc989f146101d15780632eb2c2d6146101ef5780633e4bee381461020b5780634e1273f4146102295780635b2725ed1461025957610120565b8062fdd58e1461012557806301ffc9a71461015557806302fe5305146101855780630e89341c146101a1575b600080fd5b61013f600480360381019061013a9190611a6f565b6103ab565b60405161014c9190611abe565b60405180910390f35b61016f600480360381019061016a9190611b31565b610473565b60405161017c9190611b79565b60405180910390f35b61019f600480360381019061019a9190611cda565b610555565b005b6101bb60048036038101906101b69190611d23565b610569565b6040516101c89190611dcf565b60405180910390f35b6101d96105fd565b6040516101e69190611abe565b60405180910390f35b61020960048036038101906102049190611f5a565b610602565b005b6102136106a3565b6040516102209190611abe565b60405180910390f35b610243600480360381019061023e91906120ec565b6106a8565b6040516102509190612222565b60405180910390f35b6102616107c1565b60405161026e9190611abe565b60405180910390f35b61027f6107c6565b005b6102896107da565b6040516102969190612253565b60405180910390f35b6102b960048036038101906102b4919061229a565b610804565b005b6102d560048036038101906102d091906122da565b61081a565b005b6102f160048036038101906102ec9190611d23565b61083f565b6040516102fe9190611dcf565b60405180910390f35b61030f6108e4565b60405161031c9190611abe565b60405180910390f35b61032d6108e9565b60405161033a9190611abe565b60405180910390f35b61035d6004803603810190610358919061238d565b6108ee565b60405161036a9190611b79565b60405180910390f35b61038d600480360381019061038891906123cd565b610982565b005b6103a960048036038101906103a49190612464565b610a23565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041290612503565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061053e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061054e575061054d82610aa6565b5b9050919050565b61055d610b10565b61056681610b8e565b50565b60606002805461057890612552565b80601f01602080910402602001604051908101604052809291908181526020018280546105a490612552565b80156105f15780601f106105c6576101008083540402835291602001916105f1565b820191906000526020600020905b8154815290600101906020018083116105d457829003601f168201915b50505050509050919050565b600381565b61060a610ba1565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610650575061064f8561064a610ba1565b6108ee565b5b61068f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610686906125f5565b60405180910390fd5b61069c8585858585610ba9565b5050505050565b600081565b606081518351146106ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e590612687565b60405180910390fd5b6000835167ffffffffffffffff81111561070b5761070a611baf565b5b6040519080825280602002602001820160405280156107395781602001602082028036833780820191505090505b50905060005b84518110156107b65761078685828151811061075e5761075d6126a7565b5b6020026020010151858381518110610779576107786126a7565b5b60200260200101516103ab565b828281518110610799576107986126a7565b5b602002602001018181525050806107af90612705565b905061073f565b508091505092915050565b600481565b6107ce610b10565b6107d86000610eca565b565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61081661080f610ba1565b8383610f90565b5050565b610822610b10565b61082e858585856110fc565b61083884826112ac565b5050505050565b606060046000838152602001908152602001600020805461085f90612552565b80601f016020809104026020016040519081016040528092919081815260200182805461088b90612552565b80156108d85780601f106108ad576101008083540402835291602001916108d8565b820191906000526020600020905b8154815290600101906020018083116108bb57829003601f168201915b50505050509050919050565b600281565b600181565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61098a610ba1565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806109d057506109cf856109ca610ba1565b6108ee565b5b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906125f5565b60405180910390fd5b610a1c85858585856112d1565b5050505050565b610a2b610b10565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a91906127bf565b60405180910390fd5b610aa381610eca565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b18610ba1565b73ffffffffffffffffffffffffffffffffffffffff16610b366107da565b73ffffffffffffffffffffffffffffffffffffffff1614610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b839061282b565b60405180910390fd5b565b8060029081610b9d91906129f7565b5050565b600033905090565b8151835114610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be490612b3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5390612bcd565b60405180910390fd5b6000610c66610ba1565b9050610c7681878787878761156c565b60005b8451811015610e27576000858281518110610c9757610c966126a7565b5b602002602001015190506000858381518110610cb657610cb56126a7565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4e90612c5f565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e0c9190612c7f565b9250508190555050505080610e2090612705565b9050610c79565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e9e929190612cb3565b60405180910390a4610eb4818787878787611574565b610ec281878787878761157c565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff590612d5c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110ef9190611b79565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361116b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116290612dee565b60405180910390fd5b6000611175610ba1565b9050600061118285611753565b9050600061118f85611753565b90506111a08360008985858961156c565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111ff9190612c7f565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161127d929190612e0e565b60405180910390a461129483600089858589611574565b6112a3836000898989896117cd565b50505050505050565b806004600084815260200190815260200160002090816112cc91906129f7565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133790612bcd565b60405180910390fd5b600061134a610ba1565b9050600061135785611753565b9050600061136485611753565b905061137483898985858961156c565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508581101561140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290612c5f565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114c09190612c7f565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a60405161153d929190612e0e565b60405180910390a4611553848a8a86868a611574565b611561848a8a8a8a8a6117cd565b505050505050505050565b505050505050565b505050505050565b61159b8473ffffffffffffffffffffffffffffffffffffffff166119a4565b1561174b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016115e1959493929190612e8c565b6020604051808303816000875af192505050801561161d57506040513d601f19601f8201168201806040525081019061161a9190612f09565b60015b6116c257611629612f43565b806308c379a003611685575061163d612f65565b806116485750611687565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167c9190611dcf565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b990613067565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611749576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611740906130f9565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff81111561177257611771611baf565b5b6040519080825280602002602001820160405280156117a05781602001602082028036833780820191505090505b50905082816000815181106117b8576117b76126a7565b5b60200260200101818152505080915050919050565b6117ec8473ffffffffffffffffffffffffffffffffffffffff166119a4565b1561199c578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611832959493929190613119565b6020604051808303816000875af192505050801561186e57506040513d601f19601f8201168201806040525081019061186b9190612f09565b60015b6119135761187a612f43565b806308c379a0036118d6575061188e612f65565b8061189957506118d8565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd9190611dcf565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90613067565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461199a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611991906130f9565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a06826119db565b9050919050565b611a16816119fb565b8114611a2157600080fd5b50565b600081359050611a3381611a0d565b92915050565b6000819050919050565b611a4c81611a39565b8114611a5757600080fd5b50565b600081359050611a6981611a43565b92915050565b60008060408385031215611a8657611a856119d1565b5b6000611a9485828601611a24565b9250506020611aa585828601611a5a565b9150509250929050565b611ab881611a39565b82525050565b6000602082019050611ad36000830184611aaf565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b0e81611ad9565b8114611b1957600080fd5b50565b600081359050611b2b81611b05565b92915050565b600060208284031215611b4757611b466119d1565b5b6000611b5584828501611b1c565b91505092915050565b60008115159050919050565b611b7381611b5e565b82525050565b6000602082019050611b8e6000830184611b6a565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611be782611b9e565b810181811067ffffffffffffffff82111715611c0657611c05611baf565b5b80604052505050565b6000611c196119c7565b9050611c258282611bde565b919050565b600067ffffffffffffffff821115611c4557611c44611baf565b5b611c4e82611b9e565b9050602081019050919050565b82818337600083830152505050565b6000611c7d611c7884611c2a565b611c0f565b905082815260208101848484011115611c9957611c98611b99565b5b611ca4848285611c5b565b509392505050565b600082601f830112611cc157611cc0611b94565b5b8135611cd1848260208601611c6a565b91505092915050565b600060208284031215611cf057611cef6119d1565b5b600082013567ffffffffffffffff811115611d0e57611d0d6119d6565b5b611d1a84828501611cac565b91505092915050565b600060208284031215611d3957611d386119d1565b5b6000611d4784828501611a5a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d8a578082015181840152602081019050611d6f565b60008484015250505050565b6000611da182611d50565b611dab8185611d5b565b9350611dbb818560208601611d6c565b611dc481611b9e565b840191505092915050565b60006020820190508181036000830152611de98184611d96565b905092915050565b600067ffffffffffffffff821115611e0c57611e0b611baf565b5b602082029050602081019050919050565b600080fd5b6000611e35611e3084611df1565b611c0f565b90508083825260208201905060208402830185811115611e5857611e57611e1d565b5b835b81811015611e815780611e6d8882611a5a565b845260208401935050602081019050611e5a565b5050509392505050565b600082601f830112611ea057611e9f611b94565b5b8135611eb0848260208601611e22565b91505092915050565b600067ffffffffffffffff821115611ed457611ed3611baf565b5b611edd82611b9e565b9050602081019050919050565b6000611efd611ef884611eb9565b611c0f565b905082815260208101848484011115611f1957611f18611b99565b5b611f24848285611c5b565b509392505050565b600082601f830112611f4157611f40611b94565b5b8135611f51848260208601611eea565b91505092915050565b600080600080600060a08688031215611f7657611f756119d1565b5b6000611f8488828901611a24565b9550506020611f9588828901611a24565b945050604086013567ffffffffffffffff811115611fb657611fb56119d6565b5b611fc288828901611e8b565b935050606086013567ffffffffffffffff811115611fe357611fe26119d6565b5b611fef88828901611e8b565b925050608086013567ffffffffffffffff8111156120105761200f6119d6565b5b61201c88828901611f2c565b9150509295509295909350565b600067ffffffffffffffff82111561204457612043611baf565b5b602082029050602081019050919050565b600061206861206384612029565b611c0f565b9050808382526020820190506020840283018581111561208b5761208a611e1d565b5b835b818110156120b457806120a08882611a24565b84526020840193505060208101905061208d565b5050509392505050565b600082601f8301126120d3576120d2611b94565b5b81356120e3848260208601612055565b91505092915050565b60008060408385031215612103576121026119d1565b5b600083013567ffffffffffffffff811115612121576121206119d6565b5b61212d858286016120be565b925050602083013567ffffffffffffffff81111561214e5761214d6119d6565b5b61215a85828601611e8b565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61219981611a39565b82525050565b60006121ab8383612190565b60208301905092915050565b6000602082019050919050565b60006121cf82612164565b6121d9818561216f565b93506121e483612180565b8060005b838110156122155781516121fc888261219f565b9750612207836121b7565b9250506001810190506121e8565b5085935050505092915050565b6000602082019050818103600083015261223c81846121c4565b905092915050565b61224d816119fb565b82525050565b60006020820190506122686000830184612244565b92915050565b61227781611b5e565b811461228257600080fd5b50565b6000813590506122948161226e565b92915050565b600080604083850312156122b1576122b06119d1565b5b60006122bf85828601611a24565b92505060206122d085828601612285565b9150509250929050565b600080600080600060a086880312156122f6576122f56119d1565b5b600061230488828901611a24565b955050602061231588828901611a5a565b945050604061232688828901611a5a565b935050606086013567ffffffffffffffff811115612347576123466119d6565b5b61235388828901611f2c565b925050608086013567ffffffffffffffff811115612374576123736119d6565b5b61238088828901611cac565b9150509295509295909350565b600080604083850312156123a4576123a36119d1565b5b60006123b285828601611a24565b92505060206123c385828601611a24565b9150509250929050565b600080600080600060a086880312156123e9576123e86119d1565b5b60006123f788828901611a24565b955050602061240888828901611a24565b945050604061241988828901611a5a565b935050606061242a88828901611a5a565b925050608086013567ffffffffffffffff81111561244b5761244a6119d6565b5b61245788828901611f2c565b9150509295509295909350565b60006020828403121561247a576124796119d1565b5b600061248884828501611a24565b91505092915050565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b60006124ed602a83611d5b565b91506124f882612491565b604082019050919050565b6000602082019050818103600083015261251c816124e0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061256a57607f821691505b60208210810361257d5761257c612523565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b60006125df602e83611d5b565b91506125ea82612583565b604082019050919050565b6000602082019050818103600083015261260e816125d2565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000612671602983611d5b565b915061267c82612615565b604082019050919050565b600060208201905081810360008301526126a081612664565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061271082611a39565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612742576127416126d6565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006127a9602683611d5b565b91506127b48261274d565b604082019050919050565b600060208201905081810360008301526127d88161279c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612815602083611d5b565b9150612820826127df565b602082019050919050565b6000602082019050818103600083015261284481612808565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026128ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612870565b6128b78683612870565b95508019841693508086168417925050509392505050565b6000819050919050565b60006128f46128ef6128ea84611a39565b6128cf565b611a39565b9050919050565b6000819050919050565b61290e836128d9565b61292261291a826128fb565b84845461287d565b825550505050565b600090565b61293761292a565b612942818484612905565b505050565b5b818110156129665761295b60008261292f565b600181019050612948565b5050565b601f8211156129ab5761297c8161284b565b61298584612860565b81016020851015612994578190505b6129a86129a085612860565b830182612947565b50505b505050565b600082821c905092915050565b60006129ce600019846008026129b0565b1980831691505092915050565b60006129e783836129bd565b9150826002028217905092915050565b612a0082611d50565b67ffffffffffffffff811115612a1957612a18611baf565b5b612a238254612552565b612a2e82828561296a565b600060209050601f831160018114612a615760008415612a4f578287015190505b612a5985826129db565b865550612ac1565b601f198416612a6f8661284b565b60005b82811015612a9757848901518255600182019150602085019450602081019050612a72565b86831015612ab45784890151612ab0601f8916826129bd565b8355505b6001600288020188555050505b505050505050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000612b25602883611d5b565b9150612b3082612ac9565b604082019050919050565b60006020820190508181036000830152612b5481612b18565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612bb7602583611d5b565b9150612bc282612b5b565b604082019050919050565b60006020820190508181036000830152612be681612baa565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000612c49602a83611d5b565b9150612c5482612bed565b604082019050919050565b60006020820190508181036000830152612c7881612c3c565b9050919050565b6000612c8a82611a39565b9150612c9583611a39565b9250828201905080821115612cad57612cac6126d6565b5b92915050565b60006040820190508181036000830152612ccd81856121c4565b90508181036020830152612ce181846121c4565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000612d46602983611d5b565b9150612d5182612cea565b604082019050919050565b60006020820190508181036000830152612d7581612d39565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612dd8602183611d5b565b9150612de382612d7c565b604082019050919050565b60006020820190508181036000830152612e0781612dcb565b9050919050565b6000604082019050612e236000830185611aaf565b612e306020830184611aaf565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000612e5e82612e37565b612e688185612e42565b9350612e78818560208601611d6c565b612e8181611b9e565b840191505092915050565b600060a082019050612ea16000830188612244565b612eae6020830187612244565b8181036040830152612ec081866121c4565b90508181036060830152612ed481856121c4565b90508181036080830152612ee88184612e53565b90509695505050505050565b600081519050612f0381611b05565b92915050565b600060208284031215612f1f57612f1e6119d1565b5b6000612f2d84828501612ef4565b91505092915050565b60008160e01c9050919050565b600060033d1115612f625760046000803e612f5f600051612f36565b90505b90565b600060443d10612ff257612f776119c7565b60043d036004823e80513d602482011167ffffffffffffffff82111715612f9f575050612ff2565b808201805167ffffffffffffffff811115612fbd5750505050612ff2565b80602083010160043d038501811115612fda575050505050612ff2565b612fe982602001850186611bde565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000613051603483611d5b565b915061305c82612ff5565b604082019050919050565b6000602082019050818103600083015261308081613044565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006130e3602883611d5b565b91506130ee82613087565b604082019050919050565b60006020820190508181036000830152613112816130d6565b9050919050565b600060a08201905061312e6000830188612244565b61313b6020830187612244565b6131486040830186611aaf565b6131556060830185611aaf565b81810360808301526131678184612e53565b9050969550505050505056fea2646970667358221220a65a25ac08aee54751d1d2d5fc65f1af058c758bbb6e2b1f8903f70fe32e338064736f6c6343000813003368747470733a2f2f67616d652e6578616d706c652f6170692f6974656d2f7b69647d2e6a736f6e