60a060405260006006553480156200001657600080fd5b506040518060400160405280600d81526020017f4d794e4654436f6e7472616374000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d4e43000000000000000000000000000000000000000000000000000000000081525081600090816200009491906200035d565b508060019081620000a691906200035d565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505062000444565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016557607f821691505b6020821081036200017b576200017a6200011d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a6565b620001f18683620001a6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200023e62000238620002328462000209565b62000213565b62000209565b9050919050565b6000819050919050565b6200025a836200021d565b62000272620002698262000245565b848454620001b3565b825550505050565b600090565b620002896200027a565b620002968184846200024f565b505050565b5b81811015620002be57620002b26000826200027f565b6001810190506200029c565b5050565b601f8211156200030d57620002d78162000181565b620002e28462000196565b81016020851015620002f2578190505b6200030a620003018562000196565b8301826200029b565b50505b505050565b600082821c905092915050565b6000620003326000198460080262000312565b1980831691505092915050565b60006200034d83836200031f565b9150826002028217905092915050565b6200036882620000e3565b67ffffffffffffffff811115620003845762000383620000ee565b5b6200039082546200014c565b6200039d828285620002c2565b600060209050601f831160018114620003d55760008415620003c0578287015190505b620003cc85826200033f565b8655506200043c565b601f198416620003e58662000181565b60005b828110156200040f57848901518255600182019150602085019450602081019050620003e8565b868310156200042f57848901516200042b601f8916826200031f565b8355505b6001600288020188555050505b505050505050565b608051611fbd6200046060003960006107390152611fbd6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb4651461029b578063b88d4fde146102b7578063c87b56dd146102d3578063e985e9c51461030357610100565b80636352211e146101ff57806370a082311461022f5780638da5cb5b1461025f57806395d89b411461027d57610100565b80631249c58b116100d35780631249c58b1461019f57806323b872dd146101a957806332cb6b0c146101c557806342842e0e146101e357610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a91906116d3565b610333565b60405161012c919061171b565b60405180910390f35b61013d610415565b60405161014a91906117c6565b60405180910390f35b61016d6004803603810190610168919061181e565b6104a7565b60405161017a919061188c565b60405180910390f35b61019d600480360381019061019891906118d3565b6104c3565b005b6101a76104d9565b005b6101c360048036038101906101be9190611913565b610544565b005b6101cd610646565b6040516101da9190611975565b60405180910390f35b6101fd60048036038101906101f89190611913565b61064b565b005b6102196004803603810190610214919061181e565b61066b565b604051610226919061188c565b60405180910390f35b61024960048036038101906102449190611990565b61067d565b6040516102569190611975565b60405180910390f35b610267610737565b604051610274919061188c565b60405180910390f35b61028561075b565b60405161029291906117c6565b60405180910390f35b6102b560048036038101906102b091906119e9565b6107ed565b005b6102d160048036038101906102cc9190611b5e565b610803565b005b6102ed60048036038101906102e8919061181e565b610820565b6040516102fa91906117c6565b60405180910390f35b61031d60048036038101906103189190611be1565b610889565b60405161032a919061171b565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103fe57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061040e575061040d8261091d565b5b9050919050565b60606000805461042490611c50565b80601f016020809104026020016040519081016040528092919081815260200182805461045090611c50565b801561049d5780601f106104725761010080835404028352916020019161049d565b820191906000526020600020905b81548152906001019060200180831161048057829003601f168201915b5050505050905090565b60006104b282610987565b506104bc82610a0f565b9050919050565b6104d582826104d0610a4c565b610a54565b5050565b600a6006541061051e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051590611ccd565b60405180910390fd5b61052a33600654610a66565b6006600081548092919061053d90611d1c565b9190505550565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105b65760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016105ad919061188c565b60405180910390fd5b60006105ca83836105c5610a4c565b610b5f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610640578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161063793929190611d64565b60405180910390fd5b50505050565b600a81565b61066683838360405180602001604052806000815250610803565b505050565b600061067682610987565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106f05760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016106e7919061188c565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606001805461076a90611c50565b80601f016020809104026020016040519081016040528092919081815260200182805461079690611c50565b80156107e35780601f106107b8576101008083540402835291602001916107e3565b820191906000526020600020905b8154815290600101906020018083116107c657829003601f168201915b5050505050905090565b6107ff6107f8610a4c565b8383610d79565b5050565b61080e848484610544565b61081a84848484610ee8565b50505050565b606061082b82610987565b50600061083661109f565b905060008151116108565760405180602001604052806000815250610881565b80610860846110bf565b604051602001610871929190611dd7565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000806109938361118d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a0657826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016109fd9190611975565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b610a6183838360016111ca565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ad85760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610acf919061188c565b60405180910390fd5b6000610ae683836000610b5f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5a5760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401610b51919061188c565b60405180910390fd5b505050565b600080610b6b8461118d565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610bad57610bac81848661138f565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c3e57610bef6000856000806111ca565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610cc1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dea57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610de1919061188c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610edb919061171b565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611099578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02610f2c610a4c565b8685856040518563ffffffff1660e01b8152600401610f4e9493929190611e50565b6020604051808303816000875af1925050508015610f8a57506040513d601f19601f82011682018060405250810190610f879190611eb1565b60015b61100e573d8060008114610fba576040519150601f19603f3d011682016040523d82523d6000602084013e610fbf565b606091505b50600081510361100657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ffd919061188c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461109757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161108e919061188c565b60405180910390fd5b505b50505050565b6060604051806080016040528060518152602001611f3760519139905090565b6060600060016110ce84611453565b01905060008167ffffffffffffffff8111156110ed576110ec611a33565b5b6040519080825280601f01601f19166020018201604052801561111f5781602001600182028036833780820191505090505b509050600082602001820190505b600115611182578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161117657611175611ede565b5b0494506000850361112d575b819350505050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806112035750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561133757600061121384610987565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561127e57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611291575061128f8184610889565b155b156112d357826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016112ca919061188c565b60405180910390fd5b811561133557838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61139a8383836115a6565b61144e57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361140f57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016114069190611975565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611445929190611f0d565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106114b1577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816114a7576114a6611ede565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106114ee576d04ee2d6d415b85acef810000000083816114e4576114e3611ede565b5b0492506020810190505b662386f26fc10000831061151d57662386f26fc10000838161151357611512611ede565b5b0492506010810190505b6305f5e1008310611546576305f5e100838161153c5761153b611ede565b5b0492506008810190505b612710831061156b57612710838161156157611560611ede565b5b0492506004810190505b6064831061158e576064838161158457611583611ede565b5b0492506002810190505b600a831061159d576001810190505b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561165e57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061161f575061161e8484610889565b5b8061165d57508273ffffffffffffffffffffffffffffffffffffffff1661164583610a0f565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6116b08161167b565b81146116bb57600080fd5b50565b6000813590506116cd816116a7565b92915050565b6000602082840312156116e9576116e8611671565b5b60006116f7848285016116be565b91505092915050565b60008115159050919050565b61171581611700565b82525050565b6000602082019050611730600083018461170c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611770578082015181840152602081019050611755565b60008484015250505050565b6000601f19601f8301169050919050565b600061179882611736565b6117a28185611741565b93506117b2818560208601611752565b6117bb8161177c565b840191505092915050565b600060208201905081810360008301526117e0818461178d565b905092915050565b6000819050919050565b6117fb816117e8565b811461180657600080fd5b50565b600081359050611818816117f2565b92915050565b60006020828403121561183457611833611671565b5b600061184284828501611809565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118768261184b565b9050919050565b6118868161186b565b82525050565b60006020820190506118a1600083018461187d565b92915050565b6118b08161186b565b81146118bb57600080fd5b50565b6000813590506118cd816118a7565b92915050565b600080604083850312156118ea576118e9611671565b5b60006118f8858286016118be565b925050602061190985828601611809565b9150509250929050565b60008060006060848603121561192c5761192b611671565b5b600061193a868287016118be565b935050602061194b868287016118be565b925050604061195c86828701611809565b9150509250925092565b61196f816117e8565b82525050565b600060208201905061198a6000830184611966565b92915050565b6000602082840312156119a6576119a5611671565b5b60006119b4848285016118be565b91505092915050565b6119c681611700565b81146119d157600080fd5b50565b6000813590506119e3816119bd565b92915050565b60008060408385031215611a00576119ff611671565b5b6000611a0e858286016118be565b9250506020611a1f858286016119d4565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a6b8261177c565b810181811067ffffffffffffffff82111715611a8a57611a89611a33565b5b80604052505050565b6000611a9d611667565b9050611aa98282611a62565b919050565b600067ffffffffffffffff821115611ac957611ac8611a33565b5b611ad28261177c565b9050602081019050919050565b82818337600083830152505050565b6000611b01611afc84611aae565b611a93565b905082815260208101848484011115611b1d57611b1c611a2e565b5b611b28848285611adf565b509392505050565b600082601f830112611b4557611b44611a29565b5b8135611b55848260208601611aee565b91505092915050565b60008060008060808587031215611b7857611b77611671565b5b6000611b86878288016118be565b9450506020611b97878288016118be565b9350506040611ba887828801611809565b925050606085013567ffffffffffffffff811115611bc957611bc8611676565b5b611bd587828801611b30565b91505092959194509250565b60008060408385031215611bf857611bf7611671565b5b6000611c06858286016118be565b9250506020611c17858286016118be565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c6857607f821691505b602082108103611c7b57611c7a611c21565b5b50919050565b7f4e6f206d6f7265204e46547320746f206d696e74210000000000000000000000600082015250565b6000611cb7601583611741565b9150611cc282611c81565b602082019050919050565b60006020820190508181036000830152611ce681611caa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d27826117e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d5957611d58611ced565b5b600182019050919050565b6000606082019050611d79600083018661187d565b611d866020830185611966565b611d93604083018461187d565b949350505050565b600081905092915050565b6000611db182611736565b611dbb8185611d9b565b9350611dcb818560208601611752565b80840191505092915050565b6000611de38285611da6565b9150611def8284611da6565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000611e2282611dfb565b611e2c8185611e06565b9350611e3c818560208601611752565b611e458161177c565b840191505092915050565b6000608082019050611e65600083018761187d565b611e72602083018661187d565b611e7f6040830185611966565b8181036060830152611e918184611e17565b905095945050505050565b600081519050611eab816116a7565b92915050565b600060208284031215611ec757611ec6611671565b5b6000611ed584828501611e9c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000604082019050611f22600083018561187d565b611f2f6020830184611966565b939250505056fe68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d5335505a4153574757316e693554374b67555751647769626b54536e58636739737259313574575165686e542fa26469706673582212204d5391d38cea84defe3ca5046ae0c17961a77940e44d24d5aa70a5309215ca4164736f6c63430008180033