0x608060405234801561001057600080fd5b5060405180606001604052806027815260200161409c602791396100398161013c60201b60201c565b5061005661004b61014f60201b60201c565b61015760201b60201c565b6000730ef1da8bd8708ae6e14529f6139fda34757d23199050610099816000670de0b6b3a76400006040518060200160405280600081525061021d60201b60201c565b6100c78160016b033b2e3c9fd0803ce80000006040518060200160405280600081525061021d60201b60201c565b6100ea81600260016040518060200160405280600081525061021d60201b60201c565b610110816003633b9aca006040518060200160405280600081525061021d60201b60201c565b610136816004633b9aca006040518060200160405280600081525061021d60201b60201c565b50610f38565b806002908161014b91906108cb565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361028c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028390610a20565b60405180910390fd5b600061029c61014f60201b60201c565b905060006102af856103f160201b60201c565b905060006102c2856103f160201b60201c565b90506102d98360008985858961046b60201b60201c565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103389190610a6f565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6289896040516103b6929190610ab2565b60405180910390a46103d38360008985858961047360201b60201c565b6103e88360008989898961047b60201b60201c565b50505050505050565b60606000600167ffffffffffffffff8111156104105761040f610686565b5b60405190808252806020026020018201604052801561043e5781602001602082028036833780820191505090505b509050828160008151811061045657610455610adb565b5b60200260200101818152505080915050919050565b505050505050565b505050505050565b6104a08473ffffffffffffffffffffffffffffffffffffffff1661065860201b60201c565b15610650578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016104e6959493929190610bdb565b6020604051808303816000875af192505050801561052257506040513d601f19601f8201168201806040525081019061051f9190610c9c565b60015b6105c75761052e610cd6565b806308c379a00361058a5750610542610d29565b8061054d575061058c565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105819190610df2565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105be90610e86565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461064e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064590610f18565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806106fc57607f821691505b60208210810361070f5761070e6106b5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026107777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261073a565b610781868361073a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006107c86107c36107be84610799565b6107a3565b610799565b9050919050565b6000819050919050565b6107e2836107ad565b6107f66107ee826107cf565b848454610747565b825550505050565b600090565b61080b6107fe565b6108168184846107d9565b505050565b5b8181101561083a5761082f600082610803565b60018101905061081c565b5050565b601f82111561087f5761085081610715565b6108598461072a565b81016020851015610868578190505b61087c6108748561072a565b83018261081b565b50505b505050565b600082821c905092915050565b60006108a260001984600802610884565b1980831691505092915050565b60006108bb8383610891565b9150826002028217905092915050565b6108d48261067b565b67ffffffffffffffff8111156108ed576108ec610686565b5b6108f782546106e4565b61090282828561083e565b600060209050601f8311600181146109355760008415610923578287015190505b61092d85826108af565b865550610995565b601f19841661094386610715565b60005b8281101561096b57848901518255600182019150602085019450602081019050610946565b868310156109885784890151610984601f891682610891565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000610a0a60218361099d565b9150610a15826109ae565b604082019050919050565b60006020820190508181036000830152610a39816109fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a7a82610799565b9150610a8583610799565b9250828201905080821115610a9d57610a9c610a40565b5b92915050565b610aac81610799565b82525050565b6000604082019050610ac76000830185610aa3565b610ad46020830184610aa3565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b3582610b0a565b9050919050565b610b4581610b2a565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b85578082015181840152602081019050610b6a565b60008484015250505050565b6000601f19601f8301169050919050565b6000610bad82610b4b565b610bb78185610b56565b9350610bc7818560208601610b67565b610bd081610b91565b840191505092915050565b600060a082019050610bf06000830188610b3c565b610bfd6020830187610b3c565b610c0a6040830186610aa3565b610c176060830185610aa3565b8181036080830152610c298184610ba2565b90509695505050505050565b6000604051905090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c7981610c44565b8114610c8457600080fd5b50565b600081519050610c9681610c70565b92915050565b600060208284031215610cb257610cb1610c3f565b5b6000610cc084828501610c87565b91505092915050565b60008160e01c9050919050565b600060033d1115610cf55760046000803e610cf2600051610cc9565b90505b90565b610d0182610b91565b810181811067ffffffffffffffff82111715610d2057610d1f610686565b5b80604052505050565b600060443d10610db657610d3b610c35565b60043d036004823e80513d602482011167ffffffffffffffff82111715610d63575050610db6565b808201805167ffffffffffffffff811115610d815750505050610db6565b80602083010160043d038501811115610d9e575050505050610db6565b610dad82602001850186610cf8565b82955050505050505b90565b6000610dc48261067b565b610dce818561099d565b9350610dde818560208601610b67565b610de781610b91565b840191505092915050565b60006020820190508181036000830152610e0c8184610db9565b905092915050565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000610e7060348361099d565b9150610e7b82610e14565b604082019050919050565b60006020820190508181036000830152610e9f81610e63565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000610f0260288361099d565b9150610f0d82610ea6565b604082019050919050565b60006020820190508181036000830152610f3181610ef5565b9050919050565b61315580610f476000396000f3fe608060405234801561001057600080fd5b50600436106101205760003560e01c8063715018a6116100ad578063d562e20411610071578063d562e20414610307578063e3e55f0814610325578063e985e9c514610343578063f242432a14610373578063f2fde38b1461038f57610120565b8063715018a6146102775780638da5cb5b14610281578063a22cb4651461029f578063c1341c4f146102bb578063c87b56dd146102d757610120565b806313dc989f116100f457806313dc989f146101d15780632eb2c2d6146101ef5780633e4bee381461020b5780634e1273f4146102295780635b2725ed1461025957610120565b8062fdd58e1461012557806301ffc9a71461015557806302fe5305146101855780630e89341c146101a1575b600080fd5b61013f600480360381019061013a9190611a63565b6103ab565b60405161014c9190611ab2565b60405180910390f35b61016f600480360381019061016a9190611b25565b610473565b60405161017c9190611b6d565b60405180910390f35b61019f600480360381019061019a9190611cce565b610555565b005b6101bb60048036038101906101b69190611d17565b610569565b6040516101c89190611dc3565b60405180910390f35b6101d96105fd565b6040516101e69190611ab2565b60405180910390f35b61020960048036038101906102049190611f4e565b610602565b005b6102136106a3565b6040516102209190611ab2565b60405180910390f35b610243600480360381019061023e91906120e0565b6106a8565b6040516102509190612216565b60405180910390f35b6102616107bb565b60405161026e9190611ab2565b60405180910390f35b61027f6107c0565b005b6102896107d4565b6040516102969190612247565b60405180910390f35b6102b960048036038101906102b4919061228e565b6107fe565b005b6102d560048036038101906102d091906122ce565b610814565b005b6102f160048036038101906102ec9190611d17565b610839565b6040516102fe9190611dc3565b60405180910390f35b61030f6108de565b60405161031c9190611ab2565b60405180910390f35b61032d6108e3565b60405161033a9190611ab2565b60405180910390f35b61035d60048036038101906103589190612381565b6108e8565b60405161036a9190611b6d565b60405180910390f35b61038d600480360381019061038891906123c1565b61097c565b005b6103a960048036038101906103a49190612458565b610a1d565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361041b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610412906124f7565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061053e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061054e575061054d82610aa0565b5b9050919050565b61055d610b0a565b61056681610b88565b50565b60606002805461057890612546565b80601f01602080910402602001604051908101604052809291908181526020018280546105a490612546565b80156105f15780601f106105c6576101008083540402835291602001916105f1565b820191906000526020600020905b8154815290600101906020018083116105d457829003601f168201915b50505050509050919050565b600381565b61060a610b9b565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610650575061064f8561064a610b9b565b6108e8565b5b61068f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610686906125e9565b60405180910390fd5b61069c8585858585610ba3565b5050505050565b600081565b606081518351146106ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e59061267b565b60405180910390fd5b6000835167ffffffffffffffff81111561070b5761070a611ba3565b5b6040519080825280602002602001820160405280156107395781602001602082028036833780820191505090505b50905060005b84518110156107b05761078685828151811061075e5761075d61269b565b5b60200260200101518583815181106107795761077861269b565b5b60200260200101516103ab565b8282815181106107995761079861269b565b5b60200260200101818152505080600101905061073f565b508091505092915050565b600481565b6107c8610b0a565b6107d26000610ebe565b565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610810610809610b9b565b8383610f84565b5050565b61081c610b0a565b610828858585856110f0565b61083284826112a0565b5050505050565b606060046000838152602001908152602001600020805461085990612546565b80601f016020809104026020016040519081016040528092919081815260200182805461088590612546565b80156108d25780601f106108a7576101008083540402835291602001916108d2565b820191906000526020600020905b8154815290600101906020018083116108b557829003601f168201915b50505050509050919050565b600281565b600181565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610984610b9b565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806109ca57506109c9856109c4610b9b565b6108e8565b5b610a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a00906125e9565b60405180910390fd5b610a1685858585856112c5565b5050505050565b610a25610b0a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b9061273c565b60405180910390fd5b610a9d81610ebe565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b12610b9b565b73ffffffffffffffffffffffffffffffffffffffff16610b306107d4565b73ffffffffffffffffffffffffffffffffffffffff1614610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906127a8565b60405180910390fd5b565b8060029081610b979190612974565b5050565b600033905090565b8151835114610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde90612ab8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90612b4a565b60405180910390fd5b6000610c60610b9b565b9050610c70818787878787611560565b60005b8451811015610e1b576000858281518110610c9157610c9061269b565b5b602002602001015190506000858381518110610cb057610caf61269b565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890612bdc565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e069190612c2b565b92505081905550505050806001019050610c73565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e92929190612c5f565b60405180910390a4610ea8818787878787611568565b610eb6818787878787611570565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990612d08565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110e39190611b6d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361115f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115690612d9a565b60405180910390fd5b6000611169610b9b565b9050600061117685611747565b9050600061118385611747565b905061119483600089858589611560565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111f39190612c2b565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611271929190612dba565b60405180910390a461128883600089858589611568565b611297836000898989896117c1565b50505050505050565b806004600084815260200190815260200160002090816112c09190612974565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b90612b4a565b60405180910390fd5b600061133e610b9b565b9050600061134b85611747565b9050600061135885611747565b9050611368838989858589611560565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050858110156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690612bdc565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b49190612c2b565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611531929190612dba565b60405180910390a4611547848a8a86868a611568565b611555848a8a8a8a8a6117c1565b505050505050505050565b505050505050565b505050505050565b61158f8473ffffffffffffffffffffffffffffffffffffffff16611998565b1561173f578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016115d5959493929190612e38565b6020604051808303816000875af192505050801561161157506040513d601f19601f8201168201806040525081019061160e9190612eb5565b60015b6116b65761161d612eef565b806308c379a0036116795750611631612f11565b8061163c575061167b565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116709190611dc3565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ad90613013565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461173d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611734906130a5565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff81111561176657611765611ba3565b5b6040519080825280602002602001820160405280156117945781602001602082028036833780820191505090505b50905082816000815181106117ac576117ab61269b565b5b60200260200101818152505080915050919050565b6117e08473ffffffffffffffffffffffffffffffffffffffff16611998565b15611990578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016118269594939291906130c5565b6020604051808303816000875af192505050801561186257506040513d601f19601f8201168201806040525081019061185f9190612eb5565b60015b6119075761186e612eef565b806308c379a0036118ca5750611882612f11565b8061188d57506118cc565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19190611dc3565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90613013565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461198e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611985906130a5565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119fa826119cf565b9050919050565b611a0a816119ef565b8114611a1557600080fd5b50565b600081359050611a2781611a01565b92915050565b6000819050919050565b611a4081611a2d565b8114611a4b57600080fd5b50565b600081359050611a5d81611a37565b92915050565b60008060408385031215611a7a57611a796119c5565b5b6000611a8885828601611a18565b9250506020611a9985828601611a4e565b9150509250929050565b611aac81611a2d565b82525050565b6000602082019050611ac76000830184611aa3565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b0281611acd565b8114611b0d57600080fd5b50565b600081359050611b1f81611af9565b92915050565b600060208284031215611b3b57611b3a6119c5565b5b6000611b4984828501611b10565b91505092915050565b60008115159050919050565b611b6781611b52565b82525050565b6000602082019050611b826000830184611b5e565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611bdb82611b92565b810181811067ffffffffffffffff82111715611bfa57611bf9611ba3565b5b80604052505050565b6000611c0d6119bb565b9050611c198282611bd2565b919050565b600067ffffffffffffffff821115611c3957611c38611ba3565b5b611c4282611b92565b9050602081019050919050565b82818337600083830152505050565b6000611c71611c6c84611c1e565b611c03565b905082815260208101848484011115611c8d57611c8c611b8d565b5b611c98848285611c4f565b509392505050565b600082601f830112611cb557611cb4611b88565b5b8135611cc5848260208601611c5e565b91505092915050565b600060208284031215611ce457611ce36119c5565b5b600082013567ffffffffffffffff811115611d0257611d016119ca565b5b611d0e84828501611ca0565b91505092915050565b600060208284031215611d2d57611d2c6119c5565b5b6000611d3b84828501611a4e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d7e578082015181840152602081019050611d63565b60008484015250505050565b6000611d9582611d44565b611d9f8185611d4f565b9350611daf818560208601611d60565b611db881611b92565b840191505092915050565b60006020820190508181036000830152611ddd8184611d8a565b905092915050565b600067ffffffffffffffff821115611e0057611dff611ba3565b5b602082029050602081019050919050565b600080fd5b6000611e29611e2484611de5565b611c03565b90508083825260208201905060208402830185811115611e4c57611e4b611e11565b5b835b81811015611e755780611e618882611a4e565b845260208401935050602081019050611e4e565b5050509392505050565b600082601f830112611e9457611e93611b88565b5b8135611ea4848260208601611e16565b91505092915050565b600067ffffffffffffffff821115611ec857611ec7611ba3565b5b611ed182611b92565b9050602081019050919050565b6000611ef1611eec84611ead565b611c03565b905082815260208101848484011115611f0d57611f0c611b8d565b5b611f18848285611c4f565b509392505050565b600082601f830112611f3557611f34611b88565b5b8135611f45848260208601611ede565b91505092915050565b600080600080600060a08688031215611f6a57611f696119c5565b5b6000611f7888828901611a18565b9550506020611f8988828901611a18565b945050604086013567ffffffffffffffff811115611faa57611fa96119ca565b5b611fb688828901611e7f565b935050606086013567ffffffffffffffff811115611fd757611fd66119ca565b5b611fe388828901611e7f565b925050608086013567ffffffffffffffff811115612004576120036119ca565b5b61201088828901611f20565b9150509295509295909350565b600067ffffffffffffffff82111561203857612037611ba3565b5b602082029050602081019050919050565b600061205c6120578461201d565b611c03565b9050808382526020820190506020840283018581111561207f5761207e611e11565b5b835b818110156120a857806120948882611a18565b845260208401935050602081019050612081565b5050509392505050565b600082601f8301126120c7576120c6611b88565b5b81356120d7848260208601612049565b91505092915050565b600080604083850312156120f7576120f66119c5565b5b600083013567ffffffffffffffff811115612115576121146119ca565b5b612121858286016120b2565b925050602083013567ffffffffffffffff811115612142576121416119ca565b5b61214e85828601611e7f565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61218d81611a2d565b82525050565b600061219f8383612184565b60208301905092915050565b6000602082019050919050565b60006121c382612158565b6121cd8185612163565b93506121d883612174565b8060005b838110156122095781516121f08882612193565b97506121fb836121ab565b9250506001810190506121dc565b5085935050505092915050565b6000602082019050818103600083015261223081846121b8565b905092915050565b612241816119ef565b82525050565b600060208201905061225c6000830184612238565b92915050565b61226b81611b52565b811461227657600080fd5b50565b60008135905061228881612262565b92915050565b600080604083850312156122a5576122a46119c5565b5b60006122b385828601611a18565b92505060206122c485828601612279565b9150509250929050565b600080600080600060a086880312156122ea576122e96119c5565b5b60006122f888828901611a18565b955050602061230988828901611a4e565b945050604061231a88828901611a4e565b935050606086013567ffffffffffffffff81111561233b5761233a6119ca565b5b61234788828901611f20565b925050608086013567ffffffffffffffff811115612368576123676119ca565b5b61237488828901611ca0565b9150509295509295909350565b60008060408385031215612398576123976119c5565b5b60006123a685828601611a18565b92505060206123b785828601611a18565b9150509250929050565b600080600080600060a086880312156123dd576123dc6119c5565b5b60006123eb88828901611a18565b95505060206123fc88828901611a18565b945050604061240d88828901611a4e565b935050606061241e88828901611a4e565b925050608086013567ffffffffffffffff81111561243f5761243e6119ca565b5b61244b88828901611f20565b9150509295509295909350565b60006020828403121561246e5761246d6119c5565b5b600061247c84828501611a18565b91505092915050565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b60006124e1602a83611d4f565b91506124ec82612485565b604082019050919050565b60006020820190508181036000830152612510816124d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061255e57607f821691505b60208210810361257157612570612517565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b60006125d3602e83611d4f565b91506125de82612577565b604082019050919050565b60006020820190508181036000830152612602816125c6565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000612665602983611d4f565b915061267082612609565b604082019050919050565b6000602082019050818103600083015261269481612658565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612726602683611d4f565b9150612731826126ca565b604082019050919050565b6000602082019050818103600083015261275581612719565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612792602083611d4f565b915061279d8261275c565b602082019050919050565b600060208201905081810360008301526127c181612785565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261282a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826127ed565b61283486836127ed565b95508019841693508086168417925050509392505050565b6000819050919050565b600061287161286c61286784611a2d565b61284c565b611a2d565b9050919050565b6000819050919050565b61288b83612856565b61289f61289782612878565b8484546127fa565b825550505050565b600090565b6128b46128a7565b6128bf818484612882565b505050565b5b818110156128e3576128d86000826128ac565b6001810190506128c5565b5050565b601f821115612928576128f9816127c8565b612902846127dd565b81016020851015612911578190505b61292561291d856127dd565b8301826128c4565b50505b505050565b600082821c905092915050565b600061294b6000198460080261292d565b1980831691505092915050565b6000612964838361293a565b9150826002028217905092915050565b61297d82611d44565b67ffffffffffffffff81111561299657612995611ba3565b5b6129a08254612546565b6129ab8282856128e7565b600060209050601f8311600181146129de57600084156129cc578287015190505b6129d68582612958565b865550612a3e565b601f1984166129ec866127c8565b60005b82811015612a14578489015182556001820191506020850194506020810190506129ef565b86831015612a315784890151612a2d601f89168261293a565b8355505b6001600288020188555050505b505050505050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000612aa2602883611d4f565b9150612aad82612a46565b604082019050919050565b60006020820190508181036000830152612ad181612a95565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b34602583611d4f565b9150612b3f82612ad8565b604082019050919050565b60006020820190508181036000830152612b6381612b27565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000612bc6602a83611d4f565b9150612bd182612b6a565b604082019050919050565b60006020820190508181036000830152612bf581612bb9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c3682611a2d565b9150612c4183611a2d565b9250828201905080821115612c5957612c58612bfc565b5b92915050565b60006040820190508181036000830152612c7981856121b8565b90508181036020830152612c8d81846121b8565b90509392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000612cf2602983611d4f565b9150612cfd82612c96565b604082019050919050565b60006020820190508181036000830152612d2181612ce5565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d84602183611d4f565b9150612d8f82612d28565b604082019050919050565b60006020820190508181036000830152612db381612d77565b9050919050565b6000604082019050612dcf6000830185611aa3565b612ddc6020830184611aa3565b9392505050565b600081519050919050565b600082825260208201905092915050565b6000612e0a82612de3565b612e148185612dee565b9350612e24818560208601611d60565b612e2d81611b92565b840191505092915050565b600060a082019050612e4d6000830188612238565b612e5a6020830187612238565b8181036040830152612e6c81866121b8565b90508181036060830152612e8081856121b8565b90508181036080830152612e948184612dff565b90509695505050505050565b600081519050612eaf81611af9565b92915050565b600060208284031215612ecb57612eca6119c5565b5b6000612ed984828501612ea0565b91505092915050565b60008160e01c9050919050565b600060033d1115612f0e5760046000803e612f0b600051612ee2565b90505b90565b600060443d10612f9e57612f236119bb565b60043d036004823e80513d602482011167ffffffffffffffff82111715612f4b575050612f9e565b808201805167ffffffffffffffff811115612f695750505050612f9e565b80602083010160043d038501811115612f86575050505050612f9e565b612f9582602001850186611bd2565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000612ffd603483611d4f565b915061300882612fa1565b604082019050919050565b6000602082019050818103600083015261302c81612ff0565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b600061308f602883611d4f565b915061309a82613033565b604082019050919050565b600060208201905081810360008301526130be81613082565b9050919050565b600060a0820190506130da6000830188612238565b6130e76020830187612238565b6130f46040830186611aa3565b6131016060830185611aa3565b81810360808301526131138184612dff565b9050969550505050505056fea264697066735822122086296628d12084c1a9e8176c13e4c40c8b569ea90293f904f4ffc99f21c33c9964736f6c634300081b003368747470733a2f2f67616d652e6578616d706c652f6170692f6974656d2f7b69647d2e6a736f6e